首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >99%的人不知道的centos7 fstab

99%的人不知道的centos7 fstab

作者头像
运维部落
发布2020-04-27 10:58:09
2.2K0
发布2020-04-27 10:58:09
举报
文章被收录于专栏:运维部落运维部落
  • 1、fstab不是唯一了?
  • 2、演示:使用`systemd`挂载
  • 3、问题小结

centos7 fstab 可能不是你想那样

问题起源是,我在研究docker时,查找overlay挂载,突然发现/etc/fstabmount命令执行结果大相径庭

1、fstab不是唯一了?

fstab

那么问题如下:

  • /etc/fstab/proc/mount内容大相径庭,但/proc/mount的内容在系统重启后,依然会被自动挂载,为什么?(大家知道/etc/fstab在永久生效,但其它项为什么也能永久生效呢?)
  • type cgroupoverlay 两种格式在 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-RootVG\x2dlv_swap.swap
.
.

除此外,systemd还提供了命令供我们查看系统挂载

  • 查看正在挂载的文件系统
[root@O2O-T-K8S-TEST4 generator]# systemctl -t mount
UNIT                                    LOAD   ACTIVE SUB     DESCRIPTION
-.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]
Description=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/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • centos7 fstab 可能不是你想那样
    • 1、fstab不是唯一了?
      • 2、演示:使用systemd挂载
        • 3、问题小结
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档