Raspberry Piをシングルユーザモードで起動する

ユーザ, パスワードを忘れてしまって、パスワードを設定しなおしたい場合や、
起動時の設定を誤ってしまった場合など、シングルユーザモードでRaspberry Piにログインする方法

cmdline.txtをエディタで開き、赤字の部分を追加します。

dwc_otg.lpm_enable=0 init=/bin/sh console=ttyAMA0,115200 \
> kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait logo.nologo
> 

cmdline.txtに、init=/bin/shを追加した上で、
Raspberry Piを起動すると、シングルユーザモードで起動するとのこと。

ただし起動直後は、/以下がreadonlyの状態でマウントされているので、
ファイルの読み込みはできても、変更などを行うことができない。

mount -o remount,rw /

で再マウントを行うことで、読み書きが可能となる。

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が走ってとりあえず修復。よかった。