4.13. 绑定挂载和文件系统挂载顺序


当您使用 mount 命令的 bind 选项时,您必须确定使用正确的顺序挂载该文件系统。在以下示例中,必须在 /tmp 目录中执行绑定挂载前挂载 /var/log 目录:
# mount --bind /var/log /tmp
按以下方法决定文件系统挂载顺序:
  • 通常文件系统挂载顺序由 fstab 文件中文件系统出现的顺序决定。例外情况包括使用 _netdev 标签挂载的文件系统或者有自身初始化脚本的文件系统。
  • 有自身初始化脚本的文件系统在初始化进程后期挂载,即在挂载 fstab 文件中的文件系统之后挂载。
  • 使用 _netdev 标签挂载的文件系统会在该系统中启用网络时挂载。
如果您的配置需要创建绑定挂载以便挂载 GFS2 文件系统,您可以命令 fstab 文件进行如下操作:
  1. 挂载绑定挂载所需本地文件系统。
  2. 绑定挂载要挂载 GFS2 文件系统的目录。
  3. 挂载 GFS2 文件系统。
如果您的配置需要您在 GFS2 文件系统中绑定挂载本地目录或者文件系统,在 fstab 文件中列出正确的文件系统顺序也不会正确挂载文件系统,因为在 GFS2 初始化脚本运行前不会挂载该 GFS2 文件系统。在这种情况下,您应该在初始化脚本中写入命令执行绑定挂载,这样在挂载 GFS2 文件系统前就不会发生绑定挂载。
以下脚本是自定义初始化脚本示例。这个脚本在 GFS2 文件系统的两个目录中执行绑定挂载。在这个示例中,在 /mnt/gfs2a 有一个 GFS2 挂载点,可在集群启动并运行初始化脚本时执行挂载。
在这个示例脚本中 chkconfig 状态值说明:
  • 345 说明启动该脚本的运行等级
  • 29 是启动优先性,在这个示例中表示该脚本会在启动时在 GFS2 初始化脚本之后运行,后者的启动优先性为 26
  • 73 为停止优先性,在这个示例中表示该脚本会在关闭时在 GFS2 脚本之后停止,后者的停止优先性为 74
启动和停止值表示您可以通过执行 service startservice stop 命令手动执行所示动作。例如:如果该脚本名为 fredwilma,则您可以执行 service fredwilma start
应将这个脚本放到 /etc/init.d 目录并拥有与该目录中其他脚本相同的权限。您可以执行 chkconfig on 命令将该脚本链接到所示的运行等级中。例如:如果该脚本名为 fredwilma,那么您可以执行 chkconfig fredwilma on

#!/bin/bash
#
# chkconfig: 345 29 73
# description: mount/unmount my custom bind mounts onto a gfs2 subdirectory
#
#
### BEGIN INIT INFO
# Provides: 
### END INIT INFO

. /etc/init.d/functions
case "$1" in
  start)
	# In this example, fred and wilma want their home directories
	# bind-mounted over the gfs2 directory /mnt/gfs2a, which has
	# been mounted as /mnt/gfs2a
	mkdir -p /mnt/gfs2a/home/fred &> /dev/null
	mkdir -p /mnt/gfs2a/home/wilma &> /dev/null
	/bin/mount --bind /mnt/gfs2a/home/fred /home/fred
	/bin/mount --bind /mnt/gfs2a/home/wilma /home/wilma
        ;;

  stop)
	/bin/umount /mnt/gfs2a/home/fred
	/bin/umount /mnt/gfs2a/home/wilma
        ;;

  status)
        ;;

  restart)
        $0 stop
        $0 start
        ;;

  reload)
        $0 start
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|reload|status}"
        exit 1
esac

exit 0
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.