zephiransasのチラシの裏

とあるJava/Rubyプログラマのメモ代わりブログ

TimeMachineで検証エラーが発生した場合の復旧方法

我が家の環境では、BuffaloのLS-XLシリーズというNASを使って、MBAのTime Machine環境を作っているのですが、最近よくこんなメッセージが出るようになりました。

error

これはApple純正のTime Capsule以外をTime Machine環境に使用すると出てくるらしいです。 しかもこうなってしまうと、「後でバックアップを作成」にしても再度同じメッセージが表示されるし、「新規バックアップを作成」を選ぶと、それまでのバックアップの履歴は全て消えてしまいます。

なので、この場合の復旧手順をメモっておきます。

まずは、Time Machineを一旦「切」にしておきます。

off

次にNASをマウントして、そのマウントポイントまでのパスを確認しておきます。自分の場合は「/Volumes/share/unicorn.sparsebundle」でしたので、以降はこれで説明します。

次にターミナルを立ちあげ

1
$ sudo chflags -R nouchg /Volumes/share/unicorn.sparsebundle

して、ロックを解除しておきます。次に

1
$ hdiutil attach -nomount -noverify -noautofsck /Volumes/share/unicorn.sparsebundle

と入力します。実行すると以下のようなメッセージが表示されます。

1
2
3
/dev/disk2 Apple_partition_scheme
/dev/disk2s1 Apple_partition_map
/dev/disk2s2 Apple_HFSX

この時の/dev/disk? の?部分は実行時の環境によって異なる数値が入っていますので注意。また、この次点でTime Machineイメージに対して修復処理がバックグラウンドで実行されています。そのログが/var/log/fsck_hfs.logに出力されています。復旧が終了したかどうかはそのログで確認するのでtailで眺めてやります。

1
$ tail -f /var/log/fsck_hfs.log

おそらくこんな感じ。

1
2
3
4
5
6
7
8
9
10
11
12
** Checking Journaled HFS Plus volume.
** Detected a case-sensitive volume.
   The volume name is Time Machine バックアップ
** Checking extents overflow file.
** Checking catalog file.
** Checking multi-linked files.
** Checking catalog hierarchy.
** Checking extended attributes file.
** Checking multi-linked directories.
** Checking volume bitmap.
** Checking volume information.
** The volume Time Machine バックアップ appears to be OK.

最後の「The volume Time Machine バックアップ appears to be OK.」が表示されればイメージの復旧は完了です。

終了したら、デタッチしておきます。

1
hdiutil detach /dev/disk2s2

ただこの状態だと、イメージ内部ではまだ壊れたままという情報が残っているため、これを修正します。

1
2
$ cd /Volumes/share/unicorn.sparsebundle/
$ vi com.apple.TimeMachine.MachineID.plist

とし、その内部の

1
<integer>2</integer>

1
<integer>0</integer>

に修正します。

これで全て完了です。Time Machineを「入」にして、バックアップを実行して、エラーが表示されなければ完了です。

え?根本的な解決になってない!ですって? そりゃTime Machineを買うしかありませんがな!!ww