快調に運用していた QNAP-NAS への TimeMachine バックアップだが、先日突然「信頼性を向上するために、Time Machine は新規バックアップを作成する必要があります。」というメッセージが表示された。えー、これまでのバックアップを放棄して新規バックアップを作れってこと? 納得できないので、対応策を探しまわったところ、発見しました。"Fix Time Machine Sparsebundle NAS Based Backup Errors" 手順をメモしておく。
- TimeMachine バックアップ先のドライブをマウントする。
sudo chflags -R nouchg /Volumes/{VOLUME_NAME}/{BUNDLE_NAME}.sparsebundle
(30分ぐらいかかる)hdiutil attach -nomount -noautofsck /Volumes/{VOLUME_NAME}/{BUNDLE_NAME}.sparsebundle
下のように表示される。
/dev/diskx Apple_partition_scheme
/dev/diskxs1 Apple_partition_map
/dev/diskxs2 Apple_HFSX
(x は disk id。うちでは x = 2 だった)- この時すでに
fsck_hfs
が走り始めている(top
で確認できる)。less /var/log/fsck_hfs.log
で進行状況を確認。最後にThe Volume was repaired successfully.
と出れば OK。数時間かかる。 - 修復がうまくいかなければ、もう一度
fsck_hfs
を試してみる。
fsck_hfs -drfy /dev/disk2s2
hdiutil detach /dev/diskxs2
cd /Volumes/{VOLUME_NAME}/{BUNDLE_NAME}.sparsebundle
vi com.apple.TimeMachine.MachineID.plist
- 次の2行を削除。
<key>RecoveryBackupDeclinedDate</key>
<date>{whatever-the-date}</date> - 次の2行目の "2" を "0" に変更。
<key>VerificationState</key>
<integer>2</integer> - TimeMachine バックアップ先のドライブをイジェクトして、TimeMachine バックアップを実行する。
無事復旧しました。結構大変だけど,これで TimeMachine バックアップが復旧するなら手間をかける価値はある。