注意:绑定挂载文件系统是有顺序的,sudo mount --bind source_dir target_dir将source_dir绑定挂载到target_dir,target_dir目录节点的inode将暂时指向source_dir的目录节点,直到sudo umount target_dir,target_dir才会还原成指向其原来的目录节点。
挂载文件系统时,挂载点所在父目录的data block中"挂载点目录名"关联的inode暂时替换为新的inode,该新的inode将指向挂载的文件系统"根目录"的data block,从而实现文件系统间的连接;umount时,挂载点所在父目录的data block中"挂载点目录名"关联的inode将还原为挂载之前的inode;
"绑定挂载"一个目录到另一个目录(可以不为空),也是同样的道理,绑定挂载点所在父目录的data block中"挂载点目录名"关联的inode暂时替换为被挂载目录的inode,但ls -lai显示绑定挂载目录时,显示的绑定挂载目录./temp0/temp1_bind的上层目录仍是./temp0,而不是被绑定目录./temp1的上层目录./,即不是完全按照目录的inode记录的data block中../来输出。
举例:绑定挂载./temp1目录到./temp0/temp1_bind目录。
先查看绑定之前./temp0/temp1_bind的内容:
绑定./temp1到./temp0/temp1_bind目录:
sudo mount --bind ./temp1 ./temp0/temp1_bind
查看上下文节点,以及绑定后./temp0/temp1_bind内容:
ls -lai绑定挂载目录时,显示的绑定挂载目录./temp0/temp1_bind的上层目录仍是./temp0,而不是被绑定目录./temp1的上层目录./,即不是完全按照目录的inode记录的data block中../来输出,./temp1目录的inode的data block中../肯定是指向./的。
sudo umount ./temp0/temp1_bind
解绑之后./temp0/temp1_bind的内容:
此时./temp0/temp1_bind目录名的inode又还原成绑定挂载前的inode了。