恢复丢失的 LVM VG

恢复丢失的 LVM VG

我正在尝试恢复虚拟机上以某种方式损坏的卷组。

lv-root 以某种方式从 VG 中丢失,并且 VG 显示最初分配的空间为空闲。

在虚拟机上我们无法使用该vgcfgrestore命令。但是我们可以在主机上使用它,并且 VG 已恢复,包括所有 LV。

但是现在,当尝试启动虚拟机时,显示“未找到卷组”并且无法启动。

pvs显示驱动器然而vgs返回/run/lvm/lvmetad.socket connect failed no such file or directory

下一步该怎么做?

pvscan节目 在此处输入图片描述

关于评论: 在此处输入图片描述

在此处输入图片描述

答案1

这是问题评论中提到的 pastebin 中的虚拟机磁盘配置:

<devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/mars_ssd/myUnivativ'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <disk type='block' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
[...non-disk devices after this point...]

VM 配置中的信息表明 VM 磁盘/dev/sda实际上位于/dev/mars_ssd/myUnivativ主机上,即 VG mars_ssd、 LV myUnivativ。 (是的,我知道 VM 配置说的hdasda- 它显然假定 VM 将使用旧的 IDE 驱动程序。)

如果mars_ssd主机的 VG 有任何问题,您应该首先在主机级别修复它们。

由于/dev/mars_ssd/myUnivativLV 包含 VM 磁盘映像,因此它具有自己的分区表和 LVM 层。

由于虚拟机的根文件系统似乎位于损坏的 VG 内,因此在虚拟机内修复它会很困难。如果您可以使用主机上可用的所有工具,修复它会更容易。

所以:

“磁盘欺骗”

  • 关闭虚拟机。
  • sudo losetup -f在主机上运行以识别主机的第一个空闲/dev/loop*设备。我将其称为/dev/loopN
  • 用于sudo losetup /dev/loopN /dev/mars_ssd/myUnivativ为虚拟机的磁盘设置循环设备。现在您可以像常规的全磁盘设备一样访问虚拟机的磁盘映像,即使它实际上是主机上的 LV。
  • 要访问虚拟机磁盘映像上的各个分区,请使用sudo kpartx -a /dev/loopN。它将为虚拟机磁盘映像上的分区创建设备,并使它们可以作为常规分区设备访问,命名为/dev/mapper/loopNpP,其中 P 是分区号。

现在,您可以在主机级别挂载虚拟机磁盘映像上的任何分区:由于虚拟机的 PV 被指示为/dev/sda5在主机上,因此磁盘映像上至少有两个分区。您可以使用 查看分区sudo fdisk -l /dev/loopN,然后挂载任何感兴趣的分区,例如sudo mount /dev/mapper/loopNp1 /mnt

您甚至可以运行pvscanvgscan并在主机级别获取虚拟机的卷组 - 如果它们的名称与主机的名称不冲突。如果您找到一个可运行的 VG,您可以使用激活它,sudo vgchange -ay然后正常安装它。

如果您愿意,此时您还可以使用任何文件救援工具。

再次启动虚拟机之前,请撤消您在主机级别访问虚拟机磁盘映像所做的所有操作:

  • 从主机上卸载所有虚拟机的文件系统。
  • sudo vgchange -an <name of VM's VG>如果你已经激活了虚拟机的所有卷组,请从主机上停用它们
  • 使用以下命令删除分区设备sudo kpartx -d /dev/loopN
  • 用 断开循环设备sudo losetup -d /dev/loopN

希望对您有所帮助。请根据您的发现更新您的问题,然后我会在必要时更新我的​​答案。

相关内容