有关kvm的使用说明其实不少,但基本都是命令行,对于新手来说不够直观,而且都没有提到关于virtio驱动的安装。于是就再发一篇。
使用virtio接口的虚拟硬盘和虚拟网络的性能不是默认的那个IDE接口能比的。
从安装虚拟机到运行虚拟系统,全部只要三次使用到命令行。
基于10.04,理论上也适用于9.10。
以下,开始。
确保CPU支持并开启虚拟化:
代码:
egrep '(vmx|svm)' /proc/cpuinfo
有红字(或者其他与众不同的颜色),并且在bios里开启虚拟化。
如果没有虚拟化,放弃吧……
确保源完整,可以在设置“软件源”,把第一个选项卡的所有选项都选中(源代码不用选)。然后新立得,先要在首选项里选中“把推荐的软件包视作依赖的软件包”,然后标记并安装virt-manager、virt-viewer,新立得会自动把kvm作为依赖标记的。
这里插一句:kvm已经和qemu合并了,源里”kvm“和”qemu“都是指向“qemu-kvm”的虚包,源里的版本已经够新的了。
要给virt-manager管理员权限,否则是无法自己创建虚拟网络的:
代码:
sudo gedit /usr/bin/virt-manager
当然你可以使用任何你喜欢的文本编辑器替换掉gedit。
然后把:
代码:
exec python "/usr/share/virt-manager/virt-manager.py" "$@"
修改成:
代码:
exec gksu python "/usr/share/virt-manager/virt-manager.py" "$@"
保存,关闭。
从“应用程序”的“系统工具”里运行“虚拟系统管理器”,如果顺利的话应该能看到localhost (QEMU),右键,详情,虚拟网络。
然后就自己创建虚拟网络了。前面几页的设定可以保持默认,注意“连接到物理网络”页面里要选择“转发到物理网络”,模式用NAT。
不要选择“路由的”除非你在路由后面并知道路由的子网掩码的意义。
完成虚拟网络设置之后选中虚拟网络的“自动启动”。
还是在localhost (QEMU)上右键,新建。
步骤1里:输入要创建的虚拟机的名称,下一步。
步骤2里:使用iso镜像,这个随便选,实际上我们并没有用这里选择的镜像来安装系统。
步骤3默认就行,反正之后可以另行设置。
步骤4是重点。先选中“选择管理的或者其他现有储存”,浏览,新建卷。注意把名称里的后缀去掉(程序会自动添加一个后缀,如果不去掉就是两个后缀了……)格式建议选qcow2,当然也可以默认。最大容量就是虚拟机的C盘大小,自己看着办吧……其他默认就好了。完成之后选择你刚才创建的文件,然后
一定要去除“为虚拟机启用储存”的勾选框。
步骤5里的高级选项选择刚才自己创建的虚拟网络,完成。
然后会弹出一个虚拟机的监视窗口,把它扔在那里吧。
下载适用于WindowsXP的virtio驱动软盘镜像。
http://www.linux-kvm.com/sites/default/files/viostor-31-03-2010-floppy.img
顺便下载一个virtio驱动光盘镜像,用于安装虚拟系统的网络驱动。
http://www.famzah.net/download/kvm/virtio-windows/24.09.2009/NetKVM-and-viostor.iso
附件是这两个的打包。
附件:
文件注释: 32、64位WindowsXP、2003用virtio驱动。
virtio-driver.7z [501.54 KiB]
被下载 15 次
接下来把系统安装到刚才创建的虚拟硬盘里:
代码:
sudo kvm -boot d -cdrom [Windows安装盘镜像的完整路径和文件名] -drive file=[虚拟硬盘的完整路径和文件名],if=virtio,boot=on -fda [virtio驱动软盘镜像的完整路径和文件名] -m 600
其中虚拟硬盘默认放在 /var/lib/libvirt/images/ 文件夹里,文件名默认和虚拟机的名称是一样的。
驱动镜像是以img为后缀的那个,不要选错!
回车,F6(也就是在安装时从软盘加载额外的驱动),s,选择驱动。注意64位XP使用的是64位2003的驱动。
接下来就是安装XP了。中间会有提示是否继续安装没有徽标的驱动,点继续就可以了。
注意kvm是ctrl+alt来控制鼠标捕获的,另外
这时运行的kvm对组合键(ctrl、shift之类)的传递有问题(以后用虚拟系统管理器的时候不会有这个问题),所以设置密码的时候尽量简单一些,八个“1”之类的……
安装完毕之后直接把虚拟XP关机吧,等虚拟机的窗口关闭之后就可以把终端关掉了。
回到刚才虚拟机的监视窗口,“查看”里选择“详情”。这里是管理虚拟机的硬件设定的地方。CPU数量和内存大小还是自己看着办。
接下来是重点:
IDE CDROM 1,也就是虚拟光驱。把原来的断开掉,连接,选那个virtio驱动光盘镜像(iso后缀),应用。
删除“NIC :xx:xx:xx”,也就是默认的网络接口。是的,点“删除”,因为我们要更换虚拟网卡的接口。
最下方的“添加硬件”,顾名思义。
我们接下来要添加虚拟硬件:硬盘、网卡。
添加硬件,选择“Storage”,前进。选中“文件”,浏览,选择你刚才创建的虚拟硬盘文件。然后是
“目标”的“设备类型”,选择“Virtio Disk”,前进,完成。
添加硬件,选择“Network”,前进。
“设备型号”选择“virtio”,“主机设备”选择你刚才创建的虚拟网络,前进,完成。
“Boot Option”里选“Hard Disk”,应用。
全部设定好之后,“虚拟机”,“运行”。
接下来就是在xp里装驱动了,它应该会有个向导,选择从光盘安装驱动就可以了。
测试了32、64位的XP和2003,方法相同。没有测试其他版本的windows,不知道驱动能不能用(估计不能……)
顺便说一句,如果要虚拟linux系统的话,内核在2.6.25以上的一般都自带virtio驱动了,所以只要在新建虚拟机的步骤2选linux然后是你要安装的发行版,选择了虚拟硬盘之后也不用去掉那个勾选框直接前进就可以安装系统了,接口默认就直接是virtio的了。
由此可见win的傲娇……
于是kvm发布了用于windows的vmwarevga虚拟显卡驱动,虽然我没感觉有什么变化,但是据说在可选分辨率上有改进,所以更新一下。
首先下载驱动:
32位:
http://www.linux-kvm.com/sites/default/files/vmwarevga32-kvm.iso
64位:
http://www.linux-kvm.com/sites/default/files/vmwarevga64-kvm-2.iso
附件是这两个的打包:
附件:
文件注释: vmwarevga驱动。
vmwarevga.7z [440.67 KiB]
被下载 7 次
方法:
首先像以前那样运行虚拟windows,然后在依然是虚拟机的监视窗口,“查看”里选择“详情”,在IDE CDROM1那里连接对应版本的iso,这样虚拟系统的光驱里就会有驱动光盘,让它自动播放,一路确定就好。
然后关闭虚拟电脑,把“详情”的“视频”里的“型号”改成“vmvga”就可以了。
至于要虚拟linux的话,直接改成“vmvga”就好了。
使用声音:
virt-viewer默认使用VNC来显示虚拟机的,但这个vnc没有声音。当然可以通过远程桌面来解决这个问题,但我测试下来远程桌面的效果不好,于是就又折腾了一下。
首先把虚拟声卡换掉。
把“详情”的“Sound:es1370”删掉,添加“Sound”选“ac97”,然后把“显示:vnc”删掉,添加“Graphics”,选择“本地 SDL 窗口”,确定。
以后启动虚拟机会在一个新的窗口里显示,而声音也能正常使用了。
另外几个参考网址:
http://open.eucalyptus.com/forum/how-create-windows-image
http://kiranmurari.wordpress.com/2010/03/29/uec-bundling-windows-image/
http://www.linux-kvm.org/page/Boot_from_virtio_block_device