2006年08月16日(Wed) 地上の空気は匂いがある [同日]
● [momonga] ipw2200がeth1になるようにする
Momonga 3にしてから家で無線LANがつながらなくなった。 これまでeth1にあった無線LANインターフェースが、eth0になってしまっているようだった。
/etc/modprobe.confに下記を追記したら解決できた。
alias eth0 tg3 alias eth1 ipw2200
● [DocoMomo] ループバックマウント失敗
いよいよ実用的なシステムづくりを始めよう。
まずは常用ルートを、あるディレクトリの下に作りました。
いくつかディレクトリとデバイスファイルを作るとrpmコマンドが動くようになり、 rpmコマンドでいくつかパッケージを入れるとyumが動くようになります。 とりあえず、
yum install --installroot=常用ルートの構築先 bash util-linux \ bash util-linux SysVinit kernel coreutils \ vim-minimal
が動くところまで作りました。つまりアプリケーションはvimのみ。 特にlocaleのファイルがでかいので ドキュメントと一緒に消しておいてから、 ext2のイメージファイル (docomomo.img) にまとめました。ファイルは130MBほど。
一方、initrdは
sudo /sbin/mkinitrd --preload=echi-hcd --preload=usb-storage \ --preload=scsi_mod --preload=uhci-hcd \ --preload=fat --preload=vfat \ --preload=ext2 \ --preload=loop \ イメージ カーネルバージョン
として作ってからBusyBoxのインストール先に重なるように展開して、 initの最後で/bin/ash (BusyBoxのバイナリへのsymlink) が起動するようにしました。
2つのイメージファイルをfatのUSBメモリにコピーして、 上で作ったinitrdで起動しました。ashが起動してからは手作業。 USBメモリのfatパーティションはsda1として見えています。
mknod /dev/sda1 b 8 1 mkdir /sda1 mounit /dev/sda1 /sda1 insmod /lib/loop.ko mknod /dev/loop0 b 7 0 mount -o loop /sda1/boot/docomomo.img /sysroot pivot_root /sysroot /initrd
よーっし、ずいぶん進んだ、のですが、
Device or resource busy
やはりそう来ますか。
initrdのルートファイルシステムにマウントされたファイルシステムの中の ファイルをループバックマウントしたファイルシステムには pivot_rootできないようです。
やっぱりなあ。pivot_rootの時だけ特別かと思ったんだけど、やっぱり、 initrdをumountできないといけないよなあ。 pivot_rootする時には、 常用ルートファイルシステムをループバックマウントではなく 普通にマウントできるようにしておかないといけないようです。
あたり前といえばあたり前。ならinitrdのルートを常用ルートにして、 unionfsでディレクトリを重ねあわせていく方向で作ってみることにします。
今宵はここまで。
最近のツッコまれどころ