我正在尝试将虚拟机从 KVM 迁移到 Virtualbox (win7 64 位)。我能够使用以下命令转换磁盘映像:
VBoxManage convertfromraw -format VDI XX.img XX.vdi
qemu-img convert -f qcow2 XX.img -O vdi XX.vdi
我也尝试先转换为 raw,然后再转换为 vdi。当我将新磁盘安装到 IDE 或 SATA 控制器下的虚拟盒时,系统仍然无法启动。显示(Windows 正在加载文件...)然后重新启动。
非常感谢任何建议,我可能遗漏了一些细节。
答案1
当您移动磁盘映像时,已安装的操作系统并不知道这一点,它会尝试使用以前使用的虚拟化平台的控制器驱动程序进行启动。当 Windows 找不到当前安装的磁盘控制器的驱动程序时,就会出现 BSOD 并重新启动。
这与在不同的硬件平台之间移动 Windows 硬盘非常相似。
有两种解决方案 - 要么使用可以从 KVM 转换为 VBox 的 v2v 转换器(我不知道有什么,但如果你这样做,请分享),要么在新环境中启动虚拟机映像之前将驱动程序注入其中。最简单的方法是执行以下操作:
- 转换之前,在 KVM 中运行
mergeide.reg
(您可以在 MS 网站以及几乎所有互联网上找到它) - 将KVM下的启动盘切换为IDE,并启动虚拟机
- 如果一切正常,将图像转换
qemu-img
为 vbox 格式 - 在 VBox 中创建一个虚拟机,第一个启动盘为 IDE(不是 SATA 或 SCSI)
- 连接转换后的磁盘 - 系统应该启动
- 安装 Vbox 磁盘驱动程序(可能需要附加辅助
小磁盘才能使其生效) - 将启动盘的接口切换到所需的控制器类型,然后重新启动虚拟机
答案2
您应该能够在进行转换之前在 Windows VM 上运行 sysprep。这会告诉 Windows 在加载之前检查驱动程序,因为它们会发生变化。