2007年01月30日(Tue) できたてのオムレツが食べたかった [長年日記]
● オモコンマシンのフリーズの原因?
未だに原因のわからないオモコンマシンのフリーズについて、もしかしたらヒントになるかもしれない情報がありました。@ITのLinux Kernel Watchによると、2.6.19でext3の場合に、mmapを使っているアプリケーションでデータが破損することがある、とのこと。これかなー?
(追記)…ってACさんが紹介してくださってそれでも解決しなかった件でした。あららー。
● はやぶさがんばる
星の情報.jpより、「はやぶさ」試料容器のカプセル収納・蓋閉め運用が完了(宇宙科学研究本部)。うあー。むかーし液体ヘリウム冷却されたキカイをいじってたのを思いだした。真空の向こうにある部品がどうなってるか一所懸命想像するの。が、はやぶさは7分半の向こうに居るんだよね。お疲れさまでした。
● [DocoMomo] /etc/fstabや/etc/mtabはsymbolic linkだと期待通り働かないみたい
DocoMomoでは/etcをinitrdに含むようにしている。これは、initrdの みで到達するべきrun level 1で必要なファイルが多数入っているため。 initrdはメモリ上に展開されるので、書きこみはできるけれど保存はさ れない。毎回起動するたびに元の内容に戻ってしまう。すると、 DocoMomo上で/etcに対しておこなった設定の変更は保存されないことに なる。
で、/etcに対する変更を保存できるようにできないか試してみた。具体 的には、initrdから供給される/etcに、run level 3以上でext2のイメ ージとしている/etcをかぶせてmountしてしまう。これを単純にしただけ では、
- /etcをmountする
- ext2から供給される/etc/mtabが現れる
- /etcをmountしたという情報がext2からの/etc/mtabに書かれる
- しばらく使う
- /etcをumountする
- initrdから供給される/etc/mtabが現れる
- /etcをumountしたという情報がinitrdからの/etc/mtabに書かれる
ということになって、etx2からの/etc/mtabは/etcの行であふれるこ とになりました。
次に試したのは、/etc/mtabと/etc/fstabを、initrdからのディレク トリにあるファイルへのsymlinkにする方法。
すると、ブート時に誰かがfstabやmtabをうまく読んでくれないよう でした。その結果、/procなどがマウントされない。あー。考えてみたら ブート時に/etc/fstabに従ってファイルシステムをマウントするのは誰 の仕事なんだろう。後で調べる。で、mtabもおかしい
というわけで、DocoMomoでは今のところ 元に戻して、/etc全体をinitrdから供給するようにしてしまったのでし た。
mtabについては、manpageに/proc/mountsへのシンボリックリンクに してもよい、との記述があるので試してみよう。
(追記) ファイルシステムがマウントされるタイミングがわかった。 initがinittabを読んで/etc/rc.sysinitを起動して、そこからfsck -aと かmount -aが動く。じゃあ/etc/fstabのシンボリックリンク先を追って くれないのはmonutコマンドということになるのかな?
(追記) mtabはrc.sysinitの後の方で消されたり書かれたりしていた。 ここでシンボリックリンクが切れてしまうんだね。…じゃない。リダイ レクションを通じて読み書きされてるだけだ。
● [pda] Palmの液晶に欠損ができた
ついにPalmの液晶に色の変化しないピクセルがいくつかできているのに気づいてしまいました。ソフトリセットしても消えない、赤と灰色の模様。保護シートにもこすった跡がついているので、何かでごりごり押しつけてしまったのでしょうね。透明電極がおかしくなったのかな?
まだまだ壊れるまで使いたおすのでよろしくねー。
● SkycatやGoogle Imagesなどを使っていると、マウスが上を通るだけでフォーカスが変わったりメニューが現われたりするインターフェースは使うべきではない、ということがわかる。気をつけようっと。
● [DocoMomo] /etc/rcと/etc/rc.sysinitから参照されているっぽいファイル
/etc以下のファイルとしては、 /etc/blkid.tab /etc/init.d/functions /etc/inittab /etc/ld.so.cache /etc/mdadm.conf /etc/momonga-release /etc/mtab /etc/multipath.conf /etc/rc /etc/rc$runlevel.d /etc/rc.modules /etc/rc.readonly /etc/rc.serial /etc/rc.sysinit /etc/redhat-release /etc/resolv.conf /etc/rhgb/temp/rhgb-console /etc/selinux /etc/selinux/config /etc/sysconfig/autofsck /etc/sysconfig/clock /etc/sysconfig/console/default.kmap /etc/sysconfig/keyboard /etc/sysconfig/modules/*.modules /etc/sysconfig/network /etc/sysconfig/readonly-root /etc/sysctl.conf くらい、 コマンドっぽいものは、 /bin/dmesg /bin/loadkeys /bin/true /sbin/blockdev /sbin/convertquota /sbin/dmraid /sbin/dmsetup /sbin/fixfiles /sbin/hwclock /sbin/lvm.static /sbin/modprobe /sbin/multipath.static /sbin/pam_console_apply /sbin/quotacheck /sbin/quotaon /sbin/restorecon /sbin/rngd /sbin/setsysfont /sbin/zfcpconf.sh /usr/bin/passwd /usr/bin/rhgb /usr/bin/rhgb-client /usr/sbin/authconfig-tui /usr/sbin/netconfig /usr/sbin/ntsysv /usr/sbin/system-config-network-cmd /usr/sbin/timeconfig /var/lib/random-seed awk egrep fgrep modprobe mount relabel_selinux restorecon sysctl touch umount くらいがあった。
mountが/etc/fstabを見ていたりするし、無けりゃないでよしなにや ってくれるファイルも多いので、このリストからrun level 1に必要なフ ァイルを決めるのは困難だけれど。
(追記) ついでに /etc/init.d/* にある /etcで始まるファイル名っ ぽい文字列のリスト。これは Momonga 2 のマシンから取ったので古いか もしれないが。 /etc/alsa.d /etc/apcupsd/apccontrol /etc/apcupsd/apcupsd.conf /etc/apcupsd/powerfail /etc/asound.state /etc/crontab /etc/fstab /etc/hotplug/firmware.agent /etc/init.d /etc/init.d/acpid /etc/init.d/atd /etc/init.d/functions /etc/init.d/netfs /etc/init.d/$subsys /etc/init.d/$subsys.init /etc/init.d/xfs /etc/init.d/ypbind.init /etc/inittab /etc/nologin /etc/nscd.conf /etc/nsswitch.conf /etc/ntp.conf /etc/ntp/step-tickers /etc/postfix /etc/postfix/aliases /etc/postfix/main.cf /etc/postfix/master.cf /etc/profile.d/lang.sh /etc/rc1.d/S00single /etc/rc1.d/S[0-9][0-9]* /etc/rc.config /etc/rc.d/init.d/functions /etc/redhat-release /etc/rhgb/temp/rhgb-console /etc/samba/smb.conf /etc/ssh/sshd_config /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_key /etc/ssh/ssh_host_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_random_seed /etc/sysconfig/clock /etc/sysconfig/firsttime /etc/sysconfig/firsttime/RUN_FIRSTTIME /etc/sysconfig/foo, /etc/sysconfig/gpm /etc/sysconfig/i18n /etc/sysconfig/init /etc/sysconfig/iptables /etc/sysconfig/$IPTABLES /etc/sysconfig/iptables-config /etc/sysconfig/${IPTABLES}-config /etc/sysconfig/irda /etc/sysconfig/keyboard /etc/sysconfig/keyboard. /etc/sysconfig/kudzu /etc/sysconfig/mouse /etc/sysconfig/network /etc/sysconfig/network-scripts /etc/sysconfig/network-scripts/init.ipv6-global /etc/sysconfig/ntpd /etc/sysconfig/pcmcia /etc/sysconfig/samba /etc/sysconfig/saslauthd /etc/sysconfig/sshd /etc/sysconfig/static-routes /etc/sysconfig/syslog /etc/sysconfig/ups /etc/sysconfig/xinetd /etc/sysconfig/xinit-session /etc/sysctl.conf /etc/ups/upsmon.conf /etc/whitebox-release /etc/X11/fs/config /etc/X11/xinit/session.d/$s /etc/xinetd.conf /etc/yp.conf /etc/yum.conf
うーん。runlevel 1に必要な最小のファイルを決めるには、やっぱり 試行錯誤するしかないみたいだね…。
最小のファイル群を決定するのはatimeを見れば出来ます。<br>それから、/etcの下のファイルをsymlinkにするのは経験的に厄介なことが多いので、/etc自体をsymlinkにした方が楽な気がします。
最近のツッコまれどころ