Seeed K.K.の松岡です。
知らぬ間に日本向けSenseCAP M1ゲートウェイが販売開始していました。Helium LongFi互換らしい。Helium Explorerを見ると、アメリカ、ヨーロッパ、中国にたくさん設置されていますね。このGUI、かっこいい。
先回、reTerminalでeMMC書き込みを止める方法を紹介しました。考慮すべきことに「どんな書き込みがあるのかを十分調べて」と書きました。
今回は、この「どんな書き込みがあるかを調べる方法」を紹介します。

どうやって書き込みを調べるのか?
ルートファイルシステムを保護設定すると、ルートファイルシステムにOverlayFSを使用します。OverlayFSへの書き込みはRAMのtmpfsに書き込まれます。

このtmpfsを横から覗き見ることができればどんな書き込みがあるか把握できます。しかし、あれこれ試行錯誤したものの中身を見ることができませんでした。むぅ、力量不足。(方法をご存じの方はご連絡いただけるとうれしいです。)
やり方を変えて、OferlayFSへの書き込みをRAMのtmpfsから、USBメモリのext4に変更したところ、書き込んだデータを横から覗き見ることができました。わーい。
ルートファイルシステムを保護する(書き込みはUSBメモリへ)
USBメモリにext4を用意
USBメモリにパーティションを作成して、ext4でフォーマットします。
reTerminalにUSBメモリを差してlsblkで確認すると、sdaで認識しています。

まず、パーティションを作成します。sudo fdisk /dev/sdaを実行してください。

lsblkで確認すると、sda1が追加されたのがわかります。

次に、パーティションをext4でフォーマットします。sudo mkfs.ext4 /dev/sda1を実行してください。

フォーマットが終わった後、USBメモリを抜き差しすると自動的にマウントされて中身にアクセスすることができます。

そして、ファイルシステムのUUIDを調べておきます。ls -l /dev/disk/by-uuidを実行してください。

OverlayFSのtmpfs(RAM)をext4(USBメモリ)に変更
/usr/bin/raspi-configを編集します。sudo vi /usr/bin/raspi-configを実行して、enable_overlayfs()のmount -t tmpfs tmpfs /upperをコメント、sleep 10とmount -t ext4 UUID="efb7c6b8-8ec7-472f-94e1-a0c5835ca892" /upperを追加してください。UUIDの値は、さきほど調べたUUIDに置き換えてください。
USBメモリが認識されるのに少し時間がかかるようです。
sleep 10を加えないとmountでエラーになります。
#mount -t tmpfs tmpfs /upper sleep 10 mount -t ext4 UUID="efb7c6b8-8ec7-472f-94e1-a0c5835ca892" /upper

ルートファイルシステムを保護する
こちらの「ルートファイルシステムを保護する」を実施してください。
再起動後、USBメモリのext4を見ると、ルートファイルシステムに書き込んだデータがあるのがわかります。

(余談)スワップファイル
ざっと眺めてみると、100Mbytesも使用しているファイルがっ。
スワップファイルですね。無効になっていても、ファイルは存在しているようです。

サービスを無効化することで、ファイルが生成されないようになりました。


参考リンク
変更履歴
| 日付 | 変更者 | 変更内容 |
|---|---|---|
| 2022/4/4 | 松岡 | 作成 |
| 2022/4/8 | 松岡 | 画像クリック時に拡大表示されない不具合を改修 |