Rasberry Piでoverlayfsを有効にしたら、その状態で一部データだけ保存しようとしてハマったのでそのメモ。
もくじ
raspi-configでoverlayfsを設定
環境
本体:Rasberry Pi 5 8GB
OSバージョン:Linux raspi 6.6.74+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.74-1+rpt1 (2025-01-27) aarch64 GNU/Linux
Rasberry piでSDカードにOSを入れてそのまま使うと、書き換え回数や電源断による寿命の問題があり、overlayfsを有効にしている。
sudo raspi-config
として設定を変えれば簡単に有効に出来る。
Perfomance Options > Overlay File System(略)
を選べば設定できる。
全てのパーティーションでデータを保存出来ない問題
しかしこの状態だと、当然ながら電源を切ると、書き換えた内容は全て消えてるので、一部データを保存出来るようにしたい。
SDカードにパーティーションを切ってみる。
/dev/mmcblk0p2だけでなく/dev/mmcblk0p3もoverlayfsが有効になってしまう。これではパーティーションを切った意味がない。
USBメモリ等の外部ディスクを繋いでも同様の動作になるため無意味。
設定を変えて一部データを保存可能に
bootパーティーションをroでマウントしている場合は、rwでremountする。
sudo mount -o rw,remount /boot/firmware
/boot/firmware/cmdline.txt
を書き換える。
raspi-configでoverlayfsを有効にした後の内容は以下の通り。
overlayroot=tmpfs console=serial0,115200 console=tty1 root=PARTUUID=6ccae0e1-02 rootfstype=ext4 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=JP
console~以降は各自の環境で違うと思われるので、適宜読み替える。
最初のoverlayroot=tmpfsの後に:recurse=0を追加。
overlayroot=tmpfs:recurse=0 console=serial0,115200 console=tty1 root=PARTUUID=6ccae0e1-02 rootfstype=ext4 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=JP
ここで下のように””で囲ったら動作しなかったので、ダメだったら””無しで試してみよう。
overlayroot="tmpfs:recurse=0"
無事に/dev/mmcblk0p2のみoverlayfsが有効になって、/dev/mmcblk0p3は書き込み可能になった。
参考文献
英語記事ですがズバリここの通り設定したら解決した。
こちらは先述の””を付けていますが、これだと動作しなかった。