💬

Raspberry Piを入れてるmicroSDカードのデータを救出

に公開

Raspberry Piを起動したらこんな画面が表示された

e2fsck 1.47.0
rootfs: clean

You are in emergency mode. After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" or "exit" to boot into default mode.

Cannot open access to console, the root account is locked.
See sulogin(8) man page for more details.

Press Enter to continue.

画面に表示される通りにEnterキーを押しました、よくわからない動作のあとにまた同じことが表示されて、何も効果がなかったです、あとはコマンドも入力できないし、書いてあることを翻訳してみると「緊急モード」とかなんかめちゃくちゃ怖いことが書かれてたので、ChatGPTにも相談して、電源を切りました

色々調べてみると、データのバックアップをしたあとに環境を作り直すのが一番いいみたいだったので、取り敢えずmicroSDの中身をバックアップすることにしました

Windowsの方法です、Macを使う場合はわかりません

ファイルシステムに関わらずにバイト単位で中身をコピーしてくれるというWin32 Disk Imager Renewalというソフトウェアを使いました、オリジナルに少し改善を加えたバージョンらしいです

リンクはこちらです dnobori/DN-Win32DiskImagerRenewal

起動すると、上からImage File、Device、一番下に4つのボタンが表示されてると思います

Image Fileには、保存したいパスとファイル名を書いてください、例えば C:\Users\kkkkk\backup\data.img みたいにです、拡張子は .img にしてください

Deviceは接続したmicroSDカードを選んでください、microSDカードを手に入れたときに付属でついてるカードリーダーで接続してる場合はSDXCが自動選択されていると思うのでそのままで大丈夫です

あとは下の「Read」を押して、終わるまで待機します、ファイルシステムに関係なく全てをコピーするため実際の空き容量に関係なく、カードの全体を保存するので、64GBのサイズなら、容量を60GB近く食います、気をつけてください、15分くらいで終わります

これでデータのバックアップはひとまず完了です、Raspberry Pi OSを入れていて、デフォルトのまま何もいじってなければ、暗号化はされてないので、エラーの原因が中身が壊れてるとかでなけれはext4を開ける環境で問題なくデータを見ることが出来ると思います

私はこのままWindowsで開いてみます、WSLを起動して以下のコマンドを実行してください、パスとかフォルダ名とかはそれぞれの環境で変えてから実行してください

sudo losetup -Pf /mnt/c/Users/kkkkk/backup/data.img
sudo mkdir /mnt/data
sudo mount /dev/loop0p2 /mnt/data

あとは cd /mnt/data とかで移動すればいつもの環境があります

microSDカードのデータは全部コピーしたので(壊れているとしても)修復して動くように直したり、いい機会なので環境をリセットしてやり直してみたりするのもいいと思います!

Discussion