Mac-Osx

如何從 OS X 上的 sparsebundle 中回收所有/大部分可用空間

  • July 9, 2019

是否有可能對稀疏捆綁圖像進行“碎片整理”並回收(大部分)可用空間?

這是背景:我正在使用稀疏包,並且不時地想從它們中回收空間,所以我執行:

hdiutil compact image.sparsebundle

但是,正如手冊頁中所解釋的,它只回收完全未使用的帶文件,所以在我的例子中它說:

Reclaimed 0 bytes out of 90.4 GB possible.

當然,也可以將此圖像的內容複製到一個新的稀疏包中,然後使用該包代替,但這既麻煩又需要足夠的可用空間來執行此操作。

同時,我發現 compact 命令的輸出有些誤導(我目前正在執行 OS X 10.5.7),因為它有時列出的尺寸盡可能大於硬碟上的圖像包目前佔用的尺寸駕駛。我沒有仔細看,但輸出似乎是最大尺寸或“最大尺寸” - “使用尺寸”。

有趣的!

據我所知,稀疏包將數據分成 8Mb 波段。如果幸運的話,更改錶帶大小可能會有所幫助。我的意思是,你永遠不會得到 100% 回收的空間,但可能比你現在得到的更好。(取決於圖像上的數據等)

我用兩個 500Mb 稀疏包做了一個骯髒的簡單測試,一個有 8Mb(預設)帶大小,一個有 1Mb(據我所知是允許的最小大小)。我複制了超過 400mb 的 mp3 文件,然後刪除了所有其他文件,然後hdiutil compact在他們的驢子上執行。

Size after compact
8Mb bands: 271Mb
1Mb bands: 215Mb

轉換稀疏包的命令是

hdiutil convert src.sparsebundle -format UDSB -tgtimagekey sparse-band-size=2048 -o dst.sparsebundle

頻帶大小以 512 字節為單位。所以上面的例子將波段大小設置為 512 * 2048 = 1Mb。如果您正在處理 TimeMachine 圖像或使用者主文件夾圖像等,請小心。您正在偏離 Apple 路徑 :) 保持故障安全備份!

至於碎片整理:我有一種有趣的感覺,它與使用 hdiutil 將稀疏文件轉換為具有相同格式的新稀疏文件一樣快(或更快!)。我認為它試圖變得聰明。但我不知道。

(請注意,對稀疏束進行碎片整理只是對磁碟數據進行碎片整理,而不是對稀疏束帶進行碎片整理,除非它是稀疏束感知碎片整理程序。hdiutil convert我相信會進行帶“碎片整理”。)

引用自:https://serverfault.com/questions/14112