備忘録 blog

Docker/Machine Learning/Linux

壊れた Mac のデータをシングルユーザーモードで NTFS の USB メモリに救出する

MacSSD が死んでしまった時の復旧方法をメモしておく。症状としては以下の記事と同じであった。

qiita.com

第一の手段としては、ディスク修復ツールを使うというものだが、 First Aid を使っても Error Code : 8 で失敗してしまった。

そのため第二の手段として、シングルユーザーモードで以下のようなコマンドを実行し、救出できるファイルをUSBメモリにコピーするということを考えたい。(Mac のバージョンによってコマンドの細部が異なることがあるので、シングルユーザーモードログイン時に表示されるメッセージを参考にしてほしい。)

mount -rw /
mkdir -p /tmp/mnt/usb
fstyp /dev/disk2s1
mount -t hfs /dev/disk2s1 /tmp/mnt/usb # hfsの場合
mkdir /tmp/mnt/usb/xxx

USB 接続のハードディスクが ntfs でマウントされていた場合は、普通にマウントしてしまうと read-only になってしまうので、新しいディレクトリを作る処理を実行できない。そのため、マウントし直す必要がある。

まず一旦今マウントしたドライブをアンマウントしなければならない。

umount /tmp/mnt/usb

マウント時にオプションを指定すると、読み書き可能な状態でマウントすることができる。

mount -t ntfs -o rw,auto,nobrowse /dev/disk2s1 /tmp/mnt/usb
mkdir /tmp/mnt/usb/xxx
rsync -a --partial --append-verify -v /Users/xxx /tmp/mnt/usb/xxx

これで rsync ができたら一件落着かというと実際そんなことはなく、 rsync 実行中にコピーがスタックしてしまって困っている。これは SSD のエラーに起因するものであると思われるが、そうした読み取りを妨害するような不良セクタのようなものをスキップすることはできないか?というのが次に期待したいところではある。

superuser.com

しかしもしそれをやろうとすると rsync ではなく、 ddrescue のように丸ごとディスクをコピーする方法を取るしかないという感じであった。

参考ページ

note.com

www.fixes.pub

blog.daich.org