直接看当前生效的挂载参数,用findmnt最准;它读取/proc/self/mountinfo,字段明确、不丢信息、不怕空格和特殊字符;/proc/mounts是内核实时快照,第四列逗号分隔的选项才是真实生效值;mount仅美化输出且可能漏项;df-h完全不显示挂载选项。

直接看当前生效的挂载参数,用 findmnt 最准;/proc/mounts 是内核原始快照,适合脚本提取字段;mount 命令输出快但易漏项,df -h 根本不显示参数——别指望它判断只读或 noatime 是否生效。
查某个挂载点或设备的实时选项用 findmnt
findmnt 从 /proc/self/mountinfo 读取,字段语义明确、不怕空格和特殊字符,比 mount | grep 可靠得多。
- 查路径归属:
findmnt /data—— 返回该路径实际挂载的设备、类型、完整OPTIONS字段 - 查设备所有挂载:
findmnt /dev/sdb1—— 能识别 bind mount、subvol 等多挂载情况 - 精简输出(适合脚本):
findmnt -n -o SOURCE,TARGET,FSTYPE,OPTIONS /,-n去掉表头,-o指定字段 - 按文件系统筛选:
findmnt -t ext4,避开tmpfs、proc等伪文件系统
确认是否只读或 noatime 是否生效看 /proc/mounts
/proc/mounts 是内核维护的实时快照,第四列逗号分隔的字符串(如 rw,relatime,noatime,data=ordered)就是此刻真正起作用的参数,不是“愿望清单”。
- 快速定位根分区:
grep " / " /proc/mounts - 提取挂载点+选项:
awk '$2 == "/data" {print $4}' /proc/mounts - 过滤 ext4 并打印:
awk '$3 == "ext4" {print $2, $4}' /proc/mounts - 注意:NFS/cifs 的参数可能含空格或逗号,此时
awk切第4列容易出错,优先用findmnt
mount 命令输出能快速扫一眼,但有坑
mount 本质是美化 /proc/mounts,括号里内容确实是当前生效选项,比如 (rw,relatime,noatime),但它会过滤掉 debugfs、securityfs 等内核内部挂载项,某些 systemd-mount 或 autofs 动态挂载也可能漏掉。
- 查全部:
mount,末尾括号即为当前参数 - 查某路径:
mount | grep '/home',注意匹配完整挂载点,避免子目录误匹配(如/home/user匹配到/home) - 只读判断:
ro就是真的只读,RW或Ro不合法,大小写敏感 - 如果某挂载点没出现在
mount输出里,说明根本没挂载成功,不是“参数没生效”
为什么 /etc/fstab 和 df -h 都不能信
/etc/fstab 只是开机时的配置意图,可能被 systemd、mount -o remount 或内核策略覆盖;df -h 完全不显示挂载选项,你看到 /boot 挂在 /dev/sda1,但无法知道它是 ro 还是 rw——一旦误配成只读,touch /boot/test 直接报 Read-only file system,而 df -h 依然一切正常。
- 改完
/etc/fstab必须验证:sudo mount -a检查语法错误,否则重启可能卡在 emergency mode - 常见陷阱:
noatimee(多一个 e)、defaults,nofail中漏逗号、UUID 写错但设备名碰巧存在 - 某些发行版(如 RHEL 8+)会通过
systemd-remount-fs.service覆盖fstab设置,此时/proc/mounts是唯一真相
最常被忽略的是:改了 /etc/fstab 第四字段加了 ,noatime,但 findmnt / 仍显示 relatime,大概率是因为没执行 mount -o remount /,或者被更高优先级机制覆盖——挂载选项不会自动重挂已运行的分区。











