linux共享挂载和从属挂载

2014/12/09

本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接

挂载分类:

1)共享挂载

某个目录已经是挂载点了,可以通过下述命令将该目录变成共享的挂载目录:

1
2
3
4
5
6
7
8
  <p>再通过bind选项将挂载点绑定到另一个目录,</p>
  ```bash
  <p>这样在mnt下的任何文件变化都会反应到tmp目录下,tmp目录下的任何变化也会反映到mnt目录</p>
```bash
#ls /mnt
a b c
#ls /tmp
a b c

甚至在mnt目录的某个子目录挂载新的文件系统,也会反应在tmp子目录下,在tmp某个子目录下挂载新的文件系统也会反应到mnt目录

1
2
3
4
5
#mount /dev/sd0  /tmp/a
#ls /tmp/a
t1 t2 t3
#ls /mnt/a
t1 t2 t3

2)从属挂载

从属挂载和共享挂载是类似的,只是mount和umount事件知会从主挂载传递到从属挂载,从属挂载的mount事件并不会通知到主挂载。

另外注意从属挂载是基于共享挂载的,从属挂载的主挂载肯定是一个共享挂载。Android就是利用了从属挂载这个特性,隐藏某些挂载来为不同用户挂载不同的挂载点。

1
2
3
4
5
6
7
8
9
10
# mount --make-shared /mnt
# mount --bind /mnt /tmp
# mount --make-slave /tmp
# mount /dev/sd0 /mnt/a
# ls /mnt/a
  t1 t2 t3
# mount /dev/sd1 /tmp/b
#ls /tmp/b
   s1 s2 s3   
#ls /mnt/b  

由上可知挂载点/mnt的mount事件通知到了挂载点/tmp,但是挂载点/tmp的挂载事件并未通知到/mnt

3)私有挂载

这是我们平常熟悉的挂载方式,是默认类型

4)不能绑定的挂载是不可绑定的私有挂载

假设我们一个挂载/mnt,我们将它设置为不可绑定

```bash

我们此时如果再去将它绑定给另一个目录

```bash

此时便会出错,提示:

```bash

¥打赏5毛

取消

感谢您的支持,我会继续努力的!

扫码支持
赏个5毛,支持我把

打开支付宝扫一扫,即可进行扫码打赏哦

本篇目录