@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は大文字と小文字を区別しないため、代わりに使用することをお勧めします。
今、私がしなければならないのは、すべてを新しいスパースバンドルにコピーすることです:
$ 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になり、最適化され、バンドが変更されました!