Chapter 24. Sharing a mount on multiple mount points
As a system administrator, you can duplicate mount points to make the file systems accessible from multiple directories.
24.1. Types of shared mounts
There are multiple types of shared mounts that you can use. The difference between them is what happens when you mount another file system under one of the shared mount points. The shared mounts are implemented using the shared subtrees functionality.
The following mount types are available:
private
This type does not receive or forward any propagation events.
When you mount another file system under either the duplicate or the original mount point, it is not reflected in the other.
shared
This type creates an exact replica of a given mount point.
When a mount point is marked as a
shared
mount, any mount within the original mount point is reflected in it, and vice versa.This is the default mount type of the root file system.
slave
This type creates a limited duplicate of a given mount point.
When a mount point is marked as a
slave
mount, any mount within the original mount point is reflected in it, but no mount within aslave
mount is reflected in its original.unbindable
- This type prevents the given mount point from being duplicated whatsoever.
Additional resources
24.2. Creating a private mount point duplicate
This procedure duplicates a mount point as a private mount. File systems that you later mount under the duplicate or the original mount point are not reflected in the other.
Procedure
Create a virtual file system (VFS) node from the original mount point:
# mount --bind original-dir original-dir
Mark the original mount point as private:
# mount --make-private original-dir
Alternatively, to change the mount type for the selected mount point and all mount points under it, use the
--make-rprivate
option instead of--make-private
.Create the duplicate:
# mount --bind original-dir duplicate-dir
Example 24.1. Duplicating /media into /mnt as a private mount point
Create a VFS node from the
/media
directory:# mount --bind /media /media
Mark the
/media
directory as private:# mount --make-private /media
Create its duplicate in
/mnt
:# mount --bind /media /mnt
It is now possible to verify that
/media
and/mnt
share content but none of the mounts within/media
appear in/mnt
. For example, if the CD-ROM drive contains non-empty media and the/media/cdrom/
directory exists, use:# mount /dev/cdrom /media/cdrom # ls /media/cdrom EFI GPL isolinux LiveOS # ls /mnt/cdrom #
It is also possible to verify that file systems mounted in the
/mnt
directory are not reflected in/media
. For instance, if a non-empty USB flash drive that uses the/dev/sdc1
device is plugged in and the/mnt/flashdisk/
directory is present, use:# mount /dev/sdc1 /mnt/flashdisk # ls /media/flashdisk # ls /mnt/flashdisk en-US publican.cfg
Additional resources
-
mount(8)
man page
24.3. Creating a shared mount point duplicate
This procedure duplicates a mount point as a shared mount. File systems that you later mount under the original directory or the duplicate are always reflected in the other.
Procedure
Create a virtual file system (VFS) node from the original mount point:
# mount --bind original-dir original-dir
Mark the original mount point as shared:
# mount --make-shared original-dir
Alternatively, to change the mount type for the selected mount point and all mount points under it, use the
--make-rshared
option instead of--make-shared
.Create the duplicate:
# mount --bind original-dir duplicate-dir
Example 24.2. Duplicating /media into /mnt as a shared mount point
To make the /media
and /mnt
directories share the same content:
Create a VFS node from the
/media
directory:# mount --bind /media /media
Mark the
/media
directory as shared:# mount --make-shared /media
Create its duplicate in
/mnt
:# mount --bind /media /mnt
It is now possible to verify that a mount within
/media
also appears in/mnt
. For example, if the CD-ROM drive contains non-empty media and the/media/cdrom/
directory exists, use:# mount /dev/cdrom /media/cdrom # ls /media/cdrom EFI GPL isolinux LiveOS # ls /mnt/cdrom EFI GPL isolinux LiveOS
Similarly, it is possible to verify that any file system mounted in the
/mnt
directory is reflected in/media
. For instance, if a non-empty USB flash drive that uses the/dev/sdc1
device is plugged in and the/mnt/flashdisk/
directory is present, use:# mount /dev/sdc1 /mnt/flashdisk # ls /media/flashdisk en-US publican.cfg # ls /mnt/flashdisk en-US publican.cfg
Additional resources
-
mount(8)
man page
24.4. Creating a slave mount point duplicate
This procedure duplicates a mount point as a slave
mount type. File systems that you later mount under the original mount point are reflected in the duplicate but not the other way around.
Procedure
Create a virtual file system (VFS) node from the original mount point:
# mount --bind original-dir original-dir
Mark the original mount point as shared:
# mount --make-shared original-dir
Alternatively, to change the mount type for the selected mount point and all mount points under it, use the
--make-rshared
option instead of--make-shared
.Create the duplicate and mark it as the
slave
type:# mount --bind original-dir duplicate-dir # mount --make-slave duplicate-dir
Example 24.3. Duplicating /media into /mnt as a slave mount point
This example shows how to get the content of the /media
directory to appear in /mnt
as well, but without any mounts in the /mnt
directory to be reflected in /media
.
Create a VFS node from the
/media
directory:# mount --bind /media /media
Mark the
/media
directory as shared:# mount --make-shared /media
Create its duplicate in
/mnt
and mark it asslave
:# mount --bind /media /mnt # mount --make-slave /mnt
Verify that a mount within
/media
also appears in/mnt
. For example, if the CD-ROM drive contains non-empty media and the/media/cdrom/
directory exists, use:# mount /dev/cdrom /media/cdrom # ls /media/cdrom EFI GPL isolinux LiveOS # ls /mnt/cdrom EFI GPL isolinux LiveOS
Also verify that file systems mounted in the
/mnt
directory are not reflected in/media
. For instance, if a non-empty USB flash drive that uses the/dev/sdc1
device is plugged in and the/mnt/flashdisk/
directory is present, use:# mount /dev/sdc1 /mnt/flashdisk # ls /media/flashdisk # ls /mnt/flashdisk en-US publican.cfg
Additional resources
-
mount(8)
man page
24.5. Preventing a mount point from being duplicated
This procedure marks a mount point as unbindable so that it is not possible to duplicate it in another mount point.
Procedure
To change the type of a mount point to an unbindable mount, use:
# mount --bind mount-point mount-point # mount --make-unbindable mount-point
Alternatively, to change the mount type for the selected mount point and all mount points under it, use the
--make-runbindable
option instead of--make-unbindable
.Any subsequent attempt to make a duplicate of this mount fails with the following error:
# mount --bind mount-point duplicate-dir mount: wrong fs type, bad option, bad superblock on mount-point, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so
Example 24.4. Preventing /media from being duplicated
To prevent the
/media
directory from being shared, use:# mount --bind /media /media # mount --make-unbindable /media
Additional resources
-
mount(8)
man page