Raspberry piがRead-Only Filesystemになってしまったときの対処法

Raspberry piの設定ファイルを書き換えても再起動すると、元の内容に戻ってしまい変更が反映されない。

pi@raspberrypi ~ $ dmesg | egrep "readonly|read-only"

[    2.386594] mmc0: host does not support reading read-only switch, assuming write-enable
[    2.526799] EXT4-fs (mmcblk0p6): INFO: recovery required on readonly filesystem
[    3.242388] EXT4-fs (mmcblk0p6): orphan cleanup on readonly fs
[    3.370433] VFS: Mounted root (ext4 filesystem) readonly on device 179:6.

dmesgで見ると、ファイルシステム全体がReadonlyになっていて、これがファイルがうまく保存されない原因のようだ。起動中にSDカードを抜き出したり、電源を落としたときにファイルシステムが壊れたか。

recovery required on readonly filesystem

というわけでさっそく修復してみる。fsckコマンドで修復してみるも、既にマウントされているのでコマンド実行できないと怒られる。とりあえず早く修復して別の作業に取り掛かりたいので、カーネル起動オプション設定ファイル「cmdline.txt」に、fsckを毎回起動時に実行する設定を追記し、Raspberry Piを再起動。

fsck.mode=force

fsckが走ってとりあえず修復。よかった。