いきさつ
PICで作成中のソフトにSPI I/Fを加えるため、デバッグのお相手としてRaspberry Piを引っ張り出して、環境(Python 3.6, wiringPi, etc.)を整え通信の確認までできたまではよかったのですが、週末続きをやろうとしたら起動しなくなってしまいました。
バックアップを取っていなかったので、RaspbianのイメージをSDに書いて環境をもう一度つくるのは面倒いやだなということで、とりあえずLinuxホストでfsckしてみることにした。
Linuxホストは Ubuntu 14.04 LTS です。
1. SDカードのデバイスを確認
~$ ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 2月 13 12:16 /dev/sda
brw-rw---- 1 root disk 8, 1 2月 13 12:16 /dev/sda1
brw-rw---- 1 root disk 8, 2 2月 13 12:16 /dev/sda2
brw-rw---- 1 root disk 8, 5 2月 13 12:16 /dev/sda5
brw-rw---- 1 root disk 8, 16 2月 13 12:43 /dev/sdb
brw-rw---- 1 root disk 8, 17 2月 13 12:43 /dev/sdb1
brw-rw---- 1 root disk 8, 18 2月 13 12:43 /dev/sdb2
/dev/sdbが SDカード
/dev/sdb1 が Bootパーティション
/dev/sdb2 が ext4パーティション
2. Bootパーティションにfsckをかけてみる
~$ sudo fsck /dev/sdb1
fsck from util-linux 2.20.1
fsck.fat 3.0.26 (2014-03-07)
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
1) Remove dirty bit
2) No action
?
dirty bitがセットされている?
これで起動できないのか??
削除してみましょう。
? 1
Leaving filesystem unchanged.
/dev/sdb1: 149 files, 42667/83705 clusters
できない...
ここで調べてみると、-w -a
or -w -r
オプションをつけてみるといいらしいことがわかりました。
参考になったのは次のふたつ
- [Board index > Using the Raspberry Pi > Troubleshooting
Volume was not properly unmounted ...]
(https://www.raspberrypi.org/forums/viewtopic.php?t=64843) - [I tell fsck to fix USB stick, it says “Leaving file system unchanged.”]
(https://superuser.com/questions/418053/i-tell-fsck-to-fix-usb-stick-it-says-leaving-file-system-unchanged)
3. -w -r オプションを加えて試してみる
~$ sudo fsck -w -r /dev/sdb1
fsck from util-linux 2.20.1
fsck.fat 3.0.26 (2014-03-07)
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
1) Remove dirty bit
2) No action
? 1
Perform changes ? (y/n) y
/dev/sdb1: 149 files, 42667/83705 clusters
できたかも
4. ext4パーティションにfsckをかけてみる
~$ sudo fsck /dev/sdb2
fsck from util-linux 2.20.1
e2fsck 1.42.9 (4-Feb-2014)
rootfs: clean, 148774/474832 files, 1181603/1930752 blocks
こちらは大丈夫だったみたい
SDカードをRaspberry Pi B+に挿入し電源オン
無事起動できました。
今度はバックアップを取っておきましょう。