mlbackup / rsync / 硬連結數據大小
我是 mlbackup/rsync 和硬連結概念的新手,所以在通過 mlbackup 創建備份數據集後我有點困惑。
所以這是場景:
我正在將“文件夾 A”備份到“文件夾 B”。在“文件夾 A”中,我有文件“X”、“Y”和“Z”;每個文件為 5mb,因此“文件夾 A”的大小為 15mb。我執行 mlbackup,文件第一次備份到“文件夾 B”。現在“文件夾 A”和“文件夾 B”各為 15mb。
沒有對“文件夾 A”進行任何更改,我再次執行 mlbackup。創建一個新的“文件夾 B”備份。它再次讀取 15mb(在 Finder、Mac OSX 10.8 中)。
現在我知道新的“文件夾 B”只是指向原始數據的硬連結,所以我去終端做了一個
du -sh folder B
,它只讀取了幾個 kb。這是意料之中的,對吧?所以我的第一個“文件夾 B”是 15mb,第二個“文件夾 B”是幾 kb。現在我的問題是——在 Finder 中,兩個“文件夾 B”都是 15mb。所以說如果我希望我的“文件夾 B”備份位於只有 16mb 可用空間的外部驅動器中,會發生什麼?根據 Finder,兩個“文件夾 B”的總和將是 30mb。但我們都知道實際上它只有 15mb(來自第一個“文件夾 B”)加上更多 kbs(第二個“文件夾 B”)?
我知道這是一個非常令人困惑的問題,但我真的很想了解它是如何運作的。如果有什麼我可以進一步澄清的,請告訴我。
這是預期的行為。Finder 不檢查文件是硬連結還是真實文件,只是添加大小。
du
正如您已經發現的那樣,您確實得到了正確的尺寸。您可以通過這種方式將備份文件夾複製到外部卷,但它的大小會增長到 Finder 顯示的大小,因為它無法將硬連結複製為硬連結。您可以使用
rsync
(我建議使用rsync
捆綁的 3.0.9,mlbackup
因為它會處理所有 HFS+ 元數據、壓縮分叉和其他內容。)要完整回答您的問題,是的,您最終可以在卷上進行備份,這將使您在 Finder 中的總大小大於卷本身。這是 Finder 的一個已知限制。
簡單地解釋了硬連結的概念。把文件想像成一條狗。包含該文件的每個目錄都有一條狗項圈。硬連結只是對同一隻狗的另一條皮帶。只要至少連接一根皮帶,文件就會保留。一旦所有的皮帶被解開,狗就會跑掉,這意味著文件實際上被刪除了。當您刪除硬連結時,只要至少建立了一個連結,該文件就會保留在文件系統中。
僅供參考:與選項頂部複製文件一起
mlbackup
使用,並在備份保鏢測試中獲得滿分。rsync``--hard-links
麥克萊蒙 (作者
mlbackup
)