mount的bind选项

 

mountbind 选项将第一个目录克隆到第二个。一个目录中的改变将会在另一个中出现 — 毕竟,它是同一磁盘上的同一个块。

使用 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

posted @ 2015-02-23 14:38  心哲  阅读(6689)  评论(0编辑  收藏  举报