bananan_wの日記: 初期ルートディレクトリがアウンマウントできないぃ 3
日記 by
bananan_w
Linux の初期ルートディレクトリ(initrd でなくてNFSだったり)が
アンマウントできないのです。NFS においてある /bin/init はこんな感じ。
#!/bin/sh
mount -t tmpfs -n none /tmpfs
cd /tmpfs
tar zxpf /debian.tar.gz
/sbin/pivot_root /tmpfs /tmpfs/mnt/nfs
cd /
exec /bin/sh -c '
umount /mnt/nfs
exec /sbin/init
' < /dev/console > /dev/console 2>&1
/mnt/nfs は device is busy でアンマウントできない。
それと、一応起動はして cron の起動スクリプトまではちゃんと走るんだけど、
login: プロンプトが表示されないです。。。
どちらとも /dev/console 回りの問題な気がしてならないなぁ。。。ぅぅ。
自分で作るのはやめて、全面的に既存の initrd からかっぱらってきてしまおうかなぁ(ょゎ
アンマウントできないのです。NFS においてある /bin/init はこんな感じ。
#!/bin/sh
mount -t tmpfs -n none /tmpfs
cd /tmpfs
tar zxpf /debian.tar.gz
/sbin/pivot_root /tmpfs /tmpfs/mnt/nfs
cd /
exec /bin/sh -c '
umount /mnt/nfs
exec /sbin/init
' < /dev/console > /dev/console 2>&1
/mnt/nfs は device is busy でアンマウントできない。
それと、一応起動はして cron の起動スクリプトまではちゃんと走るんだけど、
login: プロンプトが表示されないです。。。
どちらとも /dev/console 回りの問題な気がしてならないなぁ。。。ぅぅ。
自分で作るのはやめて、全面的に既存の initrd からかっぱらってきてしまおうかなぁ(ょゎ
うーん。 (スコア:1)
ちゃんと終了するなら放っといても大丈夫だと思うけど。
Re:うーん。 (スコア:1)
色々やってみたんですがやっぱりうまくいかないのです。
init=/bin/sh とかにして起動して
mount -t tmpfs -n none /tmpfs
tar zxpf /debian.tar.gz -C /tmpfs
/sbin/pivot_root /tmpfs /tmpfs/mnt/nfs
exec chroot . sh < dev/console > dev/console 2>&1
こういうコマンドを打ち込んでみてもやっぱりアンマウントできなかったので
もう来ねーーようゎぁぁぁぁぁぁん。な気分になったので
initrd で NFS をマウントして、debian の起動イメージをかためた
tar.gz ファイルを tmpfs に展開する方向でいじってみました。
initrd の中の linuxrc はこんな感じで
#!/bin/sh
mount -t proc -n none /proc
echo 0x0100 > /proc/sys/kernel/real-root-dev
mount -t tmpfs -n none /tmpfs
mount -t nfs -n -o nolock 192.168.1.100:/nfsroot/tmpfs_root /nfs
tar zxpf /nfs/debian.tar.gz -C /tmpfs
umount /nfs
umount /proc
/sbin/pivot_root /tmpfs /tmpfs/initrd
これで起動すると /initrd も /nfs もアンマウントできるのですが
何故か login: プロンプトが出て来ないのです。。。
うーーーー。なんでだろう。
$ set -o vi
Re:うーん。 (スコア:1)
でやるのはやめて、常用環境の /usr 抜きを最小イメージとして
使用したらあっさりログインプロンプトが出ました。びっくりする程あっさりと。
ということで、どうやら問題はイメージファイルがわにあったみたいで。
ふぅ。やれやれ。
$ set -o vi