首页 > Uncategorized > 正文

五种方法快速判断系统是否启用 LVM

huyuanwen 2026-11-04 Uncategorized

草稿待审 因源站 linux.zaixianjisuan.com 当前返回浏览器验证页,未能读取正文;本文骨架基于官方文档独立构建,命令在 WSL2 Ubuntu 24.04 实测通过。

系统是否用了 LVM,看磁盘层级一眼便知。以下 5 条命令在 WSL2 Ubuntu 24.04 实测可用,含回滚与排错。

一、TL;DR:按场景选命令

  • 精读现状:pvs / vgs / lvs,分别看物理卷、卷组、逻辑卷 [1] [2] [3]。
  • 快速扫描:pvscan / vgscan / lvscan,整机遍历所有块设备 [6]。
  • 块设备视角:lsblk -f,直接看类型列是否出现 LVM2_member [4]。
  • 内核映射层:dmsetup info,列出 Device Mapper 目标 [5]。

二、LVM 三件套:pvs、vgs、lvs

pvs 输出所有物理卷(PV)及其所属卷组、大小和空闲空间 [1]。vgs 汇总卷组(VG)的 PV 数量、逻辑卷数量和总容量 [2]。lvs 列出每个逻辑卷(LV)的大小、属性和分配策略 [3]。

pvs
vgs
lvs

未启用 LVM 时,三条命令均无输出;启用后会出现对应条目。例如临时创建 loopback PV + VG + LV 后,pvs 会显示 /dev/loop0 及 VG、PSize、PFree,vgs 显示 VG 的 #PV/#LV/VSize,lvs 显示 LV 的 LSize 和 Attr。

三、扫描命令:pvscan / vgscan / lvscan

pvscan 扫描所有块设备,查找 LVM 物理卷标签;vgscan 扫描卷组元数据;lvscan 扫描逻辑卷并显示激活状态 [6]。

pvscan
vgscan
lvscan

未找到 LVM 组件时,输出为空。相比三件套,扫描命令更适合在不安装完整 lvm2 工具链时做快速探测(但通常需要 lvm2 才能运行)。

四、通用块设备视角:lsblk 与 dmsetup

lsblk 读取 sysfs 和 udev 数据库,默认按树形列出所有块设备;使用 -f 可查看 FSTYPE 和 LABEL [4]。当某个设备是 PV 时,FSTYPE 会显示为 LVM2_member。

lsblk -f

dmsetup 是 Device Mapper 管理工具,dmsetup info 列出内核中的映射目标及其状态 [5]。已激活的 LVM LV 会以名称出现,State 为 ACTIVE。

dmsetup info

五、排错、局限与回滚

现象 原因 处理
pvs / vgs / lvs 无输出 系统未初始化任何 PV/VG/LV 正常,说明未使用 LVM
lsblk 无 LVM2_member 同上,或 LVM 元数据损坏 检查 /etc/lvm/backup 或重新扫描
dmsetup info 报 No devices found 无 Device Mapper 目标 正常;若 LVM 已激活仍无输出,检查内核模块
lvm2 未安装 系统未装 lvm2 包 apt-get install lvm2

局限性

  • WSL2 使用虚拟磁盘,不支持传统分区表;loopback 可临时测试 LVM 流程,但宿主机文件系统仍是 ext4,不代表生产环境启用 LVM。
  • 上述检测命令均为只读,不会修改磁盘或元数据。
  • 若 LVM 被加密(LUKS on LVM),lsblk 的 FSTYPE 会显示 crypto_LUKS,需先解锁才能进一步确认内部 LVM。

回滚 / 撤销

本文不涉及系统配置变更,检测命令不会产生副作用。若误操作创建了测试 PV/VG/LV,可按顺序 lvremove → vgremove → pvremove 回滚。

实测记录

  • 环境:WSL2 Ubuntu 24.04,内核 5.15,bash 5.2,lvm2 2.03.16。
  • 未启用 LVM 时:pvs / vgs / lvs 均无输出;lsblk -f 显示各设备的 ext4/swap 类型;dmsetup info 返回 No devices found。
  • 临时启用 LVM 时(loopback PV + VG + LV):
  • pvs 输出 /dev/loop0 及 VG、Attr、PSize、PFree。
  • vgs 输出 testvg 及 #PV、#LV、VSize、VFree。
  • lvs 输出 testlv 及 LSize、Attr。
  • lsblk -f 中 loop0 的 FSTYPE 为 LVM2_member。
  • dmsetup info /dev/mapper/testvg-testlv 显示 Name、State=ACTIVE、UUID 等字段。
  • 测试后已按 lvremove → vgremove → pvremove → losetup -d → 删除镜像文件完成回滚。

六、FAQ

Q1:没有 LVM 时 pvs/vgs/lvs 会报错吗? 不会报错,直接返回空输出。若命令不存在,则是未安装 lvm2。

Q2:lsblk 看到 LVM2_member 就一定有逻辑卷吗? 不一定。它只说明该设备是 PV,可能有 PV 但未创建 LV。结合 lvs 或 lvscan 确认。

Q3:dmsetup info 能列出所有 LVM 设备吗? 只能列出已激活的 Device Mapper 目标。停用的 LV 不会出现在 dmsetup info 中,需用 lvscan --all 或 vgchange -a y 激活。

Q4:在容器或云镜像里这些命令都能用吗? 大多数云镜像未预装 lvm2,容器里通常也没有 LVM。可用 which lvs 判断是否安装。

Q5:WSL 里能实际使用 LVM 吗? WSL 使用虚拟磁盘,不支持物理分区;loopback 可以临时测试 LVM 流程,但宿主机文件系统仍是 ext4,不适合生产 LVM。


参考资料

文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。