mount的bind选项
mount
的 bind
选项将第一个目录克隆到第二个。一个目录中的改变将会在另一个中出现 — 毕竟,它是同一磁盘上的同一个块。
使用 bind
与对同一设备进行两次挂载的区别在于:您可以挂载子目录而无需挂载整个文件系统。
绑定挂载(bind mount)允许从任何其他位置访问任何文件或目录。
范例七:将 /home 这个目录暂时挂载到 /mnt/home 底下:
[root@www ~]# mkdir /mnt/home [root@www ~]# mount --bind /home /mnt/home [root@www ~]# ls -lid /home/ /mnt/home 2 drwxr-xr-x 6 root root 4096 Sep 29 02:21 /home/ 2 drwxr-xr-x 6 root root 4096 Sep 29 02:21 /mnt/home [root@www ~]# mount -l /home on /mnt/home type none (rw,bind)
由上面的实验可知,其实两者连结到同一个 inode 。透过这个 mount --bind 的功能, 您可以将某个目录挂载到其他目录去喔!而并不是整块 filesystem 的啦!所以从此进入 /mnt/home 就是进入 /home 的意思喔!
将文件系统中的一部分绑定挂载:
mount --bind olddir newdir
这里,olddir是一个已经挂载的挂载点中的某个子目录。这样操作之后,对于这个olddir,可以从原挂载点olddir进行访问,也可以从newdir进行访问,如果卸载了原挂载点olddir,newdir仍旧可以访问原olddir的内容。此时要umount的话,那么就umount newdir.
这个功能在2.4的内核中支持,也可在fstab中添加:
/olddir /newdir none bind
这样一来,同样的内容可以在两个地方被访问。
也可remount单个的文件。
据说这只能够挂一种文件系统,即不能挂载submount.
--bind--将已挂载的文件系统挂载到目录树的另一个位置。假定/dev/sda1已挂载到/mnt/mymount,键入下面的命令:
# mount --bind -v /mnt/mymount/ /tmp/mydir/
/mnt/mymount on /tmp/mydir type none (rw,bind)
现在从两个位置都能访问同一文件系统。新挂载点和原挂载点的挂载选项相同。
将文件系统中的某个单个文件绑定挂载:
mount --bind oldfile newfile
这里,oldfile是一个已经挂载的挂载点中的某个文件。这样操作之后,对于这个oldfile,可以从挂载点的oldfile进行访问,也可以从newfile进行访问,如果卸载了oldfile的挂载点,newfile仍旧可以访问原来oldfile的内容,想要恢复newfile原来的内容,那么就umount newfile.
把整个的文件系统(包括submount)挂载到第二个地方:
mount --rbind olddir newdir
注意,文件系统上面的挂载项将会保持和原来挂载点上面的项一样,并且不能通过和--bind/--rbind一起的-o选项来改变。
*内核2.5以后的版本支持把被挂在的树挂载到另一个位置:
mount --move olddir newdir