在Ubuntu下安装VMware 6

九月 30th, 2008 by Soloman | Print 在Ubuntu下安装VMware 6 | 2,797 views

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。

, , ,

 

本文有20条评论

  1. basil 说: [回复]

    佩服楼主的钻研精神,我现在在学习vista下虚拟ubuntu

  2. Soloman 说: [回复]

    @basil vista下虚拟ubuntu非常简单:-)把live CD的ISO塞入虚拟机的虚拟光驱即可,祝你成功!

  3. basil 说: [回复]

    已经搞定,打算好好学习ubuntu

  4. basil 说: [回复]

    @老所
    请问怎么把gcc 4.2.4降级为4.2.3?

  5. Soloman 说: [回复]

    @basil 使用 aptitude 工具,非常好用的,其操作方法类似vim,具体用法你上网上看看,是一个ubuntu安装管理软件。

  6. Soloman 说: [回复]

    @basil 用aptitude找到gcc软件,删除不对的版本,留下你要的版本。

  7. basil 说: [回复]

    @老所
    你的回复简直神速啊,赞一个!

  8. Soloman 说: [回复]

    @basil 我装了gtalk,发了帖子我这就能收到邮件:)

  9. Centeur 说: [回复]

    vmware 太慢了,建议安装开源的 virtualbox 吧,速度更快。

  10. Soloman 说: [回复]

    @Centeur 用惯了,所以好多虚拟机都是vmware的。不过也要换换开源的了。

  11. 老时 说: [回复]

    老所一向神速、、、、。。。

  12. 无招之击 说: [回复]

    搞操作系统就是折腾,不得不承认,目前最实用的还是xp

  13. daniel 说: [回复]

    @无招之击 这应该是微软面向个人用户的得意之作 , && linux 一开始就不是 for PC 的 …

  14. 小野大神 说: [回复]

    从来只用wine某人飘过 - , -

  15. 十二星座 说: [回复]

    为什么没人支持BSD呢?

  16. Soloman 说: [回复]

    @醉倚西风 程序员啊,开发不是需要各种环境测试么,所以要装虚拟机啊

  17. 传奇私服啊 说: [回复]

    有意思啊?这个软件根本没多少涌出嘛

添加评论 (支持Gravatar头像)

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

实时评论预览