这个问题是我提出的问题的后续问题LXC 如何设置其根挂载点。
对于名为 的容器testcontainer
,LXC 使用绑定挂载来挂载/var/lib/lxc/testcontainer/rootfs
,/usr/lib64/lxc/rootfs
然后切换到该目录并使用pivot_root
as 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
在那里应用?