電源ブチ切りしてもファイルシステムが壊れない、シャットダウンフリーなラズパイを構築する。tmpfs,overlayの実体はSDRAMなので、その領域で更新したファイルは電源断で消えることに留意。保存したいデータがあるケースでは、MicroSDの別パーティションやUSBメモリをrwマウントして運用する。ここでは下準備まで。
シャットダウンフリー実装 | 準備 |
---|---|
ラズパイ:シャットダウンフリー fuse+overlay編 | ①〜⑤ |
ラズパイ:シャットダウンフリー overlay編(fuse無し) | ①〜③、⑤ |
ラズパイ:シャットダウンフリー tmpfs-chroot編 (未完成) | ①〜③ |
ラズパイ:シャットダウンフリー tmpfs-bind編 | ①〜③ |
前提:
- Raspbian のバージョンは stretch (debian9.x)
- root権限でオペレーション:「sudo su -」 または 「su -」でrootになる。
- /dev/mmcblk0p2にユーザランド(rootfs)構成物がほぼ全てあるものとする。
① ベースのアップデート
apt update
apt upgrade
rpi-update # FWアップデートは推奨されてはいないが私はやる主義。
② FAT領域をチェック/リペア
デフォルトでは、軟弱なFAT領域がrwでマウントされている。既に電源ブチ切りで壊れかけていることも多い。
dosfsck -w -r -l -a -v -t /dev/mmcblk0p1
参考:
https://askubuntu.com/questions/147228/how-to-repair-a-corrupted-fat32-file-system
https://explainshell.com/
③ スワップの無効化
systemctl stop dphys-swapfile.service systemctl disable dphys-swapfile.service rm /var/swap ## ←swapファイルの実体。
④ パッケージ追加 fuse
apt install fuse
⑤ /etc/modulesに"overlay"を追記
↓ 単に末尾にoverlayを追記しているだけなので、エディタ開けるなら手編集でどうぞ。
grep overlay /etc/modules > /dev/null; [ $? == 0 ] || echo overlay >> /etc/modules
本件とは無関係だが、/etc/sysctl.confに下記を追記し、IPv6を無効化する。ただし、副作用にご注意。
/etc/sysctl.conf:
・・・ net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1