前缀不表,请看上一篇Linux KVM镜像制作
所需工具
- Windows ISO文件
我才不会告诉你我都是在msdn下载镜像的, 我更不会告诉你,其实你们眼中的垃圾windows8的后续一个版本windows8.1比win7还要爽~
- virtio驱动
可以在这里下载virtio驱动。在安装Windows时,需要将virtio驱动加载到安装程序中,以确保Windows可以正确地识别KVM虚拟硬件。 (这段话是AI写的,哈哈哈)
我用的版本是virtio-win-0.1.190-1
vfd是创建的时候要挂载上去,不然不识别virtio类型的硬盘(virtio类型硬盘的效率好像要高一点,不太确定)
virtio-win.iso是在windows启动之后,需要安装一些驱动以及qemu-ga。
- idss_netwrok_init [windows8及以上可用]
非必要程序,因为配合ovs,源码就不放了。
开始制作
写笔记的时候,手上没有windows-server2016的截图了,凑合看一下吧,反正也没人看,就算有人看,大概也能看得懂
-
创建一个空的qcow2镜像
# 并不会真的创建一个128G的硬盘 qemu-img create -f qcow2 winserver2016.qcow2 128G
-
创建实例
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
-
安装驱动
-
加载驱动, 在未加载驱动之前,是看不到硬盘的,无法进行正常的安装。需要加载virtio-win-0.1.190_amd64.vfd中的驱动。
, -
选择GPU、网络适配器驱动、SCSI内存驱动
-
等待驱动安装结束,就可以正常安装windows了。
-
-
安装idss_network_init,并自启 (正常安装不需要,我这是为了使用ovs)
把下载好的idss_network_init.exe设置成开机自启即可,
可以参考一下连接,需要管理员权限,启动时自动执行即可
https://blog.csdn.net/shuzfan/article/details/78118612 -
安装virtio-win驱动以及qemu_ga
-
解压virtio-win
-
打开设备管理器—>其他设备
-
右击PCI简易通讯控制器—→更新驱动程序----→找到virtio-win解压路径下的vioserial—>选择系统对应的驱动文件
-
右击PCI设备—→更新驱动程序----→找到virtio-win解压路径下的Balloon—>选择系统对应的驱动文件
-
安装guest-agent,找到virtio-win解压路径下的guest agent文件夹—>选择系统对应的驱动文件
-
终端命令行执行services.msc,找到QEMU Guest Agent Vss Provider 将这个服务设为自动
-
导出
qemu-img convert -f qcow2 -O qcow2 [现有.qcow2] [新的.qcow2]