Openstack:使用virtio支持制作Windows 2008 R2映像

在virtio磁盘上安装kvm中的windows 2008 R2时,似乎不支持驱动程序。 即使在安装驱动程序后,我也无法将Windows安装到映像中。 这是因为Windows不会将映像看作可引导的。 那么如何制作一个支持virtio的windows server 2008 R2,并且可以添加到Glance?

编辑1:添加的图像所以这里是我的问题的一些图像。 这不是0x80300001错误,因为certificate我添加了一个图像,显示Windows ISO加载在CD-ROM中。 概观

没有磁盘存在,所以有时间安装驱动程序

选择驱动程序

安装驱动程序

在这里输入图像说明

在这里输入图像说明

编辑2:行为似乎只有在Ubuntu上经历。 Dyasny证实了它在Fedora上的工作。

我用来解决这个问题的解决scheme是:

首先,我们需要创build一个映像来安装虚拟机。 微软说10 GB是最低的,但是我用了15 GB。 请记住,这不是虚拟机的最终大小,一旦它被引入到Nova Compute中。 创build一个名为windows.virtio的原始图像:

kvm-img create -f raw windows.virtio 15G 

现在打开virt-manager并创build一个新的虚拟机:

  • 为您的机器命名
  • 使用ISO映像并select您的Windows 2008 R2映像
  • 在下拉菜单中selectwindows和windows 2008
  • 2048 MB的内存
  • 2个CPU的
  • configurationnetworking,让你有互联网

现在启动机器并安装映像,此时磁盘已经设置为IDE,但这不是一个真正的问题。

  • 安装后让它重新启动,重新启动后再次closures
  • 创build一个临时图像
  • kvm-img创build – f raw dirtyhack.virtio 1G

  • 使用virt-manager添加硬件:
    • 磁盘驱动程序
    • 存储
    • 文件磁盘映像(selectdirtyhack.virtio)
    • 将设备types设置为Virtio
    • 将您从Fedora项目获得的驱动程序安装到CDrom站
  • 网卡
  • 添加一个新的网卡到一些接口(连接到它并不重要)
  • select卡时,将pipe理程序默认值更改为virtio
  • 重新启动服务器
  • 在Windows中打开设备pipe理器
    • 按开始
    • input设备pipe理器
    • 在设备pipe理器中selectiSCSI驱动程序
    • 安装驱动程序并浏览到CDrom并进入wlh> amd64
    • 点击确定,驱动程序将被安装
    • 对网卡做同样的事情,我必须使用Windows 7文件夹中的驱动程序,因为Windows无法检测到Wnet文件夹中的驱动程序
  • closures机器
  • 在virt-manager中删除机器中的所有硬盘
  • 添加硬件,存储并添加您的原始windows.virtio,但请确保您将设备types设置为virtio
  • 启动机器
  • 恭喜你,你的机器现在有Virtio驱动。

    我也把这张贴在我的博客上

    对于任何人来到这里,你不需要执行黑客build议,只要指定virtio驱动程序作为一个光盘。

    在qemu-system-x86中,使用这些选项。

     sudo qemu-syste-x86 -m 1024 -drive file=/path/to/file/windows_2012_r2.ISO,index=2,media=cdrom \ -drive file=win2012.raw,if=virtio,index=0, -boot d -net nic,model=virtio \ -net user,hostfwd=tcp::3389-:3389 -nographic -vnc :0 \ -drive file=/path/to/file/virtio-win-0.1-81.iso,index=3,media=cdrom 

    Openstack提供了关于您在此尝试实现的文档: http ://docs.openstack.org/diablo/openstack-compute/starter/content/Creating_a_Windows_Image-d1e1594.html

    诀窍是在安装过程中提供virtio-win-xxxvfd软盘映像,以便从中获取驱动程序