パスワードを忘れた? アカウント作成
660537 journal

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 からかっぱらってきてしまおうかなぁ(ょゎ
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • /bin/initがNFSに置いてあるからじゃ...
    ちゃんと終了するなら放っといても大丈夫だと思うけど。
    • by bananan_w (3061) on 2003年09月28日 21時52分 (#405072) 日記
      助言ありがとうございます。
      色々やってみたんですがやっぱりうまくいかないのです。

      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
      親コメント
      • by bananan_w (3061) on 2003年09月28日 22時23分 (#405086) 日記
        UML 用のイメージファイルからひっこ抜いた debian の最小構成イメージ
        でやるのはやめて、常用環境の /usr 抜きを最小イメージとして
        使用したらあっさりログインプロンプトが出ました。びっくりする程あっさりと。

        ということで、どうやら問題はイメージファイルがわにあったみたいで。
        ふぅ。やれやれ。
        --
        $ set -o vi
        親コメント
typodupeerror

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

読み込み中...