使用 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。我正在使用 live cd。

如何将一个分区中的目录挂载到另一个已挂载分区上的目录中?我试过了,chroot /mnt/sda2但我不知道如何将 sda3 挂载到 /home,而且我多次尝试都没有成功。由于我不熟悉 chroot,我的方法可能不正确,所以如果您能根据我的情况建议我应该怎么做,那就太好了。

答案1

我经常使用 chroot 绑定挂载,因此我倾向于设置脚本来检查 chroot 是否已经绑定挂载了某些目录,如果没有,则在 chroot 之前设置它们。

例如,我已将/dev其设置为tmpfswithmdev/dev/pts挂载为 devpts文件系统:

$ 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 主干,它似乎在和处/dev安装两次,而不是在和处/mnt/chroot/dev/mnt/chroot/dev/pts/dev/mnt/chroot/dev/dev/pts/mnt/chroot/dev/pts

相关内容