lvreduce后从损坏的LVM恢复数据?

时间:2015-08-26 09:03:04

标签: ubuntu boot data-retrieval lvm

我正在使用Ubuntu 13.04服务器。 我想减少逻辑卷,以增加另一个。 我想减少的逻辑卷的大小为100G,使用的是69G。

我尝试使用以下方法减少逻辑音量:

lvreduce -L20G /dev/mapper/root-vg

不幸的是,我可能做错了,因为重新启动后,我的系统无法正常启动。

我有一个(initramfs)提示符,并且我认为/ dev / mapper / root-vg的挂载在/ root上失败

有没有办法,至少可以恢复数据?

感谢。

1 个答案:

答案 0 :(得分:1)

在缩小LV之前,您已经忘记缩小文件系统。确保您立即尝试装入或修复文件系统,因为这可能导致文件系统损坏。如果数据很重要,我强烈建议您在尝试恢复之前进行全盘备份。

如果您有VG元数据的备份,则应使用该备份而不是以下内容进行恢复。默认情况下,只要您修改VG,LVM就会在/etc/lvm/{archive,backup}/中创建并存储备份,但我怀疑您无法访问此数据。

要恢复对文件系统的访问,您需要将LV重新扩展到其原始大小,以及确保新逻辑扩展区的分配顺序与它们的顺序相同本来。如果您有一个包含许多PV的复杂配置,那么第二个条件将难以实现。但是,如果您有一个PV很少的简单配置,并且没有重新分配或删除原始逻辑扩展区,那么以下可能工作(在实时USB环境中):

lvextend --extents +100%FREE /dev/mapper/root-vg

查看是否可以将文件系统挂载为只读:

mkdir -p /mnt/root-vg/
mount -o ro /dev/mapper/root-vg /mnt/root-vg/

如果挂载成功,那么你应该粗略检查里面的文件。如果它们看起来正确,则对文件系统进行完整性检查(例如,在ext *上为fsck,在btrfs上为btrfs scrub