4.12. 绑定挂载以及上下文关联路径名
GFS2 文件系统不提供对上下文关联路径名(CDPN)的支持,CDPN 允许您生成指向不同目的地文件或者目录的符号链接。在 GFS2 中使用
mount
命令的 bind
选项实现此功能。
mount
命令的 bind
选项允许您在不同位置重新挂载部分文件结构,且使其在初始位置仍可用。该命令的格式如下:
mount --bind olddir newdir
执行此命令后,
olddir
目录中的内容在两个位置可用:olddir
和 newdir
。您还可以使用这个选项生成在两个位置可用的独立文件。
例如:在执行以下命令后,
/root/tmp
中的内容将和之前挂载的 /var/log
目录内容一致。
[root@menscryfa ~]#cd ~root
[root@menscryfa ~]#mkdir ./tmp
[root@menscryfa ~]#mount --bind /var/log /root/tmp
另外,您可以使用
/etc/fstab
文件中的条目在挂载时得到同样的结果。/etc/fstab
中的以下条目可使 /root/tmp
的内容和 /var/log
目录中的内容一致。
/var/log /root/tmp none bind 0 0
在您挂载文件系统后,您可以使用
mount
命令查看该文件系统是否被挂载了,如下示例所示:
[root@menscryfa ~]# mount | grep /tmp
/var/log on /root/tmp type none (rw,bind)
对于支持上下文关联路径名的文件系统,您可以将
/bin
目录定义为上下文关联路径名,并根据系统构架将其解析为以下路径之一:
/usr/i386-bin /usr/x86_64-bin /usr/ppc64-bin
您可以通过生成空
/bin
目录得到同样的结果。然后使用脚本或者在 /etc/fstab
文件中的条目,将每个独立构架目录使用 mount -bind
命令挂载到 /bin
目录。例如:您可以使用以下命令作为脚本中的一行:
mount --bind /usr/i386-bin /bin
另外,您还可以使用以下行作为
/etc/fstab
文件的条目:
/usr/1386-bin /bin none bind 0 0
绑定挂载可为您提供比上下文关联路径名更大的灵活性,因为您可以使用此特性根据您定义的条件挂载不同的目录(比如文件系统的
%fill
值)。上下文关联路径名对其可处理的环境有更多的限制。请注意:您将需要根据条件(比如 %fill
)编写您自己的挂载脚本。
警告
当您使用
bind
选项挂载文件系统,且起始文件系统以 rw
挂载时,新的文件系统也会被以 rw
形式挂载,即使您使用的是 ro
标签,ro
则被静默忽略了。在这种情况下,可能会在 /proc/mounts
目录中将新的文件系统标记为 ro
而引起误导。