df -h 不显示伪文件系统(如 /proc、/sys)和无块设备挂载(如 tmpfs、bind mount),因其仅统计实际存储空间;而 mount 和 findmnt 显示所有挂载点及实时参数,更真实完整。

直接看 mount 命令输出,括号里那一串就是当前生效的挂载参数,它比 /etc/fstab 更真实,也比 df 更完整。
为什么不能只信 df -h
df -h 只显示有实际块设备空间的挂载点,像 tmpfs、proc、sysfs、cgroup 这类伪文件系统会被自动过滤掉。你执行 df -h | grep proc 什么也看不到,但 proc 确实挂载着——这会导致误判“某些目录没挂载”。
- 真正想确认“是否挂载成功”,必须用
mount或findmnt -
df的用途是查空间,不是查挂载状态 - 如果脚本里依赖挂载点存在性判断,用
df会漏掉 bind mount、overlayfs 等无设备挂载
mount 输出里括号中的参数怎么读
执行 mount 后每行末尾的 (rw,relatime,noatime,data=ordered) 就是当前内核实际应用的选项,顺序无关,逗号分隔。常见项含义:
-
rw:可读写;ro表示只读(注意:remount,ro后这里会立刻变) -
relatime:访问时间仅在 mtime/ctime 更新时才更新,折中性能与语义 -
noatime:完全禁用 atime 更新,SSD 场景常用,但某些备份工具依赖 atime -
data=ordered(ext4 特有):日志模式,保证文件数据在元数据提交前刷盘 -
user_xattr、acl:扩展属性和访问控制列表支持开关
这些参数可能来自 /etc/fstab,也可能来自手动 mount -o remount,...,以运行时为准。
用 findmnt 快速定位某挂载点的完整参数
相比 mount | grep,findmnt 能避免字符串误匹配,尤其对 UUID、子路径或嵌套挂载更可靠:
- 查某个路径归属哪次挂载:
findmnt /home—— 返回该路径实际挂载的设备和全部选项 - 查某设备所有挂载实例:
findmnt /dev/sdb1—— 即使它被 bind mount 多次也能列全 - 只输出关键字段(适合脚本解析):
findmnt -n -o SOURCE,TARGET,OPTIONS /var/log - 确认是否来自
/etc/fstab:findmnt -t ext4 --source /dev/sda2输出中带FSTAB标记的才是 fstab 配置项
挂载点显示为 ? 或空 SOURCE 是怎么回事
这是正常现象,不代表出错,说明该挂载没有对应块设备:
-
tmpfs、ramfs:内存文件系统,mount显示为tmpfs on /run type tmpfs (rw,nosuid,nodev),第一列是tmpfs而非设备名 - bind mount:
mount --bind /a /b后,mount输出第一列为?,findmnt的SOURCE列为空或显示原路径 - overlayfs、fuse 类文件系统:同样无物理设备,靠内核模块实现,挂载参数需查
/proc/mounts或对应模块文档
别试图从 ? 反推设备路径——它本来就没有。重点看 TARGET 和 OPTIONS 是否符合预期。











