Mac
timemachine

ターミナルからTimeMachineのバックアップを削除して使用可能領域を増やす

※ 当たり前ですが自己責任でやってください。筆者はエラーに何度か遭遇しました。直ったけど。トラブルシューティング参照。
実行した環境はTimeCapsuleに保存したTimeMachineです。

基本的なやり方

念のためTimeMachineの自動バックアップをオフにしておく。1
image.png

tmutil listbackupsでバックアップを確認する

$ tmutil listbackups
/Volumes/Time Machine バックアップ/Backups.backupdb/takc923 の MacBook Pro/2017-11-03-001721
/Volumes/Time Machine バックアップ/Backups.backupdb/takc923 の MacBook Pro/2017-11-10-013213
/Volumes/Time Machine バックアップ/Backups.backupdb/takc923 の MacBook Pro/2017-11-17-012823
/Volumes/Time Machine バックアップ/Backups.backupdb/takc923 の MacBook Pro/2017-11-24-011152
略

sudo tmutil deleteで削除する2。私の環境だと40分くらいかかった。

$ sudo tmutil delete '/Volumes/Time Machine ハ<3099>ックアッフ<309a>/Backups.backupdb/takc923 の MacBook Pro/2017-08-27-024822'
Password:
Deleting: /Volumes/Time Machine バックアップ/Backups.backupdb/takc923 の MacBook Pro/2017-08-27-024822
Deleted (4.4G): /Volumes/Time Machine バックアップ/Backups.backupdb/takc923 の MacBook Pro/2017-08-27-024822

これだけだとsparsebundleファイルのサイズが小さくならないので、これを小さくする。
その操作の前に、データが壊れないようにバックアップボリュームをデタッチする。

$ hdiutil detach /Volumes/Time\ Machine\ バックアップ
"disk2" unmounted.
"disk2" ejected.

sparsebundleファイルを小さくする3。私の環境だと1時間くらいかかった。

$ hdiutil compact /Volumes/takc923/takc923\ の\ MacBook\ Pro.sparsebundle
圧縮を開始中…
空き領域を再び利用可能にしています…
...................................................................................................................................................................................
圧縮の仕上げ中…
空き領域1.1 TBのうち13.5 GBを再び利用可能にしました。

1コマンドで複数消す

こんなコマンドで一番古いバックアップを3つ消せる。

$ tmutil listbackups | head -3 | sed 's/ /\\ /g' | sudo xargs tmutil delete

注意点は、パス名に半角スペースが混じっていて、それが文字列の切れ目だと認識されてしまうので間のsed 's/ /\\ /g'が必要。4

TimeMachineのサイズを制限する

若干タイトルからずれるけど、あとちゃんと動作の確認してないけど、TimeMachineのサイズを制限できるらしい。
以下のコマンドで制限できる。最後の引数が制限したいサイズ(bytes)5。実行した後再起動したら反映されるらしい。

$ sudo defaults write /Library/Preferences/com.apple.TimeMachine MaxSize 858993459200

トラブルシューティング

こんなエラーが出て肝を冷やした。

$ hdiutil compact /Volumes/takc923/takc923\ の\ MacBook\ Pro.sparsebundle
圧縮を開始中…
空き領域を再び利用可能にしています…
hdiutil: compact failed - 内部エラーです

手動で一回TimeMachineのスナップショット取ったら直った。
image.png

こんなエラーも出た。

$ hdiutil compact /Volumes/takc923/takc923\ の\ MacBook\ Pro.sparsebundle
hdiutil: compact failed - 機能が実装されていません

再起動したら↑の「内部エラーです」になって、スナップショット取ったら直った。

参考


  1. 意味があるか知らない 

  2. あと"バックアップ"が"ハ<3099>ックアッフ<309a>"になってるのはMacがディレクトリ名を「バ」を「ハ」+「濁点のunicode」、「パ」を「ハ」+「半濁点のunicode」で作ったからっぽい。それでコピペしたらこうなった。参考: https://www.unicode.org/charts/PDF/U3040.pdf 

  3. 一応出力も一緒に書いてるけど、実際にこの順序でコマンド叩いたわけじゃないので減った使用領域が消したバックアップのサイズを一致してない。 

  4. パス名にスペース入れるのまじで勘弁してほしい 

  5. 858993459200==800GiB