Time Machine上のバックアップが壊れた
僕のMacはTime CapsuleにTime Machineでバックアップを取っています。最近、そのうちの1台で以下のエラーが表示され、バックアップされなくなってしまいました。
Time Machineは"XXXX"上のバックアップの検証を完了しました。信頼性を向上するために、Time Machineは新規バックアップを作成する必要があります。
選択肢は、新規バックアップを作成するか、今はしないか、しかありません。同じMacで何年か前にも発生したことがありますが、前回は素直に諦めて新規バックアップとしました。今回は、修復を試みます。以下、自分の備忘も兼ねて。
まず、ディスクユーティリティでバックアップファイルであるsparsebundleを開いてみましたが、読み込み専用になってしまい、修復できませんでした。後から思えば、検証だけしてみれば良かったのですが、この時は修復しか考えていませんでした。
そこで、同じような状況から復帰した人のWebページを参考にコマンドから試します。
sudo chflags -R nouchg [sparsebundle]
ディスクユーティリティで書き込み可でマウントできるようになりましたが、「このディスクを修復できません」となってしまいます。念のため、Macを再起動してから、再確認しましたが変わりません。
諦めてコマンドのみの方向へ。sparsebundleをマウントし、修復し、検証結果が記録されているファイルを編集します。
hdiutil attach -nomount -noverify -noautofsck [sparsebundle]
fsck_hfs -drfy /dev/diskXs2
(Xはhdiutilで表示されるApple_HFSのエントリ)
fsck_hfsが修復コマンドですが、数時間かけた結果は、なぜか検証は問題なしでした。
続いて、マウントを解除します。
hdiutil detach /dev/diskXs2
Time Machineの検証でエラーが出たとの記録を、/Volumes/[shared name]/[sparsebundle]/com.apple.TimeMachine.MachineID.plistを以下のように編集して消します。僕はviを使いました。
<key>RecoveryBackupDeclinedDate</key>
<date>[date]</date>
の二行を削除し、
<key>VerificationState</key>
<integer>2</integer>
の2を0にします。
こうしたら、問題なくバックアップできました。もしかすると、WiFiが切れるとか、なんらかの理由でバックアップの検証に失敗したことが履歴に残ってしまい最初の表示になっただけで、壊れていなかったのかもしれません。