將虛擬機器恢復到LV,找不到GRUB磁碟

將虛擬機器恢復到LV,找不到GRUB磁碟

這就是我的設定:使用libvirt 運行KVM 的ubuntu 14.04 有一個HW-Raid,它從(/dev/sda) 運行,另一個HW-RAID (/dev/sdb) 是名為「datavg」的LVM VG 的PV 「將虛擬機器安裝到未格式化的 LV 中。然後我像這樣備份虛擬機器:

  • 儲存 libvirt/virsh 配置
  • 保存lv大小
  • 使用 dd 儲存前 512 個位元組(MBR 和 GPT)
  • 建立LV的LVM快照
  • 映射分區(使用 kpartx)並掛載虛擬機器的根分區
  • 儲存該分割區的 fs 類型和 uuid
  • 使用口是心非對所有內容進行增量備份(不包括/proc)
  • 卸載和取消映射
  • 刪除快照

這是我在“回來的路上”運行的,將其恢復到 LV“vm-test-lv”中名為“test-vm”的虛擬機器:

  • 建立具有相同大小的 LV(從備份)

    lvcreate --name vm-test-lv --size 400.00G datavg

  • 將 MBR 和 GPT 加回 LV 開頭的第一個 512b

    dd if=/data/backup/test/MBR-20141126T104236Z.raw of=/dev/datavg/vm-test-lv

  • 映射 LV 分區

    kpartx -av /dev/datavg/vm-test-lv

  • 使用相同的 UUID 將其格式化在相同的 FS 中(均來自備份)

    mkfs.ext4 -U a5943cc4-6421-47a4-9613-30efd4dc44d4 /dev/mapper/datavg-vm--test--lv1

  • 掛載新格式化的分割區

    mount /dev/mapper/datavg-vm--test--lv1 /data/mnt/

  • 恢復口是心非的備份

    duplicity restore --progress --restore-time 20141126T104236Z file:///data/backup/test /data/mnt

  • 卸載它

    umount /data/mnt

  • 刪除映射

    kpartx -d /dev/mapper/datavg-vm--test--lv

  • 建立虛擬機器(在本例中使用不同的名稱和 uuid,因為原始虛擬機器仍然存在但已關閉)

    virsh create /data/backup/test/virsh-20141126T104236Z.xml

  • 嘗試啟動

這不起作用,它掛起,透過 SSH 隧道透過 VNC 查看它,它顯示「從硬碟啟動...」(螢幕截圖因為我不允許發佈內聯映像)

然後我嘗試再次映射它,並 chroot 到它中嘗試執行,grub-install但這也不起作用:

root@kvm-host:~# mkdir /data/mnt/proc
root@kvm-host:~# mount --bind /proc /data/mnt/proc
root@kvm-host:~# mount --bind /dev /data/mnt/dev 
root@kvm-host:~# mount --bind /sys /data/mnt/sys 
root@kvm-host:~# chroot /data/mnt
root@kvm-host:/# grub-install /dev/mapper/datavg-vm--test--lv
Installing for i386-pc platform.
grub-install: error: disk `lvmid/eLefkO-MKtH-kOcq-pt0b-4zzO-31xg-XIqDpY/AcNuFk-JY2r-V8x5-gNoV-UCoi-uQug-8R0ZWZ' not found.

它顯示了 VG 和 LV 的正確 UUID,但我擔心我使用錯誤......任何人都可以幫助我嗎?

相關內容