介绍
每一个使用linux或类unix系统的人都会用到的命令mount,它用来挂载/卸载文件系统。这是该命令基本功能,除了基本功能该命令还有其它功能。
更多多多多多多多多多多多多多多多用法
绑定挂载(bind mount)
windows的快捷方式、linux的软硬链接,相信你已很熟悉了,下面我来说说mount的绑定挂载--bind
。
linux的软硬链接原理:
- 软连接受应用程序影响,不是所有应用程序都能通过软连接访问资源的
- 硬链接只能作用在文件上,不能为文件夹创建硬链接
bind mount:
能成功克服软硬链接的缺点,将文件或文件夹挂载到指定的挂载点上。使对挂载点的操作转移到文件或文件夹上。
1 | ls -li uts* |
uts的inode变成了,uts2的inode id,所有访问uts的io都会转移到uts2上;并且在mount中能查看到bind mount
信息。
1 | mount |
bind mount
是用挂载文件或目录信息遮盖了挂载的文件或目录,当不需要时,可以通过umount
卸载,恢复原文件或目录的信息。
挂载传播(mount propagation)
执行clone()
时,进程拷贝当前文件系统树,此后,新进程就拥有与原进程相同的文件系统树拷贝,两个文件系统树中的任何挂载操作都不会影响另一个拷贝。尽管每个进程使用单独的文件系统名称空间在理论上非常有意义,但完全隔离也会造成较大限制性。进程克隆了系统的文件系统名称空间之后,已经运行的系统守护进程无法为这个用户自动挂载 CD-ROM,因为在原文件系统名称空间中执行的挂载无法影响用户的拷贝。2006 年引入的挂载传播(mount propagation)解决了这个问题,挂载传播定义了挂载对象之间的关系。
- 共享挂载(share mount)
如果两个挂载对象具有共享关系,那么一个挂载对象中的挂载事件会传播到另一个挂载对象,反之亦然
mount --make-shared <mount-object>
mount --make-rshared <mount-object>
- 从属挂载(slave mount)
如果两个挂载对象形成从属(slave)关系,那么一个挂载对象中的挂载事件会传播到另一个挂载对象,但是反过来不行;在这种关系中,从属对象是事件的接收者
mount --make-slave <mount-object>
- 私有挂载(private mount)
既不传播也不接收挂载事件
mount --make-private <mount-object>
- 不可绑定挂载(unbindable mount)
与私有挂载相似,但是不允许执行绑定挂载
mount --make-unbindable <mount-object>