如何使用 rbind 和 rslave 卸载挂载点?

如何使用 rbind 和 rslave 卸载挂载点?

尝试通过以下方式使用 chroot 系统

mount -B stage3 gentoo
mount -t sysfs none gentoo/sys
mount -t proc none gentoo/proc
mount -R /dev gentoo/dev
mount --make-rslave gentoo/dev
unshare --fork chroot gentoo
umount -R gentoo

最后一次umount后,dev、dev/pts、dev/shm、dev/mqueue、dev/hugepages仍然挂载在stage3下。

我有两个问题,

  1. 为什么他们被安装到stage3?
  2. 我怎样才能卸载它们?每个挂载点都很忙。

操作系统:Ubuntu Xenial。内核:4.13.4,但我在 4.10 等内核上遇到了同样的问题。

答案1

  1. 为什么他们被安装到stage3

    因为您绑定安装stage3gentoo并且stage3传播标志设置为shared(使用以下命令验证这一点findmnt -o PROPAGATION stage3:)

  2. 我怎样才能卸载它们?每个挂载点都很忙。

    您刚刚chroot在已安装的树上生成了一个。如果要在chroot命令运行时卸载树,请将挂载命名空间设为私有chroot

     unshare --mount --fork chroot gentoo
    

相关内容