2006年08月22日(Tue) 会議3ツ [長年日記]
● そういえば、「ruby に興味のある人間が集まってなにかやろう」という会はないものかな。きっとそんな人はこのまちに2人くらいしかいないだろうな。
● [DocoMomo] initrdにrun level 1までのファイルを含める
initrdでいきなり本物のinitを起動するべし ということになったので、とりあえずrun level 1まで行けるようなファ イルをinitrdに含めるようにしてみました。
たぶん、/sbinと/binにある実行ファイルは入れておきたいだろう。 で、それらからリンクされているライブラリ…lddで見てみると、 /libに30個、そして/usr/libにもなんと15個もありました。えー。
その他、各種設定ファイルや実行ファイルは、/etc/rc.sysinitや、 /etc/rc1.d/*を目で眺めて実行されそうなコマンドを抽出して、カーネ ルモジュールもUSBメモリのSquashFSをマウントできるくらいまでは含め て、initrdに下記のファイルとディレクトリを含めることにしました。
- /usrと/sbin以外にあってコピーするファイル
- /lib/kbd/keymaps/i386/qwerty/us_Ctrl_Ctrl.map.gz
- /usr/bin/clear
- 適当に編集しておくファイル
- /etc/fstab … devpts tmpfs proc sysfs だけ
- /etc/sysconfig/keyboard … caps lock不要
- /etc/sysconfig/network-scripts/ifcfg-eth0 … DHCP
- /etc/sysconfig/network … ホスト名を適当に
- まるごとごとコピーするディレクトリ
- /sbin
- /bin
- /etc
- /lib/modules/2.6.17-13m/kernel/drivers/block
- /lib/modules/2.6.17-13m/kernel/drivers/char
- /lib/modules/2.6.17-13m/kernel/drivers/input
- /lib/modules/2.6.17-13m/kernel/drivers/pci
- /lib/modules/2.6.17-13m/kernel/drivers/rtc
- /lib/modules/2.6.17-13m/kernel/drivers/scsi
- /lib/modules/2.6.17-13m/kernel/drivers/usb
- /lib/modules/2.6.17-13m/kernel/fs
- /lib/udev
- 空のディレクトリとして作っておくもの
- /var/lib/
- /var/run/
- /var/lock/subsys/
- /proc
- /sys
- /tmp
- /var/log (USBから起動してから気づいたので今回は作っていない)
そうそう、/sbin/initを/initに移動して、/sbin/initは/initへの symbolic linkにしておきました。
このようにして作ったinitrdは、ext3上のdu -sでは44MB、gzip -9で 圧縮したinitrdは18MBになりました。
USBにコピーしてrun level 1に起動。inittabにid:1:initdefault:と 書いておいても、カーネル引数で渡さないとrun level 3に行っちゃうの ですね。
ちゃんとshが起動して、各種バイナリも、viも含めて動いていました。 ハードディスク上のext3やUSBメモリ上のfatもちゃんとマウントできた。 telinit 3もできました。よしよし。
ここまででの問題は、
- /usr/bin/clearに必要なlibncurses.so.5が無かった…チェック漏れ
- root.rootが無かった…/etc/passwdと/etc/groupに書かれていなかった
ということでしょうか。また、そろそろイメージ製作の自動化も考え たくなってきます。理想的には、アプリケーションとして必要なRPMパッ ケージ、RPMパッケージの元(ネットワークから取るかDVDから取るか現用 のものを使うか)、常用ユーザー名、キーマップ、ホスト名、eth0の設定 くらいをオプションにして実行すると、USBメモリに入れるべきファイル (grub関係、initrd、kernelイメージ、常用ディレクトリのイメージ)を 作ってくれて、あとはそれをUSBにコピーしてgrubをインストールして終 わり、というくらいにしたいものです。わくわく。
あ、個人的にはhdaの電源を切る必要もあるのであった。
最近のツッコまれどころ