docile-jpの日記: 【Mac OS X】ジャーナリングがエラーになってマウントできなくなったディスクの処遇
ジャーナリングがエラーになって普通のやり方ではマウントできなくなったディスクをどうにかマウントして中身を取り出す方法を、この先のためにメモとして残す。 OSはMac OS X 10.3。
前提:デバイスとしては認識されること(ディスクユーティリティとかで認識されている)、たぶんデータが壊れてはいないこと(fsck をパスできること)
状況:ふつうにマウントしようとしても何も変化がない。ログビューアで /var/log/system.log か console.log を見るとこんな感じ
kernel: jnl: journal_open: Error replaying the journal!
kernel: hfs: early jnl init: failed to open/create the journal (retval 0).
ただの hfs+ ディスクとしてはマウントできそうだがジャーナル関係のところで失敗してそのまま処理が終了してしまう。
処置:強制的にジャーナル無効でマウント。念のため読み出し専用。
% mkdir /Volumes/sickedDisk
% sudo /System/Library/Filesystems/hfs.fs/hfs.util -MU diskXsY /Volumes/sickedDisk fixed readonly nosuid nodev
hfs.util コマンドに何もオプションを与えないと説明が出てくる(あるいは、"man hfs.util")が、ここでは
「ジャーナル無効で /dev/diskXsY を読み出し専用の固定ディスクとして、/Volumes/sickedDisk へ強制マウントせよ」
といった感じ。
マウントできたなら、あとは cp コマンドなり、どうにか Finder から見えるようにするなりして別のディスクへ移せばよい。作業が終わったら一度シャットダウン。
で、一度これをやったらそれ以降は何もなかったように動くらしいのだが…ログになんか出てる(ジャーナル情報をリセットしたようなことが出力されている)しな。
----
2006/09/21:
再起動したあと、予想通りそれは単に接続しただけでマウントされた…。これくらい Mac OS X がどうにかしてくれないものか(あるいは、ディスクユーティリティで修復できるようにする?)とは思うが、難しいのだろうか。
# Mac OS X 10.4 ではどうなのかわからないけど。
【Mac OS X】ジャーナリングがエラーになってマウントできなくなったディスクの処遇 More ログイン