对pivot_root切换根文件系统的限制

对pivot_root切换根文件系统的限制

这个问题是我提出的问题的后续问题LXC 如何设置其根挂载点

对于名为 的容器testcontainer,LXC 使用绑定挂载来挂载/var/lib/lxc/testcontainer/rootfs/usr/lib64/lxc/rootfs然后切换到该目录并使用pivot_rootas pivot_root(.,.)(来源)。

我的困惑是为什么 LXC 使用绑定挂载,以及它对pivot_root.我的问题是,如果 LXC 已经知道它rootfs需要使用 ( /var/lib/lxc/testcontainer/rootfs),那么为什么它不直接chdir到该目录并pivot_root在那里执行 a 呢?如果我尝试对此进行测试,pivot_root则不允许它抱怨:

pivot_root: failed to change root from . to . : Device or resource busy

如果我理解正确,绑定安装会在不同的点复制目录,那么为什么我们不能只pivot_root在目录中/var/lib/lxc/testcontainer/rootfs,为什么我们必须将其绑定安装在其他地方并pivot_root在那里应用?

相关内容