
我意識到我需要保護我的所有照片免受位元損壞(由於硬碟或網路傳輸錯誤而隨機發生的檔案損壞)。
我最近發現 par2 似乎是一個很棒的程序,可以創建冗餘文件並提供檢測和修復文件損壞的能力。
我不認為日誌檔案系統是正確的解決方案,因為我希望在備份和遷移到新筆記型電腦時將保護與檔案一起保存。
所以,我認為我需要的是一個可以作為 cronjob 運行的腳本,也許每小時一次。如果添加或更改了文件(文件的編輯時間戳比冗餘存檔更新),它將查看所有需要保護的文件並更新冗餘文件,如果任何文件已損壞(文件已更改但編輯),它將修復文件時間戳尚未更新)。
有沒有任何腳本或程式可以做到這一點?或者是否有程式可以以另一種方式解決問題?或者我應該自己編寫這樣一個腳本(我不想這樣做,我想要一些健壯的東西並經過很多用戶的測試)?
答案1
答案2
這是一個較老的問題,但在 2019 年仍然相關。
是的,奇偶校驗檔案是位元腐爛的可行解決方案
雖然非檔案系統級奇偶校驗檢查有缺點,但也有一個巨大的好處:
可移植性。
理論上,世界上最奇特的基於檔案系統的錯誤檢查可以使您的資料永遠保持無位腐爛,但保護被鎖定到該檔案系統。文件一旦離開,它們就不受保護。
“太沉重”經過布拉普斯已獲得許可CC BY-NC 2.0 (在放入資料之前,他真的應該切換到 ZFS 和屋頂)
旁邊帶有奇偶校驗檔案的圖像可以移動到 USB 驅動器、透過包丟失連接傳輸、壓縮、單獨備份到其他媒體,以及我能想到的一百種其他東西。
它們還可以防止基於不良程序的更改(例如,元資料分析器意外寫入不正確的元資料)
PAR2 是奇偶校驗檔案的可行選擇
PAR2 檔案特別可以跨平台使用,它們最大的缺點實際上並不是保護大照片的用例中的問題(即 PAR2 不支援子資料夾,並且不能有效地處理 <1KB 檔案)。
然而,PAR 檔案本身並不是一個完整的備份解決方案
它們仍然需要成為 3 副本備份策略的一部分才能“防彈”,特別是對於 PAR 文件來說,沒有更改歷史記錄:如果檢測到更改有效,並且重新創建了奇偶校驗文件,則在不引用單獨的備份(具有內建更改歷史記錄的異地備份解決方案將是這裡的贏家)。
下一步
最初問題「是否有任何腳本或程式可以[自動建立和維護奇偶校驗檔案]?」的答案2019 年仍然是“否”,但自己製作一個腳本或讓別人製作一個腳本是相當簡單的。如果您走這條路,我能給的最好建議是:創建一個包含您能想到的每種邊緣情況的測試環境,並在信任它之前通過所有測試運行任何腳本。
而且,如果有人讀到這篇文章做走這條路,考慮將其開源,以造福所有人。
編輯後的附錄: PAR 檔案所使用的技術是https://en.wikipedia.org/wiki/Reed–Solomon_error_ Correction儘管 PAR 開發已陷入停滯,但仍有數十個甚至數百個專案使用 Reed-Solomon 進行檔案層級資料完整性/修復。
答案3
我寫了一個輕量級工具來偵測 bitrot,稱為chkbit
。
它創建一個獨立於檔案系統的跟隨資料的雜湊值。因此,chkbit
您可以驗證主系統、備份媒體上以及復原後資料的完整性。
chkbit 不允許您修復數據,您仍然需要一個或多個備份。