如何检查 linux 上的绑定安装是私有的还是共享的?

ana*_*n78 9 filesystems

mount 命令允许我们将绑定挂载设为共享、从属、共享+从属、私有或不可绑定,但是,对于给定的挂载点,我无法确定以绑定挂载为根的子树类型(共享、从属、私有、共享+从或不可绑定)。如何确定绑定安装是从属安装还是私有安装?

daw*_*wud 10

答案也在mount(8)手册页中:

使用 findmnt -o TARGET,PROPAGATION 查看当前的传播标志。

一个例子:

$ findmnt -o TARGET,PROPAGATION /opt
TARGET PROPAGATION
/opt   shared

$ sudo mount -o bind /opt /mnt
$ sudo mount --make-slave /opt
$ findmnt -o TARGET,PROPAGATION /opt
TARGET PROPAGATION
/opt   private,slave

$ sudo umount /mnt
$ findmnt -o TARGET,PROPAGATION /opt
TARGET PROPAGATION
/opt   private
Run Code Online (Sandbox Code Playgroud)

检查findmnt手册页以获取其他选项。

作为参考,这些示例使用:

$ findmnt --version
findmnt from util-linux 2.27.1
Run Code Online (Sandbox Code Playgroud)


Tot*_*tor 10

或者dawud的回答,您可以直接询问内核,如下所示:

# cat /proc/1/mountinfo
14 19 0:14 / /sys rw,nosuid,nodev,noexec,relatime shared:7 - sysfs sysfs rw
15 19 0:3 / /proc rw,nosuid,nodev,noexec,relatime shared:12 - proc proc rw
[...]
Run Code Online (Sandbox Code Playgroud)

您可以从第 7 个字段中看到我的/sys文件系统是共享的(就像/proc)。

此外,它在对等组 7 中(安装在同一个对等组中相互传播事件)。

中的数字/proc/1/mountinfo是进程的 PID,因为进程可以位于不同的挂载命名空间并“看到”不同的结果。您可能想要使用另一个 PID,即,如果您正在使用容器。否则,1就是简单明了。

从 Linux 内核版本 2.6.15 开始可以使用共享挂载。


Sum*_*min -2

这是相同数据的 2 个视图,其中一个视图的修改会反映在另一个视图中

挂载--绑定/源/目的地

https://unix.stackexchange.com/questions/198590/what-is-a-bind-mount

挂载绑定只是根据您自己的喜好排序文件系统视图的一种方式