通过 KVM 虚拟化安装 Windows 2012 R2

通过 KVM 虚拟化安装 Windows 2012 R2

我正在尝试通过 Linux KVM 虚拟化安装 Windows Server 2012 R2。

安装过程停止并需要驱动程序继续。

我正在尝试使用 Fedora 中的 virtio 驱动程序,但不起作用。安装过程未显示要安装的存储设备。

我正在尝试不同的存储选项:SATA、IDE、Virtio、Virtio SCSI。

Diskpart(列出磁盘)显示了磁盘,但安装程序无法使用它。

我使用了不同版本的 virtio 驱动程序:virtio-win-0.1.105.iso、virtio-win-0.1.96.iso 和 virtio-win-0.1.101.iso,结果相同。

我的安装磁盘是:SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_Spanish_-4_MLF_X19-82897.ISO

答案1

这是我目前在安装 Windows 时使用 virtio 驱动程序进行安装的方式:

  1. 使用正版 Windows 安装 ISO 映像创建新的 VM。如果您使用盗版 Windows 或 ISO 映像下载不完整或损坏,我无法保证一切正常。

    创建新的虚拟机

  2. 选择在安装前自定义机器配置。

    安装前自定义机器配置

  3. 选择 IDE 硬盘,并将其类型更改为 VirtIO。单击“应用”。

    将 IDE 硬盘更换为 Virtio

  4. 选择 IDE CDROM,并将其类型更改为 SATA。单击“应用”。

    将 IDE CDROM 更改为 SATA

  5. 单击添加硬件,然后使用 virtio-win.iso 映像添加第二个 SATA CDROM 驱动器。

    添加带有 virtio-win.iso 的 SATA CDROM

  6. (可选)还要将虚拟 NIC 更改为 VirtIO。您将能够在安装 Windows 后安装其驱动程序,这将防止您以后出现烦人的“以太网 2”。

    单击“开始安装”并开始安装 Windows。

    当安装程序询问您在哪里安装 Windows 时,单击“加载驱动程序”。

    Windows 设置加载驱动程序

  7. 在下一页上,单击“浏览”,然后浏览到\viostor\2k12R2\amd64第二个 CD 驱动器上的文件夹virtio-win-0.1.xx

    选择 E:\viostor\2k12R2\amd64

  8. 将出现 Red Hat VirtIO SCSI 控制器。单击下一步。

    使用 Red Hat VirtIO SCSI 控制器驱动程序

  9. 现在您的虚拟磁盘已成功检测到。尽情享用吧!

    Windows 找到虚拟磁盘

安装完成后,您可以使用 virtio-win CD 安装剩余硬件的驱动程序,例如 NIC、气球驱动程序等。打开设备管理器查看哪些设备需要加载驱动程序。安装完驱动程序后,您可以从虚拟机中删除第二个虚拟 CDROM 驱动器。

最后,如果您打算对此图像进行系统准备,例如创建黄金大师,请按CtrlShiftF3此处直接进入审核模式。

Windows 首次启动时按 Ctrl-Shift-F3 进入审核模式

Windows Server 2012 R2 审核模式

(要升级视频驱动程序,请参阅我写的另一个答案)。

答案2

我遇到的主要问题是获取驱动程序。我从这里下载了https://fedoraproject.org/wiki/Windows_Virtio_Drivers并成功让 win 2012 r2 在 KVM 上运行

我上传了一个视频,展示了我使用的整个过程 https://youtu.be/9SPCa4TKues

答案3

我检测到使用 bus='virtio' 时存在问题,并从 fedora 驱动程序映像安装了 virtio 驱动程序。我们的主机规范(简短版本):

  • 主持人:Debian Jessie
  • 内核版本 4.8
  • qemu-kvm 版本 2.8

请注意,由于我们遇到的问题,我们更新了内核和 qemu-kvm 版本。但这并不是解决问题的办法!

我们的客人规格:

  • Windows Server 2012 R2
  • 110 GB 内存
  • qcow2 图片
  • SQL 服务器

现在这里是有趣的部分(我正在使用 virsh 来管理客人):这是我的旧磁盘定义的一个例子。

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2' cache='none'/>
  <source file='/kvm/pathToWhatever/MYGUEST.qcow2'/>
  <target dev='vda' bus='virtio'/>
</disk>

相当基础,这里没有什么特别的,注意 bus='virtio',这基本上是我在找到的每个教程或论坛中都建议的。

之后安装 Windows Server...到目前为止没有问题。然后我从 fedoraproject 映像安装了 virtio 驱动程序。现在我们有大量的 I/O,因为我们运行大型数据库导入/更新等。我们对一个巨大的数据库表运行了一个查询,虽然它刚刚启动,但几分钟后 Guest 就冻结了。我们已经调试了几个小时/几天,但在日志中没有发现任何东西。

我们甚至尝试使用 virtualbox 复制它,但它在那里运行得非常好。

就在今天,我发现当切换到 bus='ide' 然后再次启动 SQL 查询(导入)时,它运行得非常好 - 高 I/O 根本不是问题。

现在我怀疑 virtio 驱动程序坏了或者不兼容。我不是这方面的专家,但我们的临时解决方案是切换到 IDE。我现在正在使用 bus='scsi' 进行测试,然后在控制器类型定义中(如下所示)将 virtio-scsi 定义为模型。

<controller type='scsi' model='virtio-scsi' index='0'>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</controller>

一旦我正确测试完毕,我就会发布我的结果。

相关内容