WICの中から

機構設計者が株式投資や育児に奮闘するblog

動かなくなったRaspberry Pi入りmicro SDをWindowsから修復させてみた

Raspberry Pi(ラズパイ)が動かなくなりました。

f:id:temcee:20180201001839j:plain
先日購入したタッチパネルのドライバを入れようとしたら、こんな感じで文鎮になっちゃいました。確かにインストール済みのRaspbianにドライバを突っ込むのは非推奨だと、マニュアルには書いていましたが…。

フォーマットして入れなおしてもいいんですが、中には思い出の開発品(クソリプbotとか熱測定のコードとか)が入ってるので、復旧させられないかと足掻いてみました。

Raspberry Piリカバリーの手順

Linuxにはfsckというファイルシステムの検査と修復を行うコマンドがあるということで、これをダメになったラズパイSDに試してみようということです。具体的な手順は以下の通り。

  1. VMwareのインストール
  2. 仮想マシンでSDを認識
  3. SDが割り当てられているdevを確認してマウント解除
  4. fsckコマンドで修復

何を言ってるか分からない人もいるかと思いますが、僕だって1/3も分かってないので大丈夫です。

VMwareのインストール

VMware Playerのダウンロードはこちらから(個人利用は無料)
OSはオススメされていたFedoraを入れました。ワークステーションの、1.5GBのliveイメージを使って仮想マシンを立ち上げています。
f:id:temcee:20180201233054p:plain

インストールから仮想マシンの作成までは特に難しいことはなかったので割愛します。

f:id:temcee:20180131232414p:plain

仮想マシンでSDを認識

Fedoraを起動してからSDカードリーダーを挿します。先にリーダーがあると、Fedoraが立ち上がらないことがあったので、その点はご注意を。
f:id:temcee:20180131232621p:plain

カードリーダーを挿したら何もせずに認識してくれました。ファイルを覗いてみると、ラズパイのhomeフォルダが見えました。よかった…とりあえずファイルの取り出しができる。 f:id:temcee:20180131233728p:plain

SDが割り当てられているdevを確認してマウント解除

ターミナルを立ち上げます。ActivitiesをクリックしてUtilitiesの中に入ってます。
f:id:temcee:20180131233239p:plain

次にSDがどこに割り当てられるかを確認します。dmesgコマンドを使うらしいです。

dmesg | tail

このコマンド、「カーネルのリングバッファの内容を出力する」というもので、正直いって意味が分かってません。ただ、何となく/dev/sdb/に割り当てられている雰囲気を感じました。
fsckはマウント解除してから実行しろということなので、umountでマウントを解除しておきます。sudo無いと怒られたので、ご注意を。

sudo umount /dev/sdb*

f:id:temcee:20180202002123p:plain

fsckコマンドで修復

ここまでくれば後一息です。sdb*に対してしらみ潰しにfsckを実行していきます。オプションの-Vは詳細な情報を表示してくれます。

sudo fsck.fat -V /dev/sdb6

f:id:temcee:20180202003631p:plain 画像の通りsdb6で異常を感知しました。異常な箇所を削除するか聞かれたので、削除してみます。これはもしかしてラズパイ復活の予感…!

結果

ダメでした。

f:id:temcee:20180202004222j:plain

まとめ

ラズパイを復活させようとしましたが、ダメでした。しょうがないので大人しくフォーマットします。今度はタッチパネルのドライバが最初っから入ってるイメージファイルを焼きこむようにします。
復活がかなわなかったのは残念でしたが、副産物が色々とありました。

  • VMwareはじめて使った
  • 知ってるコマンド増えた
  • ラズパイの中身をサルベージできた

やってみることで見えてくるものはあるし、知識も増えるので、かけた時間はムダじゃなかったかなと思います。何より「ラズパイを復活させる」という分かりやすい目標があると、やる気が湧いてくるものです。 この手法でラズパイを復帰させてる方もいたので、もしラズパイが文鎮化して困っている人がいるなら、一度試してみるといいかなと思います。

参考にしたページ

Raspberry PiでMicro SDカードが壊れたときの対処方法 - エンジニアの備忘録
Raspberry piのファイルシステム破損による起動失敗とリカバリ方法: 学習ノート

こんな記事も書いています。 temcee.hatenablog.com
コードは取り出したので、いつでもクソリプいけます。