Raspberry PiのSDカードからデータをサルベージする
Raspberry Piを起動するとカーネルパニックになってしまった。VirtualBox内のLinuxでSDカードをマウントしようとするとマウントがずっと終わらない。fsckを実行してもエラーが発生してうまくいかない…。
なんとかデータのサルベージはできたのでその備忘録。
使用した環境
手順
- SDカードをMacに認識させる
diskutil list
を実行してサルベージするIDENTIFIERを確認(今回の対象はdisk2s2)
host$ diskutil list ... /dev/disk2 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *64.5 GB disk2 1: Windows_FAT_32 boot 66.1 MB disk2s1 2: Linux 64.4 GB disk2s2 ...
- ディスクユーティリティなどでdisk2s2がマウントされていないことを確認
- ddを実行して中身を書き出す
host$ mkdir -p ~/raspi host$ sudo dd if=/dev/disk2s2 of=~/raspi/raspi.img
- 所有者を自分自身に変えておく(Docker内でマウントするときに困るので)
host$ sudo chown abcang raspi.img
- docker内でマウントする
host$ docker run --rm -it -v ~/raspi:/raspi --privileged debian bash docker# mkdir /mnt/raspi docker# mount -o loop /raspi/raspi.img /mnt/raspi docker# ls /mnt/raspi
これで /mnt/raspi
にマウントされるので、必要なファイルを退避すれば完了