RaspberryPiのrootfsを読み込み専用にする

公開日時

これまで使ってきたRaspberryPiのmicro SDカードが壊れたことはないけど、電源をいきなり抜くこともあるのでいつか壊れるかもしれない。

今使っているRaspberry Pi ZeroはBME280センサを使って部屋の温度・湿度を可視化することに特化して使っている。

そこで、電源をいきなり抜いても大丈夫なようにrootfsを読み込み専用にしてしまい、SDカードへの書き込みが発生しないようにした。

対応方法

上記のSetupに沿ってコマンドを実行すれば完了。

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p2   30G  1.7G   27G   6% /mnt/root-ro
tmpfs           217M  360K  217M   1% /mnt/root-rw
tmpfs           217M     0  217M   0% /mnt/boot-rw
/dev/mmcblk0p1   44M   30M   14M  69% /mnt/boot-ro
/mnt/boot-ro     44M   30M   14M  69% /mnt/boot-ro2
overlay         217M  360K  217M   1% /
overlay         217M     0  217M   0% /boot

読み込み専用にした後はファイル書き込みをしても再起動後に消えてしまう。

書き込みをする場合は、一時的に書き込み権限を付与して再マウントするか、/boot/config.txtのinitramfs initrd.gzを削除して再起動する。

別途、Raspberry Pi 2で試した際にmkinitramfsコマンドが見つからずエラーになったが、initramfs-toolsをインストールすることで対応できた。

mkinitramfs -o /boot/initrd.gz
bash: mkinitramfs: command not found

apt install initramfs-tools

参考


Related #raspberry pi

ngrokの代わりにCloudflare Tunnelを使う

botやwebhookを利用するサービスの開発が捗る

Dockerのデータ保存場所を変更する

/etc/docker/daemon.jsonに追記

Alexaにゲーミングマシンと周辺環境を終了してもらう

「Alexa Steamを終了して」ができるようになった

Alexaにゲーミングマシンと周辺環境を起動してもらう

PC起動、TV起動、サウンドバー起動がまとめてできるようになった

docker-compose build時に「no Space Left on Device」が発生

1年前にも同じエラーにハマってた