chroot を使用するときにネストされたマウントを実行する方法は?

chroot を使用するときにネストされたマウントを実行する方法は?

この質問は、私が(Xl1NntniNH7Fとして)詳細に説明した状況によって引き起こされたものであることに注意してください。http://www.linuxquestions.org/questions/linux-desktop-74/boot-failure-upon-updating-e2fsprogs-in-ubuntu-10-10-a-947328/したがって、起動失敗の根本的な原因に対処していただければ幸いです。

を実行するために、Ubuntu インストールの環境 (ホーム フォルダーが別のパーティションにある) を複製しようとしていますmake uninstall。ライブ CD を使用しています。

あるパーティションの dir を、マウントされた別のパーティションのディレクトリにマウントするにはどうすればよいでしょうか。 マウントはしましたchroot /mnt/sda2が、sda3 を /home にマウントする方法がわからず、さまざまな試みがうまくいきませんでした。 chroot に詳しくないので、私のアプローチが間違っている可能性があります。そのため、私の状況を考慮して、どうすればよいかアドバイスしていただければ幸いです。

答え1

私は chroot でよく bind マウントを行うので、chroot に特定のディレクトリがすでに bind マウントされているかどうかを確認し、そうでない場合は chroot する前にそれらを設定するスクリプトを設定する傾向があります。

たとえば、を/devとして設定し、ファイルシステムとしてマウントしました 。tmpfsmdev/dev/ptsdevpts

$ mount | grep /dev
devpts /dev/pts devpts rw 0 0
mdev /dev tmpfs rw,nosuid 0 0

次に、スクリプトで次の操作を実行します。

d=/mnt/chroot
for m in dev dev/pts ; do
    grep -sq $d/$m /proc/mounts || mount --bind /$m $d/$m
done
exec chroot $d /bin/bash

現在のSVN Busyboxトランクでは、とではなく に2/dev回マウントされているようです。/mnt/chroot/dev/mnt/chroot/dev/pts/dev/mnt/chroot/dev/dev/pts/mnt/chroot/dev/pts

関連情報