Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.12. 绑定挂载以及上下文关联路径名

GFS2 文件系统不提供对上下文关联路径名(CDPN)的支持,CDPN 允许您生成指向不同目的地文件或者目录的符号链接。在 GFS2 中使用 mount 命令的 bind 选项实现此功能。
mount 命令的 bind 选项允许您在不同位置重新挂载部分文件结构,且使其在初始位置仍可用。该命令的格式如下:
mount --bind olddir newdir
执行此命令后,olddir 目录中的内容在两个位置可用:olddirnewdir。您还可以使用这个选项生成在两个位置可用的独立文件。
例如:在执行以下命令后,/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 而引起误导。