直接运行 mount 命令即可列出所有已挂载设备,它默认读取 /proc/mounts,输出最全最权威;df -h 会遗漏 proc、sysfs 等伪文件系统。

怎么快速列出所有已挂载的设备
直接运行 mount 命令就能看到当前所有挂载点,输出包含设备路径、挂载目录、文件系统类型和挂载选项。它不带参数时默认读取 /proc/mounts,结果最全也最权威。
常见错误是只用 df -h,它只显示有空间统计的挂载点,像 proc、sysfs、devtmpfs 这类伪文件系统会被过滤掉,容易误以为没挂载。
- 想看简洁列表(只显示设备+挂载点):用
mount | awk '{print $1, $3}' - 只想查某个目录是否被挂载:用
findmnt /path/to/dir,比mount | grep更可靠,能处理嵌套挂载 - 需要机器可解析的格式(比如脚本里用):优先选
findmnt -J(JSON)或findmnt -n -o SOURCE,TARGET(无头纯文本)
为什么 mount 不显示新挂载的 NFS 或 CIFS 卷
不是命令失效,而是这些网络文件系统有时会延迟写入 /proc/mounts,尤其在挂载过程卡顿或服务端响应慢时。更关键的是:如果用了 systemd 管理挂载(比如 /etc/fstab 里写了 x-systemd.automount),实际挂载可能发生在首次访问目录时,mount 命令执行前根本还没触发。
- 验证是否真没挂载:直接
ls /mnt/nfs-share,如果卡住或报Stale file handle,说明挂载失败或中断 - 查 systemd 挂载状态:
systemctl list-units --type=mount | grep nfs,再用systemctl status xxx.mount看详情 - NFS 挂载后不显示?检查是否用了
noauto或nofail,这类选项会让mount -a跳过,但不会阻止手动挂载
findmnt 比 mount 多出什么能力
findmnt 是 util-linux 里的现代替代工具,底层同样读 /proc/mounts 和 /etc/fstab,但能交叉比对、递归展开、按条件过滤,解决 mount 的模糊性问题。
- 查某设备所有挂载实例:
findmnt /dev/sdb1(mount | grep sdb1可能漏掉别名或 UUID 匹配) - 确认挂载是否来自
/etc/fstab:findmnt -t ext4 --source /dev/sda2输出里带FSTYPE和SOURCE列,还标出FSTAB标记 - 过滤只显示远程挂载:
findmnt --types cifs,nfs,nfs4,mount没内置类型过滤,得靠grep,容易误匹配字符串
挂载点显示为 ? 或空白设备名是怎么回事
典型现象是 mount 输出里某行第一列是 ?,或者 findmnt 显示 SOURCE 为空。这通常意味着内核无法识别该挂载的块设备来源——常见于 bind mount、overlayfs、tmpfs、或卸载过程中残留的挂载条目。
- tmpfs 或 ramfs 挂载:正常,它们没有对应物理设备,
mount就显示tmpfs或? - bind mount:
mount --bind /a /b后,mount会显示/a为 SOURCE,但某些旧内核或容器环境会显示? - 真正要警惕的是
umount失败后残留:用lsof +D /path查是否有进程占用,或cat /proc/mounts | grep " /path "看 flag 是否含busy
/proc/mounts 是内核视角,/etc/fstab 是配置视角,systemctl 是服务管理视角。三者不一致时,别急着重试,先确认你想验证的到底是“系统现在挂了没”,还是“配置文件里写对没”,或是“服务有没有启动”。










