原标题:99%的人不知道的centos7 fstab
1、fstab不是唯一了?
2、演示:使用`systemd`挂载
3、问题小结
centos7 fstab 可能不是你想那样
问题起源是,我在研究 docker 时,查找 overlay 挂载,突然发现 /etc/fstab 和 mount 命令执行结果 大相径庭。
1、fstab不是唯一了?
fstab
那么问题如下:
/etc/fstab 和 /proc/mount 内容大相径庭,但/proc/mount的内容在系统重启后,依然会被自动挂载,为什么?(大家知道/etc/fstab在永久生效,但其它项为什么也能永久生效呢?)
type cgroup 和 overlay 两种格式在 mount man 文档中,并不支持,为什么还能被正常挂载?
其实, 在 CentOS 7 开始,还提供了 systemd 挂载文件系统的方式。即 /etc/fstab 不再是唯一的永久挂载途径。在 CentOS 7&8 中, /etc/fstab 的内容非常少,在上图中我们也能发现。
在 CentOS 7 中,我们配置的 /etc/fstab ,系统并没有直接使用该配置, systemd 实际上把文件转换成 mount 结尾的挂载文件. systemd 在系统初始化时,读取的是这些 .mount 结尾的文件。
.mount 文件保存在 /run/systemd/generator 。
[root@O2O-T-K8S-TEST4 generator]
# ls -l /run/systemd/generator/
total 20
-rw-r--r-- 1 root root 254 Apr 14 18:55 boot.mount
-rw-r--r-- 1 root root 181 Apr 14 18:55 dev-mapper-RootVGx2dlv_swap.swap
.
.
除此外, systemd 还提供了命令供我们查看系统挂载
查看正在挂载的文件系统[root@O2O-T-K8S-TEST4 generator]
# systemctl -t mount
UNIT LOAD ACTIVE SUB DEION
-.mount loaded active mounted /
boot.mount loaded active mounted /boot
dev-hugepages.mount loaded active mounted Huge Pages File System
dev-mqueue.mount loaded active mounted POSIX Message Queue File System
.
.
systemd 挂载点位置
[root@O2O-T-K8S-TEST4 generator]
# ls /usr/lib/systemd/system/*.mount
/usr/lib/systemd/system/dev-hugepages.mount
/usr/lib/systemd/system/dev-mqueue.mount
/usr/lib/systemd/system/proc-fs-nfsd.mount
/usr/lib/systemd/system/proc-sys-fs-binfmt_misc.mount
/usr/lib/systemd/system/sys-fs-fuse-connections.mount
.
.
2、演示:使用 systemd 挂载
案例: 将 /dev/sdb1 挂载到 /tmp_dir 下
[root@rhel-8 system]# cat tmp_dir.mount
# This file is part of systemd.
[Unit]
Deion=Test Directory (/tmp_dir)
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
After=swap.target
[Mount]
What=/dev/disk/by-uuid/cea0757d-6329-4bf8-abbf-03f9c313b07f
Where=/tmp_dir
Type=ext4
Options=defaults
[Install]
WantedBy=multi-user.target
名词解释
What= 表示设备节点的绝对路径,文件或者其它待挂载的设备。`man 8 mount`查看更多
Where= 设备挂载点,需要写绝对路径。这里绝对不能是链接地址。
Type= 文件系统的类型,通常是一段字符串表示
Options= 挂载选项,用逗号分隔,支持多个选项并行。
reload daemon 使 systemd 生效
systemctl daemon-reload
3、问题小结
第1个问题, centos 7 开始, sysv 交由 systemd 维护后, /etc/fstab 已经不再是唯一挂载控制项, systemd 也可以完成该项工作,而且 systemd 读取的并不是 /etc/fstab 的内容,而是将其转换为 .mount 结尾的文件。看趋势,感觉后续有可能会彻底接管 /etc/fstab . 但 systemd 研究不多,一家独大不知道是好是坏。按 linus 的风格,可能会大力支持 systmd
第2个问题,猜测 man mount 没有更新。 centos 7 是一定支持 cgroup, overlay 类型。
参考阅读:https://www.golinuxcloud.com/mount-filesystem-without-fstab-systemd-rhel-8/
好看&转发带给我的鼓励,您可能无法想像返回搜狐,查看更多
责任编辑: