@Oscar向我们指出了正确的方向。但是,您无需转换为1 MB且紧凑,就可以重新获得空间。
相反,只需将您的sparsebundle复制到另一个新的sparsebundle。反过来,这会为您整理图像碎片。同时,您可以更改文件系统,大小甚至频段。
这是我最近做的一个示例,转换了我在设备之间同步的20GB“代码”图像。
$ hdiutil create -size 20g -type SPARSEBUNDLE \
-imagekey sparse-band-size=2048 -fs HFSX \
-volname code -attach ~/sync/images/code.sparsebundle
使用查看所有选项hdiutil create -help
。
该命令输出:
/dev/disk3 GUID_partition_scheme
/dev/disk3s1 EFI
/dev/disk3s2 Apple_HFS /Volumes/code
created: /Users/eric/sync/images/code.sparsebundle
您可以-attach
在下看到安装的选项/Volumes/code
。
注意:我使用HSFX
区分大小写的HFS +,因为我也将映像同步到Linux并挂载它们。HFS+
由于macOS通常不区分大小写,因此您极有可能要使用它。
现在,我要做的就是将所有内容复制到新的sparsebundle中:
$ cp -r /Volumes/IMG_CODE/ /Volumes/code/
现在进行比较:
# old sparsebundle
$ du -h ~/sync/images/IMG_CODE.sparsebundle/
15.0G /Users/eric/sync/images/IMG_CODE.sparsebundle/bands
15.0G /Users/eric/sync/images/IMG_CODE.sparsebundle/
# new sparsebundle
$ du -h ~/sync/images/code.sparsebundle/
3.0G /Users/eric/sync/images/code.sparsebundle/bands
3.0G /Users/eric/sync/images/code.sparsebundle/
好极了。我的15GB稀疏捆绑包现在变成了3GB,经过了碎片整理,乐队更改了!