Rasberry Piでoverlayfsを使いつつ一部パーティーションにはデータを保存出来るようにする方法

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は書き込み可能になった。

参考文献

英語記事ですがズバリここの通り設定したら解決した。

こちらは先述の””を付けていますが、これだと動作しなかった。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です