結局、micro SDが壊れてたっぽい。
正常起動確率50%位でだましだまし動かしてたが、新しいmicro SDにしたら起動確率100%になった。
二年位で寿命とは情けない。とはいえ、/var/log に毎日ゴリゴリ書き込んでるんだからしょうがないか。
そこで!
こいつの出番。
/etc/init.d/ramdisklog を作成。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#! /bin/sh ### BEGIN INIT INFO # Provides: ramdisklog # Required-Start: $local_fs # Required-Stop: $local_fs # X-Start-Before: $syslog # X-Stop-After: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Use ramdisk log tmp # Description: Debian init script for the ramdisklog log&tmp move to # ramdisk ### END INIT INFO # # Author: Yuji Noizumi <webmaster_at_noizumi.org> # PATH=/bin:/usr/bin:/sbin:/usr/sbin . /lib/lsb/init-functions case "$1" in start) mkdir -p /mnt/tmp mkdir -p /mnt/var/tmp mkdir -p /mnt/var/log mount -t tmpfs /dev/shm /mnt/tmp mount -t tmpfs /dev/shm /mnt/var/tmp mount -t tmpfs /dev/shm /mnt/var/log /usr/bin/rsync -a /var/log/ /mnt/var/log mount --bind /mnt/tmp /tmp mount --bind /mnt/var/tmp /var/tmp mount --bind /mnt/var/log /var/log chmod -R 1777 /var/tmp chmod -R 1777 /tmp log_daemon_msg "Moved log&tmp to Ramdisk" "ramdisklog" log_end_msg $? ;; stop) log_daemon_msg "Write back Ramdisk log to /var/log" "ramdisklog" umount -l /tmp umount -l /var/tmp umount -l /var/log /usr/bin/rsync -a –delete /mnt/var/log/ /var/log log_end_msg $? ;; force-reload|restart) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/ramdisklog {start|stop|restart|force-reload}" exit 1 ;; esac exit 0 |
ramdisk 作って log コピーして、その ramdisk を bind で/var/logに被せるというしくみ。
# insserv ramdisklog
ついでにswapも無効化
# insserv -r dphys-swapfile
# reboot
で完了。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
root@raspberrypi:~# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/root 28G 8.2G 19G 31% / devtmpfs 458M 0 458M 0% /dev tmpfs 462M 0 462M 0% /dev/shm tmpfs 462M 6.3M 456M 2% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 462M 0 462M 0% /sys/fs/cgroup /dev/mmcblk0p6 63M 22M 42M 35% /boot /dev/shm 462M 0 462M 0% /tmp /dev/shm 462M 0 462M 0% /var/tmp /dev/shm 462M 1.4M 461M 1% /var/log tmpfs 93M 0 93M 0% /run/user/1000 |
マウント状況はこんな感じ。