lsblk -f 和 findmnt 是厘清设备与路径对应关系的首选工具——前者以树形结构展示设备、分区、uuid及挂载点,后者精准定位任意路径的实际挂载设备与选项。

直接看挂载点,lsblk 是最直观、最省事的选择——它天然按树形结构展示设备、分区与挂载关系,一眼就能看出 /dev/sda1 挂在 /boot、/dev/mapper/vg0-lv_root 挂在 /。
用 lsblk -f 一次性看清设备、类型、UUID 和挂载点
这条命令把关键信息全打包输出,不需要拼接多个命令:
-
lsblk -f默认显示NAME、FSTYPE、UUID、MOUNTPOINT四列,未挂载的分区MOUNTPOINT为空,一目了然 - LVM 或 LUKS 加密卷会自然展开层级(比如
sda3→sda3_crypt→vg-root),不会漏掉映射关系 - 普通用户可直接运行,无需
sudo;但未格式化的分区FSTYPE和UUID为空,说明它还没被文件系统识别 - 注意
[SWAP]不是挂载点,是交换分区标识,别误当成MOUNTPOINT复制进/etc/fstab
查某个路径归属哪个设备,用 findmnt /path
当你只知道一个目录(比如 /var/log),想快速定位它背后挂在哪块设备上,findmnt 比 mount | grep 更可靠:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
-
findmnt /var/log直接输出该路径实际挂载的设备、文件系统类型和完整选项(如rw,relatime,xfs) - 它不依赖
/etc/fstab,也不受bind mount或overlayfs遮蔽影响,读的是内核实时状态/proc/self/mountinfo - 如果返回空,说明该路径不在独立挂载点上,而是根文件系统的一部分(即挂载在
/) - 避免用
df /var/log | tail -1 | awk '{print $1}'反推设备名——df输出的Filesystem列可能是 devicemapper 名称或 UUID,不等于物理设备路径
需要脚本化提取挂载点列表,优先解析 /proc/mounts
写自动化脚本时,/proc/mounts 字段位置稳定、无格式干扰,比 mount 命令更适配文本处理:
-
awk '{print $2}' /proc/mounts | sort -u提取所有唯一挂载点路径,不含标题、无缩进、无颜色控制符 - 第 2 列是挂载点,第 1 列是设备源,第 3 列是文件系统类型,顺序固定,不怕空格或特殊字符
-
grep " / " /proc/mounts查根分区最准,mount | grep " on / "在某些 shell 环境下可能匹配失败 - 注意:它包含
tmpfs、devtmpfs等伪文件系统,如需过滤,加awk '$3 !~ /^(tmpfs|devtmpfs|proc|sysfs)$/' /proc/mounts
别依赖 df -h 的 Mounted on 列反推挂载点逻辑——它只显示“挂在哪里”,不回答“从哪来”或“是否独立挂载”。真正要厘清设备与路径的对应关系,lsblk -f 和 findmnt 才是源头可信的组合。复杂点在于 LVM、LUKS、overlayfs 这类抽象层会让挂载路径和物理设备之间隔了不止一层,这时候树状视图和内核级查询就不是可选项,而是必选项。










