おまぬけ活動日誌

最近のツッコまれどころ

この日誌から Google してもらう


2006年08月22日(Tue) 会議3ツ [長年日記]

仲間はずれはどれでしょう

そういえば、「ruby に興味のある人間が集まってなにかやろう」という会はないものかな。きっとそんな人はこのまちに2人くらいしかいないだろうな。

[run] 行き止まり+76+CSO 51分53秒

順調に筋力リミットで走れるようになったかな。むふふ。

[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の電源を切る必要もあるのであった。


作り手とその取り巻きだけが楽しんでる間は本物じゃない。その中身が理解できない人々の生活を変えてこそ本物だ


zunda <zunda at freeshell.org>