首先确定版本信息:
windows7版本:cn_windows_7_professional_x86_dvd_x15-65790
virtio-win版本:virtio-win-0.1.171这是最新的驱动,必须是当前最新版本,否则一些命令无法使用

第一部分:安装虚拟器前准备工作

终端使用命令,打开图形界面

virt-manager

如图:

在windows上运行kvm kvm上可以安装win7吗_qemu


点击左上角新建按钮,选择本地iso

在windows上运行kvm kvm上可以安装win7吗_在windows上运行kvm_02


选择自己window7所在位置

在windows上运行kvm kvm上可以安装win7吗_在windows上运行kvm_03


在windows上运行kvm kvm上可以安装win7吗_在windows上运行kvm_04


确定虚拟机配置

在windows上运行kvm kvm上可以安装win7吗_在windows上运行kvm_05


在windows上运行kvm kvm上可以安装win7吗_kVM_06


安装前要对虚拟机进行配置

在windows上运行kvm kvm上可以安装win7吗_在windows上运行kvm_07


最主要的配置项如下:

第一:

在windows上运行kvm kvm上可以安装win7吗_windwos7虚拟机镜像_08


第二:配置如图

在windows上运行kvm kvm上可以安装win7吗_镜像_09


第三:

在windows上运行kvm kvm上可以安装win7吗_windwos7虚拟机镜像_10


第四:

在windows上运行kvm kvm上可以安装win7吗_windwos7虚拟机镜像_11


第五:添加驱动virtio-win

在windows上运行kvm kvm上可以安装win7吗_windwos7虚拟机镜像_12


点击manage,选择自己驱动所在位置

在windows上运行kvm kvm上可以安装win7吗_在windows上运行kvm_13


开始安装:

在windows上运行kvm kvm上可以安装win7吗_windwos7虚拟机镜像_14


第二部分:安装windows7虚拟机

加载必要的两个驱动:从wirtio中找到对应版本的viostor以及NetKVM

在windows上运行kvm kvm上可以安装win7吗_在windows上运行kvm_15


此图标错了,应该是viostor

在windows上运行kvm kvm上可以安装win7吗_在windows上运行kvm_16


在windows上运行kvm kvm上可以安装win7吗_镜像_17


在windows上运行kvm kvm上可以安装win7吗_在windows上运行kvm_18


同样的操作,将NetKVM的驱动也加载进去,先是加载viostor中的驱动程序。

而后开始安装即可,等待windows7安装完毕。

第三部分:安装后操作

先不将虚拟机关闭,一定不能关闭
此时在终端命令行输入:

virsh edit 虚拟机名

进行编辑,选择vim的编辑方式
在devices目录下添加:

<channel type='unix'>
      <source mode='bind'/>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
 </channel>

打卡文件会发现已经存在vnc的通道了,记住端口不能冲突,将vnc的端口修改为2,
wq保存退出。

下面进入虚拟机中操作:
进入设备管理器中,图中鼠标处,应该有两栏,分别是PCI简单通信控制器,以及PCI设备,博主第一驱动更新完忘截图了。右击更新驱动程序。
针对PCI简单通信控制器,右击更新驱动程序,选择virtio-win中的vioserial一栏
在vioserial中选择对应windows7的目录,操作和下图针对PCI设备一样。

针对PCI设备如下:

在windows上运行kvm kvm上可以安装win7吗_qemu_19


浏览virtio-win-0.1.171

在windows上运行kvm kvm上可以安装win7吗_windwos7虚拟机镜像_20


在windows上运行kvm kvm上可以安装win7吗_windwos7虚拟机镜像_21


两个驱动更新完毕后,会出现下图所示:

在windows上运行kvm kvm上可以安装win7吗_kVM_22


在安装qemu-guest-agent前,配置结果如图

在windows上运行kvm kvm上可以安装win7吗_qemu_23


在windows上运行kvm kvm上可以安装win7吗_在windows上运行kvm_24


开始安装qemu-guest

在计算机中,选择DVD驱动,也就是virtio-win驱动,进入guest-agent文件下
双击qemu-ga-i386。
那么就是完成了qga的安装了。
宿主机终端输入:

virsh shutdown 虚拟机名

virsh start 虚拟机名

不要直接reboot,测试虚拟机能否命令行关闭。

等虚拟机启动后,终端检测:

virsh qemu-agent-command windows7(虚拟机名)  '{"execute":"guest-network-get-interfaces"}'

返回结果:

{"return":[{"name":"����b�","ip-addresses":[{"ip-address-type":"ipv6","ip-address":"fe80::6884:5b02:38e:10c3%11","prefix":64},{"ip-address-type":"ipv4","ip-address":"192.168.11.162","prefix":20}],"statistics":{"tx-packets":17,"tx-errs":0,"rx-bytes":19216,"rx-dropped":0,"rx-packets":26,"rx-errs":0,"tx-bytes":26024,"tx-dropped":0},"hardware-address":"52:54:00:a7:d8:71"},{"name":"Loopback Pseudo-Interface 1","ip-addresses":[{"ip-address-type":"ipv6","ip-address":"::1","prefix":128},{"ip-address-type":"ipv4","ip-address":"127.0.0.1","prefix":8}],"statistics":{"tx-packets":0,"tx-errs":0,"rx-bytes":0,"rx-dropped":0,"rx-packets":0,"rx-errs":0,"tx-bytes":0,"tx-dropped":0}},{"name":"isatap.internal.example.org","ip-addresses":[{"ip-address-type":"ipv6","ip-address":"fe80::5efe:192.168.11.162%12","prefix":128}],"statistics":{"tx-packets":0,"tx-errs":0,"rx-bytes":0,"rx-dropped":0,"rx-packets":0,"rx-errs":0,"tx-bytes":0,"tx-dropped":0},"hardware-address":"00:00:00:00:00:00"}]}

到此,配置完windows7的镜像并能通过qemu获取IP

将此镜像先克隆一份,以防下部操作的失败,(关闭虚拟机)

virt-clone -o windows7 -n windows7-bak.qcow2 -f windows7-bak.qcow2

清除镜像的缓存:超级权限下操作

virt-sysprep -d windows7

这样就有了一份干净的定制镜像了。
将windows7的文件复制到别的目录下进行转换格式

cp windows7.qcow2 /home/master/
cd /home/master/

转换格式,删除镜像中多余空间

sudo qemu-img convert -O qcow2  windows7.qcow2 windows7_template.qcow2

这样就做好了windows7的模板镜像