The bind mounts on Linux - remount part of the file hierarchy somewhere else
The bind mounts
Since Linux 2.4.0 it is possible to remount part of the file hierarchy somewhere else. The call is:mount --bind olddir newdir
or by using this fstab entry:
/olddir /newdir none bind
After this call the same contents are accessible in two places. One can also remount a single file (on a single file). It's also possible to use the bind mount to
create a mountpoint from a regular directory, for example:
mount --bind foo foo
The bind mount call attaches only (part of) a single filesystem, not possible submounts. The entire file hierarchy including submounts is attached a second place by
using:
mount --rbind olddir newdir
Note that the filesystem mount options will remain the same as those on the original mount point, and cannot be changed by passing the -o option along with
--bind/--rbind. The mount options can be changed by a separate remount command, for example:
mount --bind olddir newdir
mount -o remount,ro newdir
Note that the behavior of the remount operation depends on the /etc/mtab file. The first command stores the 'bind' flag in the /etc/mtab file and the second command
reads the flag from the file. If you have a system without the /etc/mtab file or if you explicitly define source and target for the remount command (then mount(8)
does not read /etc/mtab), then you have to use the bind flag (or option) for the remount command too. For example:
mount --bind olddir newdir
mount -o remount,ro,bind olddir newdir
Note that remount,ro,bind will create a read-only mountpoint (VFS entry), but the original filesystem superblock will still be writable, meaning that the olddir will
be writable, but the newdir will be read-only.
Comments
Post a Comment