KVM全称Kernel-based Virtual Machine是一个开源的Linux系统虚拟化模块。简单写个教程记录下KVM中如何安装Windows7系统,同时也给有需要的同学提供一丢丢帮助。
环境准备
可以通过如下命令查看当前kvm版本支持什么系统
$ osinfo-query os
PS: /data 存放虚拟机镜像和磁盘的目录,此目录不存在则创建(建议放在大一点的目录比如数据盘单独分区挂载到这个目录)
mkdir -p /vm 创建存储目录命令
/vm/iso 存放镜像
/vm/data 存放虚拟机磁盘
Windows 7虚拟机创建
virt-install \ --virt-type=kvm \ --name demo-win7 \ --ram 16384 \ --vcpus=8 \ --os-variant=win7 \ --cdrom=/vm/iso/windows7.iso \ --network=bridge=br0,model=virtio \ --graphics vnc,listen=0.0.0.0 --noautoconsole \ --disk path=/vm/data/demo-win7/demo-win7.qcow2,size=50,bus=virtio,format=qcow2
--os-variant=win7 这个表示可以通过# osinfo-query os获取
执行以上命令稍等片刻

创建完虚拟机后提示如下

使用VNC连接虚拟机 默认第一台VNC端口是 5900
检测系统镜像之类的加载中,稍等即可

正常安装Windows步骤,选择系统语言时区等等然后点击下一步

点击现在安装

安装程序正在启动

阅读许可条款,勾选我接受许可条款,继续点击下一步

选择自定义(高级)选项

到这一步无法看到虚拟硬盘,这是因为之前创建虚拟机时选用虚拟硬盘总线是virio模式的,Windows Server 2008 R2 系统以后默认不带有virio设备驱动,如果使用是IDE总线就可以被Windows系统识别到

在 KVM 宿主机上将之前准备的 VirtIO for Win 驱动镜像挂载给这台虚拟机。
$ virsh attach-disk demo-win7 /vm/iso/virtio-win-0.1.160.iso hda --type cdrom --mode readonly

再点击加载驱动程序

选择光驱viostor目录中的w7中的amd64文件夹,然后点击确定

经过扫描后发现硬盘驱动,并点击下一步安装

驱动安装完毕后即可看见虚拟硬盘

但此时无法安装,因为虚拟光驱中操作系统镜像已经被驱动镜像代替,需要将操作系统镜像重新挂载给虚拟机。
$ virsh attach-disk demo-win7 /vm/iso/windows7.iso hda --type cdrom --mode readonly

选中磁盘,然后点击驱动选项(高级)后点击新建分区

新建完后分区如下,选择磁盘分区2 点击下一步

开始正常安装 Windows 操作系统

等待自动重启或者点击立即重新启动

重启后系统会没有启动,这个时候需要进入KVM宿主机启动 ,启动命令如下。
$ virsh start demo-win7
系统启动中

正在准备中,等待加载完成。

等待安装完成



进入系统后,设置用户名和计算机名

设置账户密码

输入产品密钥激活,我们可以先跳过后面再选择是否激活

默认使用推荐的设置即可

设置时区和时间

完成最后的设置进入系统桌面

设置完后进入系统了

安装驱动
点击开始菜单选择计算机,右键管理

在计算机管理界面中选择设备管理器,可以看到有未识别的硬件,以太网控制器和PCI 设备

继续挂载驱动镜像,安装驱动程序,在 KVM 宿主机上将之前准备的 VirtIO for Win 驱动镜像挂载给这台虚拟机
$ virsh attach-disk demo-win7 /vm/iso/virtio-win-0.1.160.iso hda --type cdrom --mode readonly

加载完驱动镜像后,选择以太网控制器,右键选择更新驱动程序软件

选择浏览计算机以查找驱动程序软件

加载完驱动镜像盘后,在系统内部选择驱动盘的盘符然后点击下一步

它会自动搜索,搜索到的网卡驱动如下点击安装

安装完毕后可以看到网卡驱动已经安装上了

PCI 设备同样的操作安装驱动即可。
总结
这里基于KVM虚拟机安装Windows 7操作系统的操作就结束了。

