我们的 proxmox 服务器中有一个装有会计程序的 Windows VM,突然它在晚上崩溃了。
当我们连接检查出了什么问题时,我们注意到蓝屏,Windows 错误 0xc0000225,所以我们尝试了一些方法,但从未格式化驱动器。我尝试做一个列表分区,但它们丢失了。
有没有办法从虚拟机磁盘映像中恢复数据?我尝试恢复 Windows,但现在丢失了。
答案1
首先,复制一份磁盘。用于dd
此目的。
dd if=/var/lib/libvirt/images/guest1.img of=/var/lib/libvirt/images/guest1_copy.img
复制完成后,尝试将磁盘挂载到 proxmox 主机上。实际挂载之前,需要有关分区布局的信息。用于kpartx
显示分区表。(请注意,可能需要先安装 kpartx。)
kpartx -l /var/lib/libvirt/images/guest1_copy.img
然后映射分区
kpartx -a /var/lib/libvirt/images/guest1_copy.img
此后,检查映射是否有效。
ls /dev/mapper/loop*
每个分区都应可用作循环设备。如果可行,则可以使用常规 mount 命令挂载磁盘(假定存在 fs 驱动程序)。例如
mount /dev/mapper/loop0p2 /mnt -o loop,ro
假设所需分区是分区 2。
看这里了解更多信息。