LVM快照恢复是直接回滚逻辑卷至创建时刻的一致状态,非文件级复制;需先用lvs确认快照存在及COW使用率,再依场景选择merge合并或只读挂载提取数据。

只要快照还存在且未被破坏,LVM 快照恢复受损数据是直接、高效的方式——它不是复制文件,而是回滚整个逻辑卷到创建快照时的一致状态。
确认快照可用并检查状态
先用 lvs 查看快照是否在列表中(类型为 snap),并确认其 Origin(源 LV)和 COW(写入占用)比例:
- 若 COW 使用率接近 100%,说明快照空间快耗尽,恢复前需确保有足够空间或优先操作
- 若快照显示 inactive,用 lvchange -ay <vg>/<snapshot_name> 激活它
- 运行 lvdisplay <vg>/<snapshot_name> 核对创建时间、源卷路径是否匹配预期
方法一:覆盖式恢复(推荐用于误删/误改文件)
适用于源 LV 仍可挂载、但部分数据出错,且你愿意用快照内容完全覆盖当前状态:
- 卸载源逻辑卷:umount /dev/mapper/<vg>-<lv_name>
- 执行合并(merge):lvconvert --merge <vg>/<snapshot_name>
- 注意:该命令要求源 LV 处于非激活状态;执行后快照自动删除,LV 内容回退至快照时刻
- 重新挂载:mount /dev/mapper/<vg>-<lv_name> /mnt
方法二:只读挂载快照提取数据
适用于只想找回个别文件、不希望影响当前运行状态:
- 先激活快照:lvchange -ay <vg>/<snapshot_name>
- 创建挂载点并只读挂载:mkdir /mnt/snap-restore && mount -o ro /dev/mapper/<vg>-<snapshot_name> /mnt/snap-restore
- 进入目录,用 cp 或 rsync 复制所需文件到安全位置
- 完成后卸载:umount /mnt/snap-restore
注意事项与常见限制
LVM 快照不是万能备份:
- 快照必须在创建后未被损坏、未因 COW 空间耗尽而自动失效(lvs 中状态变为 Invalid 即不可用)
- 不能跨主机恢复:快照依赖于原 VG 和 PV 的元数据结构,无法直接迁移到另一台机器使用
- 不保护元数据本身:如果 LV 的 superblock 或 LVM 元数据损坏,快照也无济于事——此时需转向 vgcfgrestore 或物理层恢复
- 合并操作只能对非激活的源 LV 执行;若源 LV 正在被根文件系统使用,需从 Live CD 启动后操作


















