几星期前我的XP出了个毛病,每隔几分钟就出现键盘和鼠标没有响应,持续5、6秒钟,怀疑是病毒所致,可是却无从下手。加上这段时间大多数时间都在 ubuntu 下面,使用感觉很不错,于是有了使用它作为主操作系统的想法。可是我的工作要求使用windows下的工具进行编程和测试,完全摆脱windows是不可 能了,只好在ubuntu里面用虚拟机装个XP。我的想法是这个XP只是工作用,越简单越好,只装必要的软件,并且不给它上网,从而避免病毒和木马的骚 扰。这段时间一直在VirtualBox和Vmware之间骑墙,对这两个虚拟机有了一定的了解,做一下总结吧。
先介绍一下基本情况。我有两台电 脑,家里是一个台式机,公司里有一个笔记本,ubuntu 7.04是装在移动硬盘里两台机器共用的。虚拟机用的是VirtualBox 1.4.0和Vmware player 2.0.0 build-45731。Guest OS是Windows XP SP2。
1、易用性
两个虚拟机都挺好用的,安装了各自的guest os工具后感觉相当好。不过它们也各有缺点。
VirtualBox 总是出一些莫名其妙的毛病。我的ubuntu空间不够用了,所以我把虚拟硬盘放在移动硬盘的FAT32分区上,然后做了个链接过来,结果 VirtualBox在台式机上启动后总说我的虚拟机Inaccessiable。有时说WinXP.vdi已经附属于另一个虚拟机了,有时说 Snapshot folder不可访问,让我放弃所有snapshots再试。可是这时在里面根本无法编辑虚拟机的选项,就算想放弃也没办法啊,这点显得有点弱智。我检查 过所有链接和文件权限都没问题,而且换在笔记本上也是好好的没这些毛病,真是一点办法都没有。VirtualBox的共享剪贴板有很多可选设置,比 Vmware player更灵活些。
Vmware我装的是免费的player,所以功能上难免有些限制,改动配置基本靠编辑配置文件。其他还好 了,反正很少改,就是改变光驱属性有点麻烦,在物理光驱和 ISO文件间切换时需要关闭guest os,编辑配置文件后重启。至于在ISO文件间切换比较好办,在配置文件里只是写一个文件链接,需要改变时让链接指向不同的文件即可。Vmplayer全 屏显示时会在屏幕顶端显示一个工具条,可以用来最小化、还原、关闭虚拟机,对习惯鼠标操作的人可能更方便些。Vmare player不支持snapshot,这个的确不大好。
2、速度
VirtualBoxVirtualBox的显示干净利落,一点都不拖泥带水,给人的感觉是运行速度很快,尤其是开机时显示的画面挺顺畅的。
Vmware 起初在我的笔记本里运行速度很慢,启动、关机明显比VirtualBox慢,程序运行速度似乎还行。不过让人难以接受的就是系统时间,基本是每隔7、8秒 虚拟机里才跳1秒,即使打开vmware tools的时间同步也经常比host机的时间慢1~5分钟,这对于编译程序是不可接受的,可能会造成make误以为某些需要编译的模块已经编译过了。而 且其他一些用到计时的程序(比如ping)也不正常。但是在我的台式机上就没有时间变慢这个问题。在网上搜了一下,发现这是一个有悠久历史的问题,按照某 些方法加了内核参数不起作用,昨天终于找到了问题所在:
代码:
cat /sys/module/processor/parameters/max_cstate
我的笔记本里这个值是8,解决方法很简单,只要一行命令:
代码:
echo 1 > /sys/module/processor/parameters/max_cstate
执行完后立竿见影,guest os的时间立刻就跟上了,而且运行速度也明显加快,编译程序时感觉就像在真实的机器里一样快,真舒坦。
感 觉往往是不准确的,所以我进行了一下测试。两个虚拟机的运行环境基本一样,都是只配了硬盘、内存(320M)和网卡,都是通过samba访问 host机上的源文件,装的软件都只是编译必需的,只是vmware的虚拟机里多了一个cooledit,测试时都是开机后直接运行编译命令,编译同一个 工程的用时结果如下(所有的时间都是用host机记录的,虚拟机里的时间不准,尤其vmware差异较大):
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP: 3'36"
ubuntu 7.04 + Vmware player 2.0.0 b45731 + 虚拟XP: 1'42"
真实的XP环境: 1'13"
结果真是让人难以置信啊,差距大的有点离谱,不过却是事实。Vmware的速度是可以接受的,毕竟是虚拟机,而且访问文件时绕了那么多弯子。VirtualBox就有点过分了,无论是文件读写还是编译源文件速度都比其他两个慢。
后来又测试了VirtualBox另外两种内存配置下的编译速度,结果没有什么改观:
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP(128M内存): 4'17"
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP(256M内存): 4'02"
以上速度测试涉及网络、内存等综合因素,尤其是vbox的测试,每次测试变化幅度较大,仅供类似使用环境参考。
为了排除网络速度的影响,我又使用super pi 1.2测试了一下104万位的计算时间,结果两个虚拟机都是47秒,看来virtualbox的网速真是大大拖了它的后腿。
3、虚拟硬盘
VirtualBox一个虚拟硬盘一个文件,在FAT32文件系统上每个虚拟硬盘最大只能是4G,可能不太够用。
Vmware的虚拟硬盘可以分割成若干个2GB大小的文件,对于FAT32这样的文件系统很有用。我感觉linux对ntfs的写操作依然不是很稳定,所以我的移动硬盘还是使用FAT32分区,所以对我来说Vmware更好用。
4、USB支持
VirtualBox的USB支持比较麻烦,需要先解决权限的问题。开始时我用添加usbfs用户组的方法:
代码:
sudo addgroup usbfs
注意usbfs组的id号,假如是1002
然后修改/etc/fstab
添加一行
代码:
none /proc/bus/usb usbfs devgid=1002,devmode=664 0 0
把当前帐号加入到usbfs组中
代码:
sudo usermod -G usbfs -a your_account
结果上面的方法不起作用,后来找到另一个方法:
编辑 /etc/udev/rules.d/40-permissions.rules
找到这行:
代码:
SUBSYSTEM=="usb_device", MODE="0664"
改成
代码:
SUBSYSTEM=="usb_device", MODE="0666"
终于搞定了。
Vmware的USB使用就简单多了,直接点按钮就连接上了。
5、音频
我做的工作跟音频有关,所以对于音频要求还是挺高的。
VirtualBox的音频不是很好,用它自带的虚拟声卡播放时经常会卡一下。用USB耳机就更惨了,断断续续的,似乎有声的时候比无声的时候还少。
Vmware的音频相当好,无论用内置的虚拟声卡还是USB耳机都播放的很顺畅。
6、共享文件夹
两个虚拟机的共享文件夹实现都不完美,读、写文件都没问题,不过设置文件属性(比如修改时间)都不行,本来想用共享文件夹访问需要编译的源码的,由于不能设置文件属性造成编译程序出错,只好作罢。
VirtualBox下使用共享文件夹有时会出错,不太稳定。使用共享文件夹需要使用命令行来建立映射:
代码:
net use x: //vboxsvr/[共享文件夹名称]
ubuntu 7.04里面的Vmware player比较旧,不支持共享文件夹,从vmware网站上下载一个最新的装上就行了。安装过程很简单,基本一路回车。说明文件说可以在网络邻居上浏览 到共享文件夹,可是我的系统里在网络邻居里没看到任何东西,不过通过搜索计算机“.host”找到了,然后直接映射就行了。它的共享文件夹比较稳定,我这 里还没有出过问题。
7、网络
为了远离病毒和木马,本来不想给虚拟机配置网卡的,可是由于上面提到的共享文件夹的问题,只好通过网络来访问host机上通过samba共享的文件。不过我只希望guest和host之间通讯,不需要连到外面的网上。
VirtualBox 我用的是NAT,这种方式配置最简单,host机上不需要做任何操作。guest机启动后就可以通过dhcp分配到IP地址,是 10.0.2.x网段。不过这样的话guest机是可以通过host上网的。为了阻止它连网,我把网卡改成固定IP地址10.0.2.20,并且不配网 关,把DNS设置成127.0.0.1,这样它就不能上网了。可是怎么和host机互连呢?在ubuntu下是看不到VirtualBox的网卡的,不知 道它用什么方法隐藏起来了,不过这个网卡的地址是10.0.2.2,通过这个地址就能访问host机了。
Vmware里用host-only方式就能实现我的要求,使用和配置都非常简单,不多说了。
由上面的比较可以看出,对于我的需求来说Vmware优点更多些,所以在解决了guest os系统时间变慢的问题后我理所当然的选择了Vmware player。
VirtualBox 和 Vmware 的比较(转)
最新推荐文章于 2024-07-26 16:24:54 发布