おまぬけ活動日誌

最近のツッコまれどころ

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


2006年08月21日(Mon) でかいスーツケースをエコノミーのレンタカーに積むのは大変 [長年日記]

アメリカのレンタカーの値段がトランクの大きさで決まってる*1理由がよくわかる。

*1 …本当かどうか知らないけど僕にはそう見える。

[DocoMomo] それぞれのルートファイルシステムにそれぞれのinit?

今夜も家に帰ってUSBブートに挑戦する。

昨日カーネルモジュールが見つからなかったのは、そもそもkernelパッケージを入れてなかったからだとわかりました。kernelって誰からもrequireされてないのな。kernelとrpmを入れるために必要なパッケージはMomonga 3の場合76個。yumを入れるほどのことはないと思ったので、依存を手で解決しましたとも。(yumは比較的初期の段階でchrootしてしまうようでインストール先でyumが動くようにしてやらないと動いてくれないみたい。rpmはインストールしてrpmdbをいじる時だけchrootするようで、動作するためにはインストール先のパッケージに依存していないように見えた。)

USBから起動したnashスクリプトのinitで、SquashFSの/lib /sbin /bin /usrをマウントしてからBusyBoxの/bin/ashを起動して、/bin/ashのコマンドラインから本来のシステムの/sbin/initを起動してみました…カーネルモジュールが無い問題は解決していたけれど、runlevelを指定しないと起動しない、/dev/initctlが無いと文句を言う…だめじゃん。別のinitが起動しているときには、run levelを変えさせるはたらきしかしてくれないようです。あ、そういえば/etcがありませんでしたが。

というわけで事態はちょっと複雑に。

  • mkinitrdがつくってくれるinitrdの中のinitでは、initrdのルートファイルシステムに依存しない(ループバックマウントしなくていい)ような本来のルートファイルシステムしか扱えない
  • initrdのルートファイルシステムをそのまま本来のルートファイルシステムにする場合、initrdのinitから本来の/sbin/initを起動したいけど、難しそう

というわけで次の手は、initrdでrun level 1まで持っていって、init.dの下のスクリプトでSquashFSをマウントすることかな。この場合、run level 1まで行くのにどのファイルをinitrdに持っていく必要があるのか判断するのが大変そうです。


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


zunda <zunda at freeshell.org>