最直接有效的方式是使用lvscan命令,它专用于扫描并列出系统中所有已存在的逻辑卷(lv),输出简洁明了,适合快速确认;需sudo权限执行,且依赖vg已激活。

直接用 lvscan 查所有逻辑卷最省事
想一眼看清系统里有哪些逻辑卷、是否激活、路径在哪,lvscan 是首选。它不输出冗余字段,只列关键信息,适合日常快速确认。运行后你会看到类似这样的输出:
ACTION '/dev/centos/root' [205.60 GiB] inherit ACTIVE '/dev/centos/swap' [8.00 GiB] inherit
注意两点:第一,lvscan 默认只显示已扫描到的 LV,如果某 LV 所在 VG 未激活(比如刚加了硬盘但没 vgchange -ay),它不会出现;第二,普通用户执行可能无输出,得加 sudo lvscan。
lvs 更适合脚本或批量筛选
如果你要写自动化检查、或者只想看名字和大小,lvs 的表格格式更友好。它默认输出 LV 名、VG 名、大小、属性等列,支持自定义字段:
-
lvs -o lv_name,vg_name,lv_size—— 只看这三列 -
lvs --noheadings -o lv_path—— 去掉表头,纯路径列表,方便管道给xargs -
lvs --separator ','—— 用逗号分隔,适配 CSV 解析
和 lvscan 不同,lvs 不关心 LV 是否激活,只要 VG 已知,就全列出来。但它的输出依赖 LVM 元数据缓存,极少数情况下(如元数据损坏)可能滞后。
查不到 LV?先确认 VG 是否在线
常见现象:执行 lvscan 或 lvs 后空输出,但你知道磁盘上明明有 LV。大概率是对应卷组被设为非活动状态。这时要先查 VG 状态:
-
vgs看卷组是否显示#PV #VG #LV数值,若#LV为 0 或 VG 名前带横线,说明没激活 -
vgscan强制重扫物理卷和卷组元数据 -
vgchange -ay <vg_name></vg_name>激活指定卷组(例如vgchange -ay centos)
激活后立刻重试 lvscan,基本就能看到了。别跳过这步——很多“查不到 LV”的问题其实卡在 VG 层。
需要层级关系?搭配 lsblk -f 看全貌
单看 LV 列表还不够,你想知道这个 /dev/mapper/app-data 是从哪块盘来的、属于哪个 VG、底下挂了什么文件系统?lsblk -f 一次性给出树状结构:
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 xfs 2a9e4b3c-... /boot └─sda2 LVM2_member 7d8f1a2b-... ├─centos-root xfs 5e6f7a8b-... / └─centos-swap swap 9c0d1e2f-... [SWAP]
这里你能清晰看到 sda2 → centos → root 这条链路,TYPE=lvm 和 FSTYPE 字段也帮你区分了底层设备类型和上层文件系统。注意:它不显示未格式化或未挂载的 LV,所以得和 lvscan 配合着用。
真正容易被忽略的是 VG 激活状态和权限组合——哪怕命令都对,缺了 sudo 或忘了 vgchange -ay,就等于白查。











