Windows KVM镜像制作

Windows KVM镜像制作

April 192 2023-03-28

前缀不表,请看上一篇Linux KVM镜像制作

所需工具

  1. Windows ISO文件

我才不会告诉你我都是在msdn下载镜像的, 我更不会告诉你,其实你们眼中的垃圾windows8的后续一个版本windows8.1比win7还要爽~

  1. virtio驱动

可以在这里下载virtio驱动。在安装Windows时,需要将virtio驱动加载到安装程序中,以确保Windows可以正确地识别KVM虚拟硬件。 (这段话是AI写的,哈哈哈)

我用的版本是virtio-win-0.1.190-1
image-1679986353819

vfd是创建的时候要挂载上去,不然不识别virtio类型的硬盘(virtio类型硬盘的效率好像要高一点,不太确定)

virtio-win.iso是在windows启动之后,需要安装一些驱动以及qemu-ga。

  1. idss_netwrok_init [windows8及以上可用]

非必要程序,因为配合ovs,源码就不放了。

开始制作

写笔记的时候,手上没有windows-server2016的截图了,凑合看一下吧,反正也没人看,就算有人看,大概也能看得懂

  1. 创建一个空的qcow2镜像

    # 并不会真的创建一个128G的硬盘
    qemu-img create -f qcow2 winserver2016.qcow2 128G
    
  2. 创建实例

    virt-install --name winser2016 --ram 2048 --vcpus 2 
    --network network=default,model=virtio 
    --disk path=winserver2016.qcow2,format=qcow2,device=disk,bus=virtio 
    --cdrom cn_windows_server_2016_vl_x64_dvd_11636695.iso 
    --disk path=virtio-win-0.1.190_amd64.vfd,device=floppy 
    --os-type windows 
    --os-variant win2k16
    
  3. 安装驱动

    1. 加载驱动, 在未加载驱动之前,是看不到硬盘的,无法进行正常的安装。需要加载virtio-win-0.1.190_amd64.vfd中的驱动。
      image-1679986409915

    2. 选择GPU、网络适配器驱动、SCSI内存驱动
      image-1679986500687

    3. 等待驱动安装结束,就可以正常安装windows了。

  4. 安装idss_network_init,并自启 (正常安装不需要,我这是为了使用ovs)

    把下载好的idss_network_init.exe设置成开机自启即可,

    可以参考一下连接,需要管理员权限,启动时自动执行即可
    https://blog.csdn.net/shuzfan/article/details/78118612

  5. 安装virtio-win驱动以及qemu_ga

    • 解压virtio-win
      image-1679986534173

    • 打开设备管理器—>其他设备
      image-1679986548285

    • 右击PCI简易通讯控制器—→更新驱动程序----→找到virtio-win解压路径下的vioserial—>选择系统对应的驱动文件

    • 右击PCI设备—→更新驱动程序----→找到virtio-win解压路径下的Balloon—>选择系统对应的驱动文件

      image-1679986581404
      image-1679986600447

    • 安装guest-agent,找到virtio-win解压路径下的guest agent文件夹—>选择系统对应的驱动文件

      image-1679986615428

    • 终端命令行执行services.msc,找到QEMU Guest Agent  Vss Provider 将这个服务设为自动

      image-1679986632814

      image-1679986645833

导出

qemu-img convert -f qcow2 -O qcow2 [现有.qcow2] [新的.qcow2]