macOS Big SurのTime Machineで四苦八苦

macOS Big SurのTime Machineで「Time Machineボリュームが複製される(重複する)」、「アンマウントエラーが出る」、「ターミナルでバックアップを削除できない」など四苦八苦したため、顛末を記録。

ターミナルでmacOS Big SurのTime Machineの個別バックアップ削除不可

macOS Big SurではTime Machineの仕様が変更されているようで、APFS Time Machineバックアップはroot権限であっても手を加えることはできないようだ。

Big Sur & Time Machine on APFS will always require the entire volume. You can't do anything other 

How to use tmutil delete on Big Sur, APFS - Ask Different
参考 APFS changes in Big Sur: how Time Machine backs up to APFS, and moreTHE ECLECTIC LIGHT COMPANY

これまで管理人はまずターミナルで下記のコマンドでTime Machineのバックアップリストを表示。

sudo tmutil listbackups

続いて下記コマンドでリストを参考に個別にバックアップを削除していた。

sudo tmutil delete 日時

しかしmacOS Big Surでは上記コマンドでバックアップを削除しても「Total deleted Zero KB」と表示され、バックアップは削除されるものの容量が減るといった変化がない。

下記のターミナルコマンドも一見正常にバックアップが削除されたように見えるがやはり容量に変化がない。

sudo tmutil delete -d /Volumes/Time\ Machine -t 日時

上記画像の通り、このコマンドでは「1 backups deleted」と表示されるものの容量に変化が現れない。

どうやらmacOS Big SurのTime Machine(APFS)ではターミナルでのバックアップ削除は全く意味がないようだ。

ローカルスナップショットは削除可能

ターミナルでのTime Machineのバックアップ削除は意味がないようだが、下記の手順によるTime Machineのローカルスナップショットは正常に削除可能だった。

ローカルスナップショットとは?
Time MachineのローカルスナップショットはAPFSに対応したmacOS High Sierra以降から搭載された機能でTime Machineボリュームにバックアップするだけでなく、ローカル(メインボリューム)にも一時的にバックアップを書き込む機能。
これによってディスクが逼迫する場合があるが、通常は自動的に削除される。

ローカルスナップショットを削除するにはまず下記コマンドをターミナルで実行。

sudo tmutil listlocalsnapshots /

ローカルスナップショットのリストが表示されるので、リストを参考に下記コマンドでローカルスナップショットを削除。

sudo tmutil deletelocalsnapshots 日時

ただし、ローカルスナップショット機能を完全に無効にすることはここ数年のmacOSでは不可能なようで、下記のローカルスナップショット無効化コマンドはエラーが出る。

sudo tmutil disablelocal

「disablelocal」というコマンドは廃止されたようで実行しても上記の通り「Unrecognized verb」とエラーが出る。

Time Machineのアンマウントエラー

前述の通りターミナルでTime Machineのバックアップの削除が無意味だったためTime Machineに入って地道に古いバックアップを削除してもよかったが、面倒だったので「ディスクユーティリティ」でボリュームごとフォーマットして新たに「Time Machine」という名前のTime Machine用のボリュームを作ろうとしたところ、今度はアンマウントエラーが生じた。

エラーメッセージは「ディスクのマウントを解除できませんでした。:(-69888)。操作が失敗しました」

フォーマットしたボリュームは外付けHDDなので物理的にケーブルを抜いて接続を解除し、再度ケーブルを接続してフォーマットしてもやはり同様のアンマウントエラーが出てフォーマットが出来ない。

そこで下記のターミナルコマンドでTime Machineボリュームを強制アンマウントしてみた。

diskutil unmount force /Volumes/Time\ Machine

このコマンドを実行したところ、無事にTime Machineボリュームがアンマウントされ、再度フォーマットを実行したところ無事にフォーマットできた。

Time Machineボリューム重複問題発生

Time Machineボリュームが無事に作成できたのでTime Machineをセットアップしようとしたところ、今度は「Time Machineの準備中にエラーが起きました。ディスクのマウントを解除できませんでした」というエラーが発生した。

改めて「ディスクユーティリティ」を見てみるとなんとTime Machineボリュームが重複している。

使用している外付けHDDは1TBであり、内500GBを私的なデータボリューム、残りの500GBをTime Machineボリュームとして使用しているのでディスクユーティリティを信じるなら1.5TBというHDDの容量上限を超えてボリュームが作成されていることになる。

さすがにこれはBig Surの不具合だと思ったのでまず先ほどのターミナルのアンマウント強制コマンドでボリュームを強制アンマウント。

diskutil unmount force /Volumes/Time\ Machine

コマンド実行後、再度ボリュームを消去しMacを再起動。

再度Time Machine環境設定でディスクを選択したところ、ようやく対象のボリュームが正常にTime Machineとして機能するようになった。

「ディスクユーティリティ」を確認するとTime Machineの重複も解消されている。

ここまでの一連の作業でようやくTime Machineが正常に利用できるようになったが、経験したことがないエラーばかり出て四苦八苦してしまった。

まとめ

今回の顛末をまとめると「アンマウントエラーが出たらターミナルで強制アンマウントしてフォーマット」、「Macを再起動して再度Time Machineの環境設定を行う」ことで上記のようなトラブルは解消するはず。

僕の手順に問題があった可能性もあるし、一概にmacOS Big Surが悪いというわけでもないが年々macOSはプロテクトが強固になり、ユーザーが出来ることが減っているのは少々不満だ。