可直接用vgcfgbackup和vgcfgrestore恢复误删卷组,前提是物理卷未被覆盖且uuid可识别;需先通过pvscan、pvdisplay确认pv状态,再比对备份文件uuid,选择删除前的历史备份,经--test验证后执行恢复,最后激活vg并只读验证lv内容。

直接用 vgcfgbackup 和 vgcfgrestore 恢复被误删的卷组,前提是物理卷(PV)没被覆盖或擦除——只要底层设备还在、UUID可识别,就能精准还原元数据结构。
确认物理卷是否完好
这是恢复的前提。运行:
-
pvscan—— 看目标 PV(如/dev/sdb2)是否被识别出来 -
pvdisplay --uuid /dev/sdb2—— 记下它的 UUID - 对比备份文件中的 PV UUID:
grep -A5 "physical_volumes {" /etc/lvm/backup/vg_name
如果 UUID 匹配且 pvscan 能列出该 PV,说明设备状态正常,可以继续恢复。
找到可用的备份文件
LVM 默认会存两处备份:
-
/etc/lvm/backup/vg_name:当前最新配置,权限为 600 -
/etc/lvm/archive/vg_name_*.vg:带时间戳的历史版本,比如vg_data_00001-1748032195.vg
执行 ls -lt /etc/lvm/archive/ | grep vg_name 查看历史记录,优先选删除操作前生成的版本(描述里含 Created *before* executing 'vgremove')。
先测试再恢复
跳过测试直接恢复可能失败甚至覆盖有效状态:
- 验证备份可用性:
vgcfgrestore --test -f /etc/lvm/archive/vg_name_00001-xxx.vg vg_name - 输出
Configuration restored successfully才表示结构一致、UUID匹配 - 若报
No valid backup found或UUID mismatch,换一个 archive 文件重试
测试通过后,正式执行:vgcfgrestore -f /etc/lvm/archive/vg_name_00001-xxx.vg vg_name
激活并验证逻辑卷
元数据恢复后,卷组还处于非激活状态:
- 扫描并激活:
pvscan && vgchange -ay vg_name - 检查结果:
vgs和lvs应重新列出 VG 和 LV - 挂载前建议只读验证(尤其 XFS):
mount -o ro /dev/vg_name/lv_name /mnt/test - 进目录确认关键文件存在、内容正常,再以读写方式挂载











