Linux怎么查看硬盘分区的挂载选项
findmnt通过读取/proc/self/mountinfo精准获取设备或挂载点的实时选项(如rw、noatime、data=ordered),比mount和/etc/fstab更可靠,避免字段错位与伪文件系统遗漏,适用于验证只读状态、日志模式等关键行为。
在Linux里,要说哪个命令能直接看到当前真实的挂载选项,那非findmnt莫属。它直接读取/proc/self/mountinfo,字段清晰,信息完整,不会因为空格或特殊字符而出错,能精准定位设备和挂载点的实时参数,比如rw、noatime、stripe=400这些。

先记住一点:findmnt读的是内核实时数据,不是静态配置,也不是美化后的缓存输出。改过/etc/fstab却没生效?findmnt一眼就能告诉你“现在到底在用啥”。
查某个设备或挂载点的实时选项,用 findmnt 加目标
别再靠 mount | grep /data 猜了——字段错位、空格截断、伪文件系统漏掉,都可能让你看错。findmnt 输出结构稳定,字段语义明确:
findmnt /dev/sdb1:查这个设备当前挂在哪、用了哪些选项(比如rw,noatime,stripe=400)findmnt /mnt/backup:查这个路径实际挂的是哪个设备、选项是否含ro或noexecfindmnt -o SOURCE,TARGET,FSTYPE,OPTIONS -t ext4:只筛 ext4 类型,避开tmpfs、proc这类干扰项
为什么不能只信 /etc/fstab 或 mount 命令
/etc/fstab 是启动时的“愿望清单”,mount 是对 /proc/mounts 的简易包装,而 /proc/mounts 才是内核维护的实时快照——但仍有风险:
mount会过滤掉debugfs、securityfs等内核内部挂载,findmnt不会systemd-mount、autofs或手动mount -o remount后,/etc/fstab内容完全不反映现状- 写了
noatime却看到relatime?大概率是没执行mount -o remount /,或者被systemd-remount-fs.service覆盖了
快速验证只读/可写、日志模式等关键行为
挂载选项决定行为,不是“看看就行”。比如 ro 一设,普通用户连 touch 都会报 Read-only file system;data=ordered 和 data=journal 影响 XFS/ext4 崩溃恢复逻辑:
- 确认是否真为只读:
findmnt -o TARGET,OPTIONS /boot | grep -q 'ro' && echo "只读" || echo "可写" - 查 ext4 日志模式:
findmnt -o OPTIONS / | grep -o 'data=[^,]*'(输出可能是data=ordered) - 检查是否禁用访问时间更新:
findmnt -o OPTIONS /home | grep -q 'noatime',而不是翻/etc/fstab
df -h 根本不显示挂载选项,别指望它判断权限
df -h 只统计空间,第四列是挂载点,但它完全不包含 ro/rw、noatime、barrier=1 这类控制行为的参数。你看到 /boot 挂在 /dev/sda1,但无法知道它是只读还是可写——直到你 touch /boot/test 报错才反应过来。
真正要排查权限问题,得三层一起看:挂载选项(findmnt)、文件系统类型(df -T /path | awk '{print $2}',vfat 不认 chmod)、目录权限(ls -ld /path)。少一层,就可能把问题归错地方。


































