ゼロスピンドル Let's note W2 で Debian 4.0 Etch
http://d.hatena.ne.jp/sa-y/20070626 の続き.
使わなそうなパッケージを削除
とりあえず目に付いたパッケージを削除
% dpkg --purge installation-report % dpkg --purge reporbug
フラッシュメモリへの書き込みを減らす
ディスクへの書き込みを減らすためには書き込み発生する場所を RAMDISK にしてしまうのが簡単ですね.
/tmp を tmpfs 化
この辺は基本ですね.
% ls -l /tmp total 0 % mount -t tmpfs tmpfs /tmp
/var/log を tmpfs 化
書き込みがあるディレクトリといえば /var/log です.ここを tmpfs 化すればフラッシュメモリへの書き込みは一気に減ります.しかしリブートするとログが全て消えてしまうので普通は tmpfs 化とかしません.
よい子はまねしないように.子供がまねしようとしたら親御さんは注意してあげてください.
まず /var/log 以下のファイルを握っているプロセスを特定します.
% cd /var/log % fuser * acpid: 2126 auth.log: 2048 daemon.log: 2048 debug: 2048 kern.log: 2048 lpr.log: 2048 mail.err: 2048 mail.info: 2048 mail.log: 2048 mail.warn: 2048 messages: 2048 syslog: 2048 user.log: 2048 uucp.log: 2048 % ps -p 2126 2048 PID TTY STAT TIME COMMAND 2048 ? Ss 0:00 /sbin/syslogd 2126 ? Ss 0:00 /usr/sbin/acpid -c /etc/acpi/events -s /var/run/acpid.socket
syslogd と acpid が犯人のようです.ここで syslogd を停止してしまうというのも考えましたが完全にログが読めなくなるのも困るので却下.それに syslogd 以外にも /var/log/ 以下にログを書き出すデーモンも存在するわけなので…
% /etc/init.d/sysklogd stop Stopping system log daemon: syslogd. % /etc/init.d/acpid stop Stopping Advanced Configuration and Power Interface daemon: acpid. % fuser /var/log/*
停止しました.
% cd /var % mv log log.orig % mkdir log % mount -t tmpfs tmpfs /var/log
tmpfs にしてしまいました.古い /var/log を残してあるあたりが未練がましいですが気にしない…
さっそく syslogd を起動すると…
% /etc/init.d/sysklogd start Starting system log daemon: syslogd syslogd: /var/log/news/news.crit: No such file or directory syslogd: /var/log/news/news.err: No such file or directory syslogd: /var/log/news/news.notice: No such file or directory
怒られたですよ…
ってか /var/log/news って… 今時 NetNews でもないでしょうに…*1
INN とか使う予定もないので /etc/syslog.conf で NetNews のログを止めてしまいましょう.ついでに前にメールサーバもアンインストールしたのでそのログも無効に.
# Logging for the mail system. Split it up so that # it is easy to write scripts to parse these files. # mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err # Logging for INN news system # news.crit /var/log/news/news.crit news.err /var/log/news/news.err news.notice -/var/log/news/news.notice
上のような部分の該当行を以下のようにコメントアウト.
# Logging for the mail system. Split it up so that # it is easy to write scripts to parse these files. # #mail.info -/var/log/mail.info #mail.warn -/var/log/mail.warn #mail.err /var/log/mail.err # Logging for INN news system # #news.crit /var/log/news/news.crit #news.err /var/log/news/news.err #news.notice -/var/log/news/news.notice
んで syslogd をもっかい起動してみる.
% /etc/init.d/sysklogd stop Stopping system log daemon: syslogd. % /etc/init.d/sysklogd start Starting system log daemon: syslogd
acpid も起動する.
% /etc/init.d/acpid start Loading ACPI modules: battery ac processor button fan thermal Starting Advanced Configuration and Power Interface daemon: acpid.
とりあえず問題なさそうなので /etc/fstab に以下の2行を追加してブート時から tmpfs になるようにしてしまう.
tmpfs /tmp tmpfs defaults 0 0 tmpfs /var/log tmpfs defaults 0 0
使ってみて問題が起きたらその時また考えます.
*1:とか書くと使ってる人に怒られそうですが