您尚未登录。

#1 2012-06-03 09:41:39

ffwalle
机器人
注册时间: 2011-12-03
帖子: 393

Archlinux下KVM安装Windows7

几天前在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 :-)

离线

#2 2012-06-03 10:06:54

phoenixlzx
晩ご飯だよー
注册时间: 2011-08-19
帖子: 1,789
个人网站

Re: Archlinux下KVM安装Windows7

顶技术帖 big_smile

不是很了解KVM,但是看你的文章光是有IO的调优,实现更好的图形性能在半虚拟化模式下可以使用host的显卡么?或者自己虚拟一个,类似vbox那样...

离线

#3 2012-06-03 10:55:34

sgsdxzy
Light
注册时间: 2012-05-17
帖子: 31

Re: Archlinux下KVM安装Windows7

打游戏也不卡 是指什么游戏?我不相信能有3D加速能力
虚拟机windows实现3d加速,都是把dx转成opengl指令(用wine的库,vbox就是)后交给主机执行。

离线

#4 2012-06-03 11:14:37

reverland
root
注册时间: 2012-02-04
帖子: 356
个人网站

Re: Archlinux下KVM安装Windows7

顶技术贴,觉得如果对图形要求比较高vbox更好些,听说kvm在负载均衡上做的更好些


>>>>>>>>>jekyll博客>>>>>>>>>>
<<<<<<<<<更残念的vimwiki<<<<<<<<<
本人vim控,偏偏喜欢lisp

离线

#5 2012-06-03 12:19:15

phoenixlzx
晩ご飯だよー
注册时间: 2011-08-19
帖子: 1,789
个人网站

Re: Archlinux下KVM安装Windows7

感觉KVM还是在服务器虚拟化领域做得更好,桌面应用的话...

离线

#6 2012-06-03 13:48:44

自由建客
穷若韩信
所在地: 桂林市第六人民医院
注册时间: 2011-08-27
帖子: 250
个人网站

Re: Archlinux下KVM安装Windows7

感觉还是 VBox 合适我一些,虽然 4.x 网络有过度消耗资源的 bug,但我忍了。

离线

#7 2012-06-03 17:57:46

nopriler
会员
注册时间: 2012-01-03
帖子: 393

Re: Archlinux下KVM安装Windows7

哇哦...看着就兴奋,找个时间试试..

离线

#8 2012-06-05 02:10:29

ffwalle
机器人
注册时间: 2011-12-03
帖子: 393

Re: Archlinux下KVM安装Windows7

phoenixlzx 说:

顶技术帖 big_smile

不是很了解KVM,但是看你的文章光是有IO的调优,实现更好的图形性能在半虚拟化模式下可以使用host的显卡么?或者自己虚拟一个,类似vbox那样...


我觉得kvm还是比较适合大规模的虚拟化,桌面做虚拟机不太好,尤其是图形,尽管最后搞上slx也不能在win7跑分,开aero开不了,不过也运行流畅,看视频一点不卡。

vbox我也用了,做桌面虚拟机比较适合。io性能比kvm差一些,但是图形支持比kvm好一些,用起来也没那么麻烦,kvm特别是新手,用起来麻烦。容易出问题。


just for fun :-)

离线

#9 2012-06-05 02:11:21

ffwalle
机器人
注册时间: 2011-12-03
帖子: 393

Re: Archlinux下KVM安装Windows7

sgsdxzy 说:

打游戏也不卡 是指什么游戏?我不相信能有3D加速能力
虚拟机windows实现3d加速,都是把dx转成opengl指令(用wine的库,vbox就是)后交给主机执行。

flash游戏。

3d加速slx有,不过我没感觉出来。


just for fun :-)

离线

#10 2012-06-05 02:12:52

ffwalle
机器人
注册时间: 2011-12-03
帖子: 393

Re: Archlinux下KVM安装Windows7

sgsdxzy 说:

打游戏也不卡 是指什么游戏?我不相信能有3D加速能力
虚拟机windows实现3d加速,都是把dx转成opengl指令(用wine的库,vbox就是)后交给主机执行。


vbox已经有原生d3d支持,我开过,还算流畅


just for fun :-)

离线

#11 2012-06-05 02:14:16

ffwalle
机器人
注册时间: 2011-12-03
帖子: 393

Re: Archlinux下KVM安装Windows7

reverland 说:

顶技术贴,觉得如果对图形要求比较高vbox更好些,听说kvm在负载均衡上做的更好些


你说的很对。

kvm在待机的时候几乎不占cpu(win7占5%不到),运行时占10%左右,看视频50%
而对vbox这几个分别是10%,50%,150%


just for fun :-)

离线

#12 2012-06-05 02:15:03

ffwalle
机器人
注册时间: 2011-12-03
帖子: 393

Re: Archlinux下KVM安装Windows7

phoenixlzx 说:

感觉KVM还是在服务器虚拟化领域做得更好,桌面应用的话...

只要kvm图形支持再加强一点,那就很不错了,运行guest基本等同于本地系统


just for fun :-)

离线

#13 2012-06-05 02:16:21

ffwalle
机器人
注册时间: 2011-12-03
帖子: 393

Re: Archlinux下KVM安装Windows7

nopriler 说:

哇哦...看着就兴奋,找个时间试试..


看完我这个再试吧。wiki上面很多错误说法


just for fun :-)

离线

#14 2012-06-05 02:18:42

ffwalle
机器人
注册时间: 2011-12-03
帖子: 393

Re: Archlinux下KVM安装Windows7

我之前说的slx全部换位qxl,拼写错误。


just for fun :-)

离线

#15 2012-06-11 22:23:15

jouyouyun
会员
注册时间: 2011-10-10
帖子: 268

Re: Archlinux下KVM安装Windows7

walle 说:

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)

离线

页脚