2006年08月12日(Sat) 肩がいたいかな [長年日記]
● [DocoMomo] どこでもモモンガ再開
急にハードディスクのないX端末的ノートパソコンが必要になった。間に合うかどうかわからないけれど、Momonga 3 RCをもとに、USBドライブからの起動をどこまで行けるか試してみることにした。
まず普段通りにMomonga 3 RCを起動して、USBドライブをマウントして、grubのファイルをコピーする。USBドライブはfatでフォーマットされている。
fatなのでシンボリックリンクはつくれない。次に、USBドライブのMBRにgrubを書きこむ。
(hd0,5)にあるstage1は今起動しているMomongaのもの。
マシンを再起動して、BIOSでブートデバイスからハードディスクを除いた。USBディスクからgrubが起動して、起動オプションを下記のような感じに編集すると、ちゃんとMomongaが起動した。
何の苦労もなく、USBドライブのgrubを起動して、USBドライブからカーネルを読んで起動させることができた。(ルートファイルシステムは依然ハードディスク上にある。)grubすごい。
次はUSBドライブのルートファイルシステム(できればfatのファイルとしてイメージを持っておきたい)をカーネルに読ませてramdisk上に展開するようにするのかな。initrdの改造が必要だろう。
(追記) Linux Embedded Beginners' Guideが参考になりそう。initrdに必要なアプリケーションを全て入れちゃうという可能性もあるのだろうか?initrdが大きくなりすぎるかな。
read-writeで扱いたいのであれば、unionfs使うのが一番簡単です。メモリが少なくても動きます。ただしパフォーマンスはちょっと悪いですね。mklivecd http://livecd.berlios.de/ だと、unionfsか、symlink+copyを選べます。
ありがとうございます。usbメモリ内のfatにあるイメージファイルをループバックマウントして、中のディレクトリをunionfsでinitrd内のルートファイルシステムにくっつけていくような感じでしょうか?試してみます。<br><br>mklivecd、なんだか魅力的なのだけど、まずは自分で手を動かしてみたいのでちょっとおあずけにしておこう。
mklivecdの場合は、initrdでloop mountして、pivot_rootして、unionfsでtmpfsと重ね合わせるというやり方です。確か。ただtmpfsって、NFSでexportできないとか、いろいろ制限があって、万能とはいかないんですけど。そういう意味では、ramdiskでext2を作る方が強力なんですけど、ramdiskだと最初にサイズを決め打ちしないといけないんですよね。
最近のツッコまれどころ