mount --bind
绑定挂载
mount通常是将一个设备挂载到一个目录中。也可以将一个目录挂载到另一个目录上。
$ mkdir /systemrw/usrfs/oemapp
$ mount --bind /systemrw/usrfs/oemapp /oemapp
会发现/oemapp目录原本的内容没有了,变成了空的文件夹。
进行绑定挂载后,我们将无法访问目标目录中的原始内容。
1.我们把存在磁盘上的文件叫做inode,inode里面是文件真正的内容。
2.把用来访问这个文件的那个路径,叫做一个dentry。
bind_mount是在dentry之上覆盖了一层dentry(bind_mount可以同时作用在目录和普通文件身上),也就是你通过这个dentry访问inode的时候,你再也访问不到原来的inode了,它指向了被你bind mount的对象的inode。
此时如果修改/oemapp目录下的文件,只会改变/systemrw/usrfs/oemapp目录下的内容。运来/oemapp目录下的内容不会改变。
通过mount不可以显示绑定挂载的文件,只显示那个文件所在的mount point。

可以通过cat /proc/self/mountinfo来查看binding信息。

用法:
比如/oemapp目录下的某个文件只读,可以在别的可读写目录下创建一个同名文件,然后绑定挂载。

浙公网安备 33010602011771号