几天前在KVM下安装了下Windows7,发现问题比较多,所以整理写出来,对这个感兴趣的同学可以看一下。
原始链接Archlinux下KVM安装Windows7
------------------------------
我一直是Windows7和Archlinux双系统,因为有些软件只能在Windows下用,所以没法完全用GNU/Linux,我又喜欢一些GNU/Linux下的程序,所以在Windows下也安装了cygwin,但是我对cygwin也很不满意,更新慢,性能差。这种组合用起来还算方便,但是用久了问题也出来了。同步配置文件就是一个麻烦事情,这些配置文件又要符合cygwin以及Windows的要求,又要符合Archlinux的要求,所以很麻烦。而且,每次都要在两个系统进行切换,不方便不说,还浪费时间。
于是我想把两个系统组合起来用,但是原则损耗性能最小。colinux是windows下的一个不错,问题是这个东西是个实验品,用起来问题多不说,而且支持的软件也少。还有就是colinux已经很久没有实质性的更新,基本处于停滞状态。但是colinux有个好处就是占用资源极少,感兴趣的同学可以自己实验一下。
好,抱怨完了,现在主角出场——KVM。
KVM是Kernel-based Virtual Machine的缩写,故名思议就是内核虚拟机的意思。这里的内核当然是GNU/Linux。安装KVM实在不简单,特别是Archlinux安装KVM问题尤其多,用fedora的同学幸运一些,因为fedora对虚拟化方面支持算是各个发行版中最好的。
wget/makepkg -s/pacman -U安装AUR的如下包(这些包必须是AUR的才能正常工作,官方的qemu-kvm没有编译spice,后面说为什么要spice):
spice
spice-gtk
spice-protocol
qemu-kvm-spice
cegui
usbredir
celt
perl-text-csv
安装的时候注意依赖关系,先安装被依赖的。
然后pacman安装virt-manager。
好,现在Archlinux端的准备工作已经完成。现在运行virt-manager选择选择一个你Windows7的iso来装吧。
virt-manager配置基本过程如下(按照左侧的tab页来):
Processor->CPU,这个根据你的具体情况来写,比如我逻辑cpu有8个,所以我就写4,4.
Processor->Configuration,这个直接点击“Copy host CPU configuration”就行,自动生成。当然,你可以在”CPU Features”里面调优。
Processor->Topology,这个根据你情况来写,比如我写Socket=1,Cores=2,Threads=4。
Memory,这个根据你情况来写。
其他就没什么需要特别设置的。后面安装好Windows7后可以改一下IO,这样可以极大的提高性能,让全虚拟华的KVM实现半虚拟化。安装过程比较久,等1-2个小时吧。
这里是基本步骤,我写的不是太详细,只写了关键的地方,有什么问题可以联系我。
到这里你的Windows7应该安装完了,也基本可用,只是你会发现速度特别慢,比vbox之类还慢,Windows7的图形拖动完全就是一块一块的移动。所以我们要调优。
第一步,调优磁盘IO和网络IO。下载http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/里面的virtio最新驱动iso。
然后在virt-manager里面新建一个cdrom,并挂载到Windows7里面去。
然后安装该iso里面的驱动。(这里有个技巧,就是新建一个虚拟磁盘,然后Disk bus用virtio模式),这样重启Windows7的时候就会自动提示安装驱动,你直接选择挂载的cdrom就行了。
磁盘完了就是网络,直接在virt-manager里面把NIC网络的Device Model改成virtio就行,这在你重新启动之后会提示安装网卡驱动,同样,直接选择挂载的cdrom就行。
第二步,调优显卡和链接程序(spice)。在Windows7里面下载spice-guest-tools,然后安装,这是(qxl)显卡驱动。这里可能会失败,说数字签名类似的问题。这个时候执行下面两个命令就行:
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON
然后再到virt-manager进行如下设置:
显示->类型,设置为Spice,并确定自动创建Channel。
视频->型号,设置为qxl。
完成,重启Windows7,这下是不是快了很多,反应是不是已经和真正的及其上安装的Windows7没什么差别了?
我安装了一个通宵,这些仅仅是安装KVM最后成功的解决办法,其中心酸波折,我懒得写出来了。反正官方的qemu-kvm没有编译进spice支持我也不知道为什么,问了Archlinux的维护人员,他也不知道为什么,但是PKGBUILD的确没写–enable-spice。希望将来改进吧,别让我这么折腾自己去搞AUR。
尽管KVM安装下来结果还算满意,看视频打游戏也不卡,但是依然明显感觉到KVM对图形支持的不是很好,连Aero都不能开,好像是qxl有点问题。总之搞不清楚了。
KVM的长处在于对CPU的负载均衡和批量管理(的确性能很强,特别是待机CPU占用率),而图形娱乐方面还有待发展。
本文仅仅根据我记忆写完,有些地方可能有漏写,或者有写地方我觉得不重要就没写,如果有什么问题,请联系我。
just for fun :-)
离线
顶技术帖
不是很了解KVM,但是看你的文章光是有IO的调优,实现更好的图形性能在半虚拟化模式下可以使用host的显卡么?或者自己虚拟一个,类似vbox那样...
离线
打游戏也不卡 是指什么游戏?我不相信能有3D加速能力
虚拟机windows实现3d加速,都是把dx转成opengl指令(用wine的库,vbox就是)后交给主机执行。
离线
顶技术贴,觉得如果对图形要求比较高vbox更好些,听说kvm在负载均衡上做的更好些
>>>>>>>>>jekyll博客>>>>>>>>>>
<<<<<<<<<更残念的vimwiki<<<<<<<<<
本人vim控,偏偏喜欢lisp
离线
离线
离线
哇哦...看着就兴奋,找个时间试试..
离线
顶技术帖
不是很了解KVM,但是看你的文章光是有IO的调优,实现更好的图形性能在半虚拟化模式下可以使用host的显卡么?或者自己虚拟一个,类似vbox那样...
我觉得kvm还是比较适合大规模的虚拟化,桌面做虚拟机不太好,尤其是图形,尽管最后搞上slx也不能在win7跑分,开aero开不了,不过也运行流畅,看视频一点不卡。
vbox我也用了,做桌面虚拟机比较适合。io性能比kvm差一些,但是图形支持比kvm好一些,用起来也没那么麻烦,kvm特别是新手,用起来麻烦。容易出问题。
just for fun :-)
离线
打游戏也不卡 是指什么游戏?我不相信能有3D加速能力
虚拟机windows实现3d加速,都是把dx转成opengl指令(用wine的库,vbox就是)后交给主机执行。
flash游戏。
3d加速slx有,不过我没感觉出来。
just for fun :-)
离线
打游戏也不卡 是指什么游戏?我不相信能有3D加速能力
虚拟机windows实现3d加速,都是把dx转成opengl指令(用wine的库,vbox就是)后交给主机执行。
vbox已经有原生d3d支持,我开过,还算流畅
just for fun :-)
离线
顶技术贴,觉得如果对图形要求比较高vbox更好些,听说kvm在负载均衡上做的更好些
你说的很对。
kvm在待机的时候几乎不占cpu(win7占5%不到),运行时占10%左右,看视频50%
而对vbox这几个分别是10%,50%,150%
just for fun :-)
离线
感觉KVM还是在服务器虚拟化领域做得更好,桌面应用的话...
对
只要kvm图形支持再加强一点,那就很不错了,运行guest基本等同于本地系统
just for fun :-)
离线
哇哦...看着就兴奋,找个时间试试..
看完我这个再试吧。wiki上面很多错误说法
just for fun :-)
离线
我之前说的slx全部换位qxl,拼写错误。
just for fun :-)
离线
spice
spice-gtk
spice-protocol
qemu-kvm-spice
cegui
usbredir
celt
perl-text-csv
还需要安装 dnsmasq ,不然网络没法弄。错误信息如下:
Error creating virtual network: Cannot find 'dnsmasq' in path: No such file or directory
还有我进 virt-manager 需要 root 权限,如何用一般用户来安装系统?我的用户加入到了 kvm 组了。
最近编辑记录 jouyouyun (2012-06-11 22:25:27)
离线