在Ubuntu下安装VMware 6
Linux的发展已经很不错了,Ubuntu基本上能满足我们日常工作需要了。但现实还是残酷的,我们的很多工作还是离不开Windows,比如很多国内的网上银行都只能完美支持IE,对于Firefox,那就毛病多多啦。另外,对于我这样一个搞开发的,平时虚拟机可是我用的最多的工具,所以,要想将工作切换到Linux下,虚拟机是一个必须解决的问题。
先说说我的需求。我使用一台无线上网的笔记本,其中安装了三个操作系统:Vista,Windows XP和Ubuntu。其中硬盘有个公用的分区,使用的是NTFS文件系统,所有的虚拟机都放在这个公用分区下,从Vista和XP下都能使用,我希望也能从Ubuntu上来使用这个分区的虚拟机,这样无论我在哪个环境下,大致工具还是差不多的。
其次,我们要仔细研究下各个软件的版本。我的Ubuntu是8.04版的,Vista和XP下使用的VMware Workstation都是6.0.0版本。虽然目前大家对VMware Workstation的主流版本是6.0.3,而且最高版本6.0.5也已经发布,但我的目标还是在Ubuntu 8.04下安装VMware Workstation 6.0.0,这样确保各个系统都能稳定使用我的虚拟机。
然而,Linux下VMware的安装不是那么顺利,我基本上搞了两个钟头。
首先,我按照这个网页的办法,进行源代码编译安装,其过程如下:
download VMware-workstation-6.0.0-45731.i386.tar.gz from http://www.vmware.com/
] sudo apt-get install build-essential
] tar xzf VMware-workstation-6.0.0-45731.i386.tar.gz
] cd vmware-distrib
] sudo ./vmware-install.pl
这个过程中,提醒我我的gcc版本不对,说我的内核是用gcc 4.2.3编译的,而我目前的gcc是4.2.4。于是我通过aptitude将gcc降级为4.2.3。这里顺带提示下,在ubuntu里,你直接安装gcc包,这个包里的版本是和其内核编译的gcc版本对应的,我则错误地安装了gcc-4.2,这个是最新的,所以我就删除了gcc-4.2,退回到主流版本上去。
好了,编译器版本问题解决了,继续,错误来了,无法通过编译。这个问题不稀奇,很多帖子都提到了这个问题。于是到这个Google Group里下载vmware-any-any-update-116.tgz文件。
] tar xzf vmware-any-any-update-116.tgz
] cd vmware-any-any-update116
] sudo ./runme.pl
哈哈,一切顺利。原来,这个包里带了一些修改过的代码,patch到相应的位置后再调用vmware-config.pl来编译。
运行vmware,出现了界面,兴奋地找到我的虚拟机,开机,结果出错了:
分析错误信息:expecting 161.0, got 167.0,大概是版本的问题,网上很多朋友也遇到这个问题,我搜到一篇中国小伙子写的博客,其中提到了一个地方:
] cd /usr/lib/vmware/modules/source
] cp vmmon.tar vmmon.tar.orig
] sudo tar xvf vmmon.tar
] cd vmmon-only/include/
] sudo vi vcpuset.h
修改第 74 行: #include “asm/bitops.h” 为: #include “linux/bitops.h”
] rm vmmon.tar
] sudo tar cvf vmmon.tar vmmon-only/
] sudo rm -rf vmmon-only/
] sudo /usr/bin/vmware-config.pl
但我在编译的时候好像没有碰到这个问题啊?我进一步检查了这个文件,确实已经改为了linux/bitops.h了啊,这是怎么一回事?经过仔细分析,终于被我搞清楚了。这位网友是使用的vmware-any-any-update115.tar.gz,然后他要安装的VMware Workstation的版本是6.0.3,他后来是手工修改了这个文件,但其实这个文件在116版本里已经修改过了,所以我没有碰到编译问题。但我用的VMware是6.0.0,比他的版本低。他遇到的问题是:Version mismatch with vmmon module: expecting 167.0, got 161.0. 正好和我相反,需要高版本的,但115里是低版本的。而我需要低版本的161.0,而使用的116里是高版本的167.0。显而易见,我需要115,他需要116,我们正好搞反了。
好,那就找115吧,那个Google Group里已经不提供这个版本了,我只好到这个地址下载。用这个115的patch后,确实出现了上面说的那个asm改linux的问题。修改后,运行sudo vmware-config.pl,一切正常。然而,新的问题又出现了:
继续搜索,找到这个帖子,原来问题出在我的虚拟机是在NTFS文件系统下,这个文件系统无法支持命名管道。解决的办法很简单,打开我虚拟机的vmx文件,添加一行配置:
mainmem.UseNamedFile = "FALSE"
好了,机器终于启动了!然而网络又出问题了。虚拟机仿佛无法连接网络。继续检查vmware的配置(用vmware-config.pl),发现我是将虚拟机桥接到了wlan0无线网卡上了:
我记得刚才在Google Group上下载文件时,有116版本的专门为wireless提供的补丁,但可惜的是我现在用的是115版本,所以无法找到这个版本的补丁。不过这个问题不大,既然不能使用二层的桥接,那就使用三层的路由吧。将虚拟机的网卡配置到NAT虚拟网络即可。
OK,一切就绪,打开虚拟机,一切正常,不过还是有一个地方不正常,那就是我的网上银行的USB证书无法使用,这个看来就不是一下能解决的了。
呵呵,以前是在Windows下用虚拟机跑Linux,现在是在Linux下跑Windows。






十月 20th, 2008 at 21:47
佩服楼主的钻研精神,我现在在学习vista下虚拟ubuntu
十月 20th, 2008 at 21:50
@basil vista下虚拟ubuntu非常简单:-)把live CD的ISO塞入虚拟机的虚拟光驱即可,祝你成功!
十月 22nd, 2008 at 09:35
已经搞定,打算好好学习ubuntu
十月 27th, 2008 at 20:34
@老所
请问怎么把gcc 4.2.4降级为4.2.3?
十月 27th, 2008 at 20:36
@basil 使用 aptitude 工具,非常好用的,其操作方法类似vim,具体用法你上网上看看,是一个ubuntu安装管理软件。
十月 27th, 2008 at 20:36
@basil 用aptitude找到gcc软件,删除不对的版本,留下你要的版本。
十月 27th, 2008 at 20:37
@老所
你的回复简直神速啊,赞一个!
十月 27th, 2008 at 20:38
@basil 我装了gtalk,发了帖子我这就能收到邮件:)
十月 27th, 2008 at 20:41
谢谢阿
十月 27th, 2008 at 20:41
改天也装一个
十一月 4th, 2008 at 13:18
vmware 太慢了,建议安装开源的 virtualbox 吧,速度更快。
十一月 4th, 2008 at 17:59
@Centeur 用惯了,所以好多虚拟机都是vmware的。不过也要换换开源的了。
十一月 4th, 2008 at 23:10
老所一向神速、、、、。。。
十一月 10th, 2008 at 20:42
搞操作系统就是折腾,不得不承认,目前最实用的还是xp
十一月 16th, 2008 at 21:27
@无招之击 这应该是微软面向个人用户的得意之作 , && linux 一开始就不是 for PC 的 …
十二月 4th, 2008 at 19:55
从来只用wine某人飘过 - , -
十二月 8th, 2008 at 20:47
为什么没人支持BSD呢?
十二月 23rd, 2008 at 09:35
老所是研究啥子啊
十二月 23rd, 2008 at 13:04
@醉倚西风 程序员啊,开发不是需要各种环境测试么,所以要装虚拟机啊
三月 11th, 2009 at 18:03
有意思啊?这个软件根本没多少涌出嘛