それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

raspberry pi のSDカードの寿命を意識した設定をする。

raspberry pi のSDカードはこわれます。

過去何枚も使い潰してきました。32GBを使うようになってからあまり壊れてないので、32GBぐらいがOSのログ頻度でも寿命を維持できるサイズなのかと思ってる。

それでも枚数を使い潰すと、安くない出費である。台数も増えてきたので設定を見直しておく。

単純に ramdisk にしてしまってもいいのだけれどね。

準備

ネットワーク設定関連を切り替えるまえに、ttyS0/ttyUSB0を使う。

sudo systemctl enable serial-getty@ttyUSB0
sudo systemctl start serial-getty@ttyUSB0
## 終わったら
sudo systemctl stop serial-getty@ttyUSB0

シリアルコンソールでトラブルがおきたときにネットワーク設定がうまくいくことを確認するためポートを用意しておく。

swap を無効にする

sudo systemctl status dphys-swapfile
sudo systemctl disable dphys-swapfile
## または
## sudo apt remove dphys-swapfile

ext4 の同期タイミングを制御する。

takuya@pi-zero:~ $ sudo cat /etc/fstab  | grep ext4
PARTUUID=48c4552a-02  /               ext4    defaults,noatime,commit=200  0       1

なお、300秒以上はwarningが表示されるとのことなので290としています。
https://iot-plus.net/make/raspi/extend-sdcard-lifetime-5plus1/#toc_id_2_7

なお、この設定では不用意な電源切断でext4がおかしくなるので、起動時にfsckを掛けるとかで予防できるんじゃないかな。

/boot/firmware/cmdline.txt にカーネルオプションを追加

fsck.mode=force

wifi 関連

WiFiは pi zero には搭載されてないので止めちゃう

sudo systemctl disable wpa_supplicant.service
sudo sed -i '2i\ \ \ \ \ \ \ \ exit 0' /etc/profile.d/wifi-check.sh

ログ関連/journalctl

みんな頑張ってログを設定してるんだろうけど、ログを揮発性にすれば終わりじゃね?

/etc/systemd/journald.conf:

[Journal]
#Storage=auto
Storage=volatile 

https://superuser.com/questions/1452659/how-can-i-set-quotas-for-var-log-journal

HDMIオフ

電源チューニングをやろうと思ったが、tvservice がbullseyesに含まれないので、どうしようかな困った。

apt関連

apt install 時に doc locale man を使わないようにする。初心者はman 見たほうがいいのでやっちゃ駄目。manは別のサーバーで見るよってときはこれを設定する。

/etc/dpkg/dpkg.cfg.d/01-nodocを 新規作成 (/etc/dpkg/dpkg.cfg.d/ は、/etc/dpkg/dpkg.conf.d の場合もある。)

# Delete locales
path-exclude=/usr/share/locale/*

# Delete man pages
path-exclude=/usr/share/man/*

# Delete docs
path-exclude=/usr/share/doc/*
path-include=/usr/share/doc/*/copyright

これでapt install 時に man が省略されるはずです。インストールするファイル数が減ってダメージを減らせる。

ramdisk

ログファイルやtmp を ram 化すれば、全体をRamdiskにする必要はないんじゃないかなと。

ramdisk 化は定番だし、raspi-config でも出来る。しかし、殆どの場合、ログファイルの書き込みをへらすのが目的だとおもう。そこは journalctl を voliate (揮発性)にで代用できるので、ramdisk化は実行するか思案する。

私は、Ramdisk化による、OSへセキュリティパッチを自動適用できなくなるセキュリティ・リスクのほうが怖い。

2022-02-18

man と ramdisk について修正。