(1)制作Windows镜像时使用virtio添加磁盘驱动
因为Windows操作系统本身没有提供virtio相关的驱动,因此需要额外安装virtio驱动程序。在启动Win 7虚拟机时,需要使用virtio作为磁盘和网络驱动,因此需要下载两个文件virtio-win-1.1.16.vfd和virtio-win-0.1-81.iso。其中,virtiowin-0.1-81.iso文件中包含了网卡驱动,virtio-win-1.1.16.vfd文件包含了硬盘驱动。
可以在KVM的官网“https://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers”找到virtio的下载地址。如果是ubuntu系统直接在地址“https://launchpad.net/kvm-guest-drivers-windows/+download”下找合适的版本即可。
“virtio-win-1.1.16.vfd”用于在制作Windows镜像时为系统提供硬盘驱动。“virtio-win-0.1-81.iso”用于在启动Windows系统后为系统提供网络驱动。
首先创建Win 7的镜像文件Win 7.img,命令如下:
创建一个50GB大小的镜像文件Win 7.img(qcow2格式)。其中“create”参数为使用qemu-img命令创建镜像文件,“-f”参数指定镜像文件的格式为“qcow2”(qcow2是一种硬盘的格式),镜像文件名为Win 7.img,大小为50GB。
接下来制作Win 7镜像的命令如下:
命令表示制作Win 7.img镜像文件,内存设置为1024MB,开启virtio,“-fda”参数表示以软盘方式加载“virtio-win-1.1.16.vfd”文件,该文件中包含了系统硬盘驱动,“-cdrom”表示使用“Win 7-x86.iso”系统ISO文件来制作Win 7镜像,设置默认的网络,以光盘启动系统,开启KVM虚拟化支持,使用vnc的1端口。
命令中-boot选项指定系统从什么进行引导。参数order=d表示从CD-ROM引导,order=a表示从软盘引导,order=c表示从硬盘引导(默认),而order=n表示从网络引导。
命令执行后,使用VNCViewer可以看到Win 7系统的安装界面,如图4-7所示。
图4-7 Window 7的安装界面
在图4-7中选择“下一步”,在接下来的界面中选择安装的类型为“自定义(高级)”然后在图4-8中选择Windows 7的安装位置。因为没有相应的硬盘,所以应该首先加载硬盘驱动程序,在图4-8中点击“加载驱动程序”后,出现图4-9的界面,在该界面中可以看到以软盘方式加载的“virtio-Win-1.1.16.vfd”文件中提供的硬盘驱动文件,选中第三个“Win 7\viostor.inf”后,点击“下一步”,接下来对硬盘进行分区,并安装系统即可。
图4-8 加载硬盘驱动程序
图4-9 加载virtio提供的硬盘驱动
至此系统安装完毕,接下来使用virtio为Win 7系统添加网卡驱动,这时需要重新启动虚拟机。
(2)使用virtio为Windows添加网卡驱动
重启Windows 7虚拟机,将virtio-win-0.1-81.iso挂载为客户机的光驱,再从客户机上安装所需的virtio驱动程序,命令如下:
该命令表示,使用1024M内存,Win 7.img为镜像文件,开启virtio,“-cdrom”参数表示将“virtio-win-0.1-81.iso”文件作为系统光驱,“-net nic,model=virtio-net user”表示网络设置为virtio模式,“-boot order=c”表示从硬盘引导操作系统,“--enable-kvm”表示开启kvm虚拟化支持,“-vnc:1”表示使用vnc的1端口启动Win 7虚拟机。
命令执行后,使用VNCViewer可以看到Win 7系统的启动界面,如图4-10所示,输入制作镜像时设置的密码,进入系统。
图4-10 Win 7虚拟机启动界面
进入Windows 7客户机时,会提示安装virtio的网卡驱动,如果不提示,你也可以手动安装Virtio如下:选择“我的电脑”,并单击右键,选择“管理”,在计算机管理中选择“设备管理”中的“网络适配器”,如图4-11所示,右键点击“以太网控制器”,在弹出的菜单中选择“更新驱动程序软件”,出现图4-12的界面。
图4-11 Win 7设备管理器
在图4-12中,选择“浏览计算机以查找驱动程序软件”,在图4-13中选择在使用文件“virtio-win-0.1-81.iso”挂载的光驱中进行查找,点击“确定”后,选择光驱中合适的目录“D:\Win 7\X86”,“下一步”,会弹出4-14的界面。
图4-12 Win 7中更新网络驱动程序
图4-13 Win 7中搜索网络驱动
在图4-14中,点击“安装”,即可安装上由virtio提供的Red Hat Virtio Ehternet Adapter的网络驱动,如图4-15所示。这时,设备管理器界面如图4-16所示。
图4-14 Win 7安装网卡驱动
图4-15 Win 7安装Virtio Ehternet Adapter成功(www.xing528.com)
图4-16 Win 7网络适配器安装成功
至此,Win 7虚拟机网卡驱动安装成功,系统能正常上网,如图4-17所示。
图4-17 Win 7虚拟机网络正常
(3)安装virtio balloon的驱动
使用以下命令启动Win 7虚拟机:
该命令中参数“-balloon virtio”表示使用virtio的ballon气球设备,参数“-device virtio-serial-pci”表示使用virtio的控制台设备。虚拟机启动后,打开设备管理器,如图4-18所示,在“其他设备”中可以看到“PCI简易通讯控制器”和“PCI设备”两个内容。“PCI设备”是内存balloon的virtio设备,“PCI简易通讯控制器”是使用virtio的控制台设备。
图4-18 Win 7虚拟机的设备管理器
在未安装驱动的“PCI简易通讯控制器”上右键,点击“更新驱动程序软件”,然后选择“浏览计算机以查找驱动程序软件”选项,在CD驱动器的Win 7目录下的X86目录中搜索设备驱动,如图4-19所示。
图4-19 安装“PCI简易通讯控制器”驱动
点击“确定”后,再点击“下一步”,在弹出的菜单中选择“安装”进行驱动程序的安装,如图4-20所示。
图4-20 Virtio-Serial Driver的驱动安装
图4-21 Virtio-Serial Driver安装成功
看到如图4-21的界面,就说明Virtio-Serial Driver的驱动安装成功,这时在设备管理器的“系统设备”下能看到Virtio-Serial Driver,如图4-22所示。
图4-22 “系统设备”下的“Virtio-Serial Driver”
以同样的方式安装“PCI设备”的驱动,安装成功后,如图4-23和图4-24所示。
图4-23 Virtio Balloon Driver安装成功
图4-24 “系统设备”下的“Virtio Balloon Driver”
(4)Windows下的virtio驱动
在以上的Win 7虚拟机中,打开使用文件“virtio-win-0.1-81.iso”挂载的CDROM光驱,可以看到文件“virtio-win-0.1-81.iso”提供的目录结构,如图4-25所示。
图4-25 Win 7虚拟机的光驱文件
其中各个文件夹对应着各个Windows版本,打开“Win 7”目录,其中两个子目录“AMD64”和“X86”分别对应着系统的64和32位的版本。打开“X86”目录,目录结构如图4-26所示。
图4-26 Win 7虚拟机下光驱的“X86”目录
在图4-26中,文件大致分为几类:BALLOON开头的文件是virtio关于内存气球相关的驱动;NETKVM开头的文件是virtio关于网络相关的驱动;VIORNG开头的文件用于virtio的环形缓冲区;VIOSCSI开头的文件用于virtio对磁盘块设备相关的SCSI设备的驱动;VIOSER开头的文件用于virtio控制台相关的驱动;VIOSTOR开头的文件是virtio磁盘块设备存储相关的驱动。
由于在制作Win 7镜像时使用了本小节中图4-9的Red Hat Virtio SCSI controller,而且在启动Win 7虚拟机时使用了qemu-system-x86的“-net nic,model=virtio-net user”参数,该参数表明虚拟机将使用virtio提供的网络驱动。因此,打开设备管理器,如图4-27所示。
在图4-27中可以看到,DVD/CD-ROM驱动器是QEMU模拟的光驱。磁盘驱动器下“Red Hat Virtio SCSI Disk Device”表示是virtio模拟的SCSI硬盘,存储控制器下“Red Hat Virtio SCSI controller”表示是virtio模拟的SCSI控制器,网络适配器下的“Red Hat Virtio Ethernet Adapter”是virtio模拟的以太网适配器。
图4-27 Win 7虚拟机的设备管理器
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。