Raspberry Pi のSDカードが壊れ、起動しなくなってしまった場合の修復方法 |じょるブログ

じょるブログ

電子工作やプログラミング関連の情報を発信している技術系ブログ

電子工作 ラズベリーパイ

Raspberry Pi のSDカードが壊れ、起動しなくなってしまった場合の修復方法

投稿日:2019年3月17日 更新日:

スマートリモコンとして使用していたラズベリーパイ(zero WH)の調子が最近悪く、ちょっと動作が遅くなってきたなと思っていたら突然反応しなくなってしまいました。半年以上問題なく稼働していましたが、起動すらしなくなり、boot画面で止まってしまいます。

そのラズベリーパイで使用していたSDカードを修復するために、WindowsパソコンにVMwareという仮想マシンをインストールしLinuxを入れ、Linuxのfsckコマンドを使用することで、見事SDカードを復活させることができましたので、備忘録として記載しておきます。


Raspberry Pi4 ModelB 4GB ラズベリーパイ4 技適対応品

    


32GB microSDHCカード 東芝 CLASS10

    

仮想マシンの作成

まず、WindowsパソコンでLinux(ubuntu)を動かすためにVMwareを用いて仮想マシンを作成します。こちらの方法ですと所要時間20分ほどでUSB、DVDにOSイメージを焼くことなく簡単に仮想マシンを作成できます。

    

SDカードを仮想マシンに認識させる

まず、何もマウントされていないかを以下のコマンドを仮想マシン上で実行し、確認します。

$ ls -l /dev/sd*
user@ubuntu:~$ ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 Mar 17 10:01 /dev/sda
brw-rw---- 1 root disk 8,  1 Mar 17 10:01 /dev/sda1

次に、SDカードを挿入します。

以下のようなポップアップ画面が表示されたら、”仮想マシンに接続”を選択し、”OK”をクリックすると、仮想マシン上でSDカードを認識してくれます。

もう一度先ほどのコマンドを実行し、正しくSDカードを認識しているか確認します。

user@ubuntu:~$ ls -l /dev/sd*
 brw-rw---- 1 root disk 8,  0 Mar 17 10:01 /dev/sda
 brw-rw---- 1 root disk 8,  1 Mar 17 10:01 /dev/sda1
 brw-rw---- 1 root disk 8, 16 Mar 17 12:02 /dev/sdb
 brw-rw---- 1 root disk 8, 17 Mar 17 12:02 /dev/sdb1
 brw-rw---- 1 root disk 8, 18 Mar 17 12:02 /dev/sdb2
 brw-rw---- 1 root disk 8, 21 Mar 17 12:02 /dev/sdb5
 brw-rw---- 1 root disk 8, 22 Mar 17 12:02 /dev/sdb6
 brw-rw---- 1 root disk 8, 23 Mar 17 12:02 /dev/sdb7

新しく/dev/sdb 以降が追加されているので、これがSDカードであることがわかります。

   

SDカードの修復

SDカードの修復には、fsckコマンドを使用します。

このコマンドを使用するにはアンマウントする必要があるので、事前にアンマウントしておきます。

$ sudo umount /dev/sdb*

次に、/dev/sdb1 ~ /dev/sdb7に対して、fsckコマンドを使用して修復していきます。

user@ubuntu:~$ sudo fsck /dev/sdb1
fsck from util-linux 2.31.1
fsck.fat 4.1 (2017-01-24)
Free cluster summary wrong (5919 vs. really 5918)
1) Correct
2) Don't correct
? 

どこかに間違いが見つかったようなので”1”と入力してみます。

user@ubuntu:~$ sudo fsck /dev/sdb1
fsck from util-linux 2.31.1
fsck.fat 4.1 (2017-01-24)
Free cluster summary wrong (5919 vs. really 5918)
1) Correct
2) Don't correct
? 1
Perform changes ? (y/n) 

変更するかと聞かれたのでYesと答えます。

user@ubuntu:~$ sudo fsck /dev/sdb1
fsck from util-linux 2.31.1
fsck.fat 4.1 (2017-01-24)
Free cluster summary wrong (5919 vs. really 5918)
1) Correct
2) Don't correct
? 1
Perform changes ? (y/n) y
/dev/sdb1: 223 files, 96678/102596 clusters

無事修正できました。

同様に/dev/sdb2以降のパーティションにもfsckコマンドを実行しましたが問題ありませんでした。

  

修復できたか確認

SDカードを取り外し、ラズベリーパイに挿入して起動してみると・・・

無事復活しました!

これでも直らない場合はfsckコマンドの代わりにfsck.fatコマンドを使用することで直ることもあるようです。(参考サイト

   

後日談・・・

修復して1週間ほどで、また起動しなくなってしまいました。そして、もう一度修復しましたが、今度はさらに短い5日ほどでまたまた起動しなくなってしまいました。

幸運にもイメージのバックアップはとっていたので、SDカードを新たに購入し、そのバックアップを新しく購入したSDカードに焼き付けました。以後1か月ほど経ちましたが特に問題はないので、SDカードの寿命だったのでしょう…

ラズベリーパイでSDカードを使用した場合、頻繁に読み書きを行うため、SDカードの寿命が極端に短くなってしまうようです。

ということなので、 もしイメージのバックアップをとっている方は新しくSDカードを買い替えたほうがよさそうです。


16GB SanDisk サンディスク

値段も安くなってきており、500円ほどで16GB Class10のSDカードが買えます!

バックアップを取っていない方は修復に成功しても安心せず、修復後にバックアップをしっかりとりましょう!

google ads




google ads




-電子工作, ラズベリーパイ

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

RaspberryPiのセットアップ ② – SSH,VNC(遠隔操作)の設定とファイルサーバーの設定

 この記事では、前回の記事(RaspberryPiのセットアップ ① – 2種類のOSインストール方法と基本設定)に引き続き、ラズパイを遠隔操作するためのSSH・VNCの設定方法と、パソコ …

ラズベリーパイをディスプレイに接続せずSSH設定する方法

    一般的にラズベリーパイをパソコンからSSHで操作しようとした場合は、ラズパイにマウス、キーボード、ディスプレイを接続して、一度ラズパイ上でwi-fiの設定を行う必要があります。 しかし、実家に …

物理ボタンをIoT化 – ESP32で Swich bot を自作し、スマホからスイッチをON,OFFできるようにしてみた

   この記事ではESP32をIoTデバイスとして使用し、家の電気のボタンや電子レンジのボタンなどの、あらゆる物理ボタンを押すことのできるスイッチボットを作成する方法について解説します。 市販されてい …

Google Apps Scriptを使用してスプレッドシート上の図形を押した際に、プログラムを実行させる

    大学生の電子工作 ラズパイでスマートロック作ってみた⑤の記事に関連して、スプレッドシート上に設置したボタンを押した際に Google Apps Scriptを用いたプログラムを実行することで、 …

簡単!ラズパイでスマホ広告をブロック – youtube広告も削除可能!

    ラズパイでスマホを含む家中の端末に表示されるWEB広告をブロックする方法を紹介します。 動画の最初や途中に表示されるyoutube広告を削除することも可能です! 最近ラズパイを使って何かしたい …




関連記事