おまぬけ活動日誌

最近のツッコまれどころ

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


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でディレクトリを重ねあわせていく方向で作ってみることにします。

今宵はここまで。


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


zunda <zunda at freeshell.org>