【发布时间】:2013-03-28 04:38:16
【问题描述】:
我目前正在寻找一些例子来理解 linux 中的 CLONE_NEWNS,所以我做了以下实验:
在 shell1 中:
$ mkdir mnt
$ sudo unshare -m /bin/bash
# mount /dev/sda5 mnt/
# ls mnt
lost+found
如在 shell2 中:
$ ls mnt
lost+found
我希望 shell2 中的输出应该是空的,因为 CLONE_NEWNS 将创建一个新的挂载命名空间,如文档所述。
首先,我认为孩子的命名空间挂载会传播到父母的,所以我在父母身上挂载,孩子也看到挂载!
然后,我从同一个父级创建两个独立的子命名空间,挂载在一个子级中也会影响另一个。
我很困惑。
ps。在我的第一个实验中 在 shell1 中:
# readlink /proc/$$/ns/mnt
mnt:[4026532353]
在 shell2 中:
$ readlink /proc/$$/ns/mnt
mnt:[4026531840]
显然,它们位于不同的挂载命名空间中。
【问题讨论】:
标签: linux filesystems kernel linux-namespaces