日記帳

日記です。

ゼロスピンドル 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:とか書くと使ってる人に怒られそうですが