如何将IDE虚拟机迁移到virtio虚拟机?

如何将IDE虚拟机迁移到virtio虚拟机?

几个月前,我在我的 KMS 主机上安装了 Windows Server 2012 来宾。 VM 使用 IDE (HDD) 原始运行。我想通过使用 virtio 来提高性能。

我执行了这些操作:

  • 关闭虚拟机
  • 编辑 XML 配置文件
  • 将磁盘标签替换为:

    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source file='/var/lib/libvirt/images/myvm.img'/>
      <target dev='vda' bus='virtio'/>
    </disk>
    
  • 保存 XML 配置文件

  • 使用 virt-manager 重新启动虚拟机
  • 我遇到了 BSOD 并且虚拟机自动重启
  • 自动修复开始,询问我的键盘语言
  • 两个选项:修复或停止电脑
  • 我尝试了这两种方法,但启动后总是出现 BSOD。

我的程序中缺少什么?

答案1

我有完全相同的问题。我在 IDE 磁盘上安装了 Windows 7,后来尝试切换到 VirtIO - 启动时出现 BSOD,尝试在恢复模式下安装驱动程序 - 不起作用。

我用一个小技巧解决了它。将启动磁盘保留为 IDE 并添加虚拟 VirtIO 磁盘。添加 CD-ROM适用于 Windows 的 VirtIO 驱动程序(链接是Win-64 CD ISO)并启动。 Windows 将正常启动,检测新硬件并自动从 CD 安装驱动程序。然后您可以关闭并将启动磁盘切换到 VirtIO 模式并删除虚拟磁盘。

答案2

target除了更改XML 文件中的行之外,唯一的另一件事是:

<target dev='hda' bus='ide'/>

<target dev='vda' bus='virtio'/>

就是删除所有<address type .../>行以便libvirt可以重新生成它们。如果 VM 是 Linux 来宾,您需要更改来宾/etc/fstab文件内的驱动器标签,将所有内容替换/dev/sdX/dev/vdX,因此您可能需要对 Windows VM 来宾执行类似的操作。

司机

您可能需要按照 KVM 项目网站上的说明来安装 Windows 所需的 VirtIO 驱动程序,Windows VirIO 驱动程序。这篇 KVM 文章中还介绍了详细信息:如何在 Windows Server 2003 上设置 Windows 来宾 VirtIO 块驱动程序

参考

答案3

在 Windows 上安装 virtio 之前(有时在 Linux 上,但很少见),您必须在 Windows 上包含 virtio 驱动程序。最好的办法是用 ide 启动,virtio windows 识别新控制器并请求驱动程序,将驱动程序关闭,只需将 hd 位置从 ide 更改为 virtio 祈祷并重新启动。对于网卡我不确定,但 Windows 可以用新的局域网名称重命名它

相关内容