複製檔案:任何主流作業系統(不包括帶有 ZFS 的 BSD/Linux)在移動檔案時都會對檔案進行雜湊處理嗎?

複製檔案:任何主流作業系統(不包括帶有 ZFS 的 BSD/Linux)在移動檔案時都會對檔案進行雜湊處理嗎?

為了確保我不會丟失數據,我傾向於做的是選擇我想要保留的文件,一旦我連接了大的(以字節為單位,而不是以重量為單位)外部硬碟(通常是 2TB) ,現在通常是USB3),我使用通常的拖放方法移動將檔案複製到備份磁碟機。

然後,稍後我可能會再次將內容複製到第三個硬碟。

這一切都是非常臨時的。

我知道所有可以做得「更好」的方法,但我更關心實用的方法。例如,使用單一外部硬碟,這意味著我有一個 2.5 吋外部 USB3 驅動器,我將其與 MacBook Pro 一起放入包中,這樣我就擁有總共 2TB 外部 + 256GB 本地存儲。

任何具有更多冗餘的東西都必然會增加設定的體積。與實體容量和USB 快閃記憶體相比,2.5 吋一直是傳輸速度和容量的最佳選擇。一點,將兩個都插入。

「更好」地做到這一點的其他方法是各種程序,它們總是花費高昂的實際資金,迫使您執行特定的工作流程或幫助您備份整個驅動器。我通常發現我不想要這些。不過,我仍然願意接受建議,特別是那些有助於在傳輸/備份後通過哈希檢查文件的建議。

回到手邊的問題。在 Windows(7、8、8.1)或 OS X(10.8、10.9)中,當我告訴資源管理器(或 Finder)移動從本機磁碟到外部掛載磁碟的巨大目錄,作業系統是否對檔案進行哈希處理複製之後,刪除原來的內容之前?

期待一些答案,是的,我知道 rsync。是的,我將 Time Machine 與我剛才提到的外部硬碟一起使用(它是 2TB 磁碟上的 500GB 分割區)。我知道 Time Machine 在底層使用了 rsync。問題是時間機器將開始失去你的東西,你必須分配大量的空間才能合理地預期一切可檢索。如果您有 4GB 檔案並在其中編輯了 2 個位元組,Time Machine 將在下次備份時額外消耗 4GB(並花費必要的時間複製所有檔案)。這些只是我所知道的一些使時間機器遠遠未達到完美的品質。不過,我很高興讓它在 500GB 的分割區上運行。

重要檔案的流程(忽略 Git 伺服器中已有的所有原始程式碼)是這樣的:首先它只位於本機磁碟上,每隔幾天就會進入 Time Machine 分割區。最終,隨著時間機器分區的填滿,它可能會從時間機器分區中消失,並且過去圖像的粒度會減少。每隔幾週,我就會手動挑選出佔用大量本地空間但我自己不使用的文件,並且我移動它到外部磁碟機上的分割區。現在它作為一份副本存在,並且僅存在於外部驅動器上。如果我確實需要這些數據,我也會將數據儲存在另一個位置。

如果確實是這樣的話,告訴作業系統移動文件不會導致它在交付時驗證內容,那麼我必須完全更改我的協議。這是因為如果目標介質發生故障,那麼資料肯定會被損壞。

在寫這個問題的過程中,我開始認為我問錯了問題。也許更明智的做法是始終使用兩個備份目標並將協議從 1 個移動、1 個副本更改為 2 個副本和 1 個刪除。這無疑可以更好地保證完整的資料保留。

然而,在刪除/移動之前執行哈希也非常重要,因為這是刪除/移動的唯一方法知道目標介質沒有故障!

也許我想要的是rsync GUI,或者更好的是shell 擴展/插件,它可以讓我執行諸如“複製和散列”和“移動和散列”之類的操作,就像我在資源管理器/Finder 中對目錄進行通常的複製/移動一樣。

這也有一些變化:插入兩個外部磁碟後,我想發出“複製到 2 個目的地和哈希”。這將防止來源資料像兩個連續副本一樣被不必要地散列兩次。

答案1

我可以確認 Windows 7 不會驗證複製/移動操作的正確性,因為我剛剛遇到了將檔案複製到外部磁碟機時發生損壞的情況。

就解決方法而言,就 Windows 而言,您可以使用太拉複製--我剛開始使用它,它似乎運行良好(只需首先在首選項中啟用“複製後始終檢查”)。它還進行shell 集成,雖然我還沒有找到指定多個複製目標的方法,但您可以在第一個複製完成後手動選擇要複製到的另一個目標,在這種情況下它會記住源文件的哈希值。如果您認為該功能很重要,也許您可以聯絡作者並要求該功能。

相關內容