12

The mount command allows us to make a bind mount shared, slave, shared+slave, private or unbindable, however, I was unable to figure for a given mount point what is type of subtree rooted at the bind-mount (shared, slave, private, shared+slave or unbindable). How do I find if a bind mount is a slave or private?

anaken78
  • 221
  • 2
  • 3

3 Answers3

15

The answer is in the mount(8) manual page as well:

Use findmnt -o TARGET,PROPAGATION to see the current propagation flags.

An example:

$ 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

Check the findmnt manual page for other options.

For reference, these examples are using:

$ findmnt --version
findmnt from util-linux 2.27.1
dawud
  • 15,096
  • 3
  • 42
  • 61
  • Which version `findmnt` are you using? I am using `findmnt` on Ubuntu 14.04 and that doesn't seem to have the "PROPAGATION" option. – anaken78 Apr 09 '16 at 19:11
12

Alternatively to dawud's answer, you can directly ask the kernel like this:

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

You can see from the 7th field that my /sys filesystem is shared (just like /proc).

Also, it is in peer group 7 (mounts in the same peer group propagate events to each other).

The number in /proc/1/mountinfo is the PID of a process, because processes can be in different mount namespaces and "see" different results. You may want to use another PID, i.e. if you are working with containers. Otherwise, 1 is simple and straightforward.

Shared mounts are available since Linux kernel version 2.6.15.

Totor
  • 2,916
  • 3
  • 23
  • 31
-2

It's 2 views of the same data, modifications in one reflects in the other

mount --bind /source /destrination

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

mount binds are just of way of ordering a filesystem view to your own preference

Sum1sAdmin
  • 1,934
  • 1
  • 12
  • 20
  • 1
    This doesn't answer the question. The question asks how to find the mode of a given bind-mount (shared, slave, private, etc.) not to define what a bind mount is. – Cosmic Ossifrage Apr 08 '16 at 14:47
  • the link provided explains, it is none of the above – Sum1sAdmin Apr 08 '16 at 14:49
  • 1
    @Rob-d what do you mean by "it is none of the above" ? As Cosmic Ossifrage pointed out my question what about the type of mount, not how to use the bind mount. – anaken78 Apr 08 '16 at 16:34
  • It is whatever type you are bind mounting from, otherwise use bindfs -r etc. – Sum1sAdmin Apr 08 '16 at 16:43