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


8

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

Answers:


8

答案也在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

检查findmnt手册页上的其他选项。

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

$ findmnt --version
findmnt from util-linux 2.27.1

findmnt您正在使用哪个版本?我findmnt在Ubuntu 14.04上使用,并且似乎没有“ PROPAGATION”选项。
anaken78 '16

7

或者到达伍德的回答,您可以直接问这样的内核:

# 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
[...]

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

同样,它在对等组7中(同一对等组中的装载将事件相互传播)。

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

从Linux内核版本2.6.15开始,可以使用共享安装。


-3

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

挂载--bind / source / destrination

/unix/198590/what-is-a-bind-mount

挂载绑定只是按照您自己的喜好排序文件系统视图的方式


1
这不能回答问题。该问题询问如何找到给定绑定安装(共享,从属,私有等)的模式,而不定义绑定安装是什么。
Cosmic Ossifrage

提供的链接说明了上述内容
Sum1sAdmin

1
@ Rob-d“什么都不是”是什么意思?正如Cosmic Ossifrage指出的那样,我的问题是安装类型如何,而不是绑定绑定如何使用。
anaken78 '16

它是您从其进行绑定安装的任何类型,否则请使用bindfs -r等
。– Sum1sAdmin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.