/proc/mounts 是校验挂载状态的唯一权威来源,它由内核动态维护、实时准确;/etc/mtab 已失效,现代系统中仅为软链接,不可依赖;实操应直接解析 /proc/mounts 或使用 findmnt。

Linux 运维中确认挂载是否真实生效,关键不是看配置文件,而是核对内核当前认可的状态。/proc/mounts 是唯一权威来源,而 /etc/mtab 在现代系统中已基本失效,不建议依赖。
/proc/mounts 是校验挂载状态的黄金标准
它是内核动态维护的实时快照,内容由内核直接生成,不受用户态缓存或手动修改影响。执行 cat /proc/mounts 可看到每行包含:设备名、挂载点、文件系统类型、挂载选项(如 rw,relatime,errors=remount-ro)、dump 和 pass 字段。括号里的选项才是此刻真正起作用的策略。例如:
/dev/sda2 / ext4 rw,relatime,data=ordered 0 1
说明根分区可读写、启用 ordered 日志模式,且出错会自动转为只读——这些是运行时事实,不是 fstab 的“愿望”。
不要用 /etc/mtab 做判断依据
在主流发行版(如 RHEL 7+、Ubuntu 16.04+、Debian 10+)中,/etc/mtab 已被设为指向 /proc/self/mounts 的软链接。它不再独立记录挂载行为,也不保证与内核状态严格同步。若在容器或 chroot 环境中手动修改过 /etc/mtab,其内容可能完全失真。实操中,mount 命令本身也早已改用 /proc/mounts 作为数据源,而非读取 /etc/mtab。
高效比对挂载状态的实用方法
- 查某设备是否真挂上:
grep "/dev/sdb1" /proc/mounts,比mount | grep更精准,避免匹配到路径名中的相似字符串 - 提取所有挂载点并去重排序:
awk '{print $2}' /proc/mounts | sort -u,快速获得挂载路径全景 - 检查某挂载点的选项:
grep " /mnt/data " /proc/mounts(注意空格包围,防止误匹配/mnt/data2) - 验证是否只读:直接看选项字段含不含
ro;df -h完全不显示该信息,不能用于权限判断
为什么 mount 命令输出仍可用,但不如 /proc/mounts 底层可靠mount 是 /proc/mounts 的友好封装,做了格式美化和过滤(比如默认隐藏 debugfs、securityfs 等伪文件系统),适合人工阅读。但它可能略过某些特殊挂载项,且输出受 locale 或终端宽度影响。脚本中应优先用 /proc/mounts 或 findmnt,后者更结构化、支持 JSON 输出和树状展示,规避解析文本的脆弱性。
不复杂但容易忽略


















