仕事用 Mac が壊れてなんとか使えるようになるまでの記録です。
運悪く Time Machine が壊れている時 Mac が起動しなくなった。そこでわざわざデータのサルベージに一日費やす羽目になってしまった。Time Machine 用の HD は丁度一年前くらいに調子が悪くなり交換を依頼したのだがまだ使えるからという事でフォーマットして騙し騙し使っていたら2週間前くらいにハード的に壊れた。寿命は三年半くらい。念のため三年くらいで交換しておけばよかったと後悔した。それから後を追うように Mac 本体の SSD が逝ってしまった。Diagnosis を信じるとこちらはハード的にはまだ大丈夫そう。
症状: Mac を立ち上げログインを試みるとプログレスバーが途中で止まり電源が落ちる。
シングルユーザモードで外付けハードディスクにデータをサルベージする。
まずシングルユーザで起動する。私の場合以下の操作が必要だった。
- Mac の電源を入れる。
- すぐに Command + s を押す。
- 画面にうっすらとカーソルのような小さな四角い箱が表示されて消える。
- ログイン画面になるのでパスワードを入れてログイン (多分そのままシングルユーザにならないのは暗号化してるから?)
- 真っ黒な画面なコマンドを受け付ける画面になる。
ここで、
# /sbin/fsck -fy
とやると運が良ければディスク修復が出来るらしいが、私の場合は
CreateNewBTree returned -34
Disk full error
** The volume Macintosh HD could not be repaired.
となって諦めるほかないか。いや、この時点でファイルシステムはまだ読めているので諦めるのは早い。せめて外付けハードディスクに読めるデータを避難させて、OS の再インストールを行う事にした。まず、そのまま
# ls /dev/disk*
で現在のディスク名割当状況を見て USB ハードディスクを接続し ls /dev/disk*
すると新しいディスクは disk2 に割り当てられた。ここででマウントポイントを作っておく。シングルユーザモード起動時ルートファイルシステムは読み込みモードになっているので、書き込み可能にしてマウントし直す。
# mount -uw /
# mkdir /tmp/mnt
fstyp でファイルシステムを調べてここへマウントする。
# fstyp /dev/disk2s2
hfs
# mount -t hfs /dev/disk2s2 /tmp/mnt
あとはホームディレクトリのコピーを行うだけ。中断してやり直す事を想定して rsync を使ったが、遅くてイマイチだった。
# mkdir -p /tmp/mnt/2017-11-08/Users/hoge
# rsync -av /Users/hoge/ /tmp/mnt/2017-11-08/Users/hoge/
不思議なことに、ここで
# exit
とやるとちゃんと通常の Mac OS 起動直後の画面に行くことが出来た!ただいつ壊れるかわからないので名残惜しいが OS の再インストールを行い、細々と必要アプリをインストールし直している所。
参考
試したこと。
以下どの方法も解決の役に立たなかった。