在一个 HDD 发生故障后恢复 LVM2 卷组

在一个 HDD 发生故障后恢复 LVM2 卷组

我有两个硬盘,每个硬盘都包含一个 LVM 分区,它们组成了一个卷组。然后我有两个 LV,一个用于我的 / 目录,一个用于我的 /home/ 目录。昨天我的 / 目录失败了。我正在尝试至少恢复我的 /home/ 目录。

我目前所做的:

  1. 启动实时系统
  2. 使用 dd 从工作硬盘中提取 LVM2 元数据
  3. 将元数据复制到 /etc/lvm/backup/vg0

现在我尝试这样做:

pvcreate --restore /etc/lvm/backup/vg0 --uuid "[uuid of my working hdd]" /dev/sdb2

但我总是得到:

Couldn't find device with uuid '[uuid of broken hdd]'.
Couldn't find device with uuid '[uuid of working hdd]'.
Device /dev/sdb2 not found (or ignored by filtering).

我确认 /dev/sdb2 存在,并且我已经从 /etc/lvm/lvm.conf 中注释掉了所有过滤设置,所以我不知道是什么原因导致 pvcreate 找不到该设备。

所以:

  • 可能存在什么问题?
  • 是否有可能恢复该分区?(当我写这篇文章时,我开始认为这是不可能的 D:)

编辑:好的,看来我已经搞清楚了。我使用的是 Ubuntu 8.10 CD(是的,我知道它不再受支持),似乎这就是问题所在。当我从 Ubuntu 10.04 CD 开始时,一切都“正常”,我可以部分挂载我的 LVM 分区而没有问题。(将在 4 小时内回答这个问题。但如果有人仍然有一些提示/技巧,请分享!:)

答案1

我同意 gman 的观点——首先运行 pvscan 来检测驱动器。也许添加“-v”以获得更详细的输出。如果 pvscan 检测不到它,那么您遇到的麻烦就比我能帮到您的还要多。

如果 pvscan 找到该驱动器,那么您应该能够运行 vgscan 来找到其上的卷组。

如果可行,请尝试使用 lvscan 检测逻辑卷。然后挂载找到的逻辑卷并使用常规工具(rsync、cp、tar...)备份/复制数据。

如果任何命令失败,希望其他更了解恢复 LVM 数据的人可以帮助您。

相关内容