笔者已经写了一篇关于安装"VMware Tools",以实现文件共享的文章,那篇文章对于你实现共享操作是足够了, 所以,倘若你赶时间不如直接去在虚拟机的linux中利用VMware Tools实现与windows共享文件的网页上解决问题。
这篇文章并没有讲如何在"vmware 6.5+ubuntu12.04"上安装"VMware Tools",主旨在于分析"VMware Tools"的安装过程以及在"vmware 6.5+ubuntu12.04"上安装"VMware Tools"出现的问题。倘若你渴求知识的更深入理解,就看这篇文章吧。
在"vmware 6.5+ubuntu12.04"上装"VMware tools",这件本来在"vmware 6.5+redhat9.0上"装"VMware tools"很容易的事,由于ubuntu高级版本的差别变成了艰难的事。安装"VMware Tools"通常都是执行一个命令"./vmware-install.pl",但是在"VMware6.5+ubuntu12.04安装过程中出现一些列异常。下边,我就根据出现的异常问题及其解决为主线展开本文。
声明两点:
(1)下边的(1)、(2)、(3)、(4)是根据http://blog.sina.com.cn/s/blog_6823cc5d0100re2u.html这篇博客稍作修改修改来的。
(2)命令"uname -r "可以产看内核版本,这在后边可以用到。
开始安装
首先,我们在虚拟机主菜单上选择VM项,从下拉菜单中选择"Install VMware Tools..",然后解压"VMwareTools-7.8.4-126130.tar.gz" (这个版本需要注意,其实一切问题来自于版本问题),再进入"vmware-tool-distrib"文件夹下执行"./vmware-install.pl"。
(1) 安装库,文档,卸载程序,配置程序等等
如上图的选项,直接点Enter键就可以了。
(2)安装完成后,开始运行配置程序。
注意上边的第一个方框,可以看到安装已经完成,并且告诉你卸载VMware Tools的方法(直接在终端上输入命令/usr/bin/vmware-uninstall-tools.pl)。但是,我要告诉你的是VMware Tools并没有完全安装成功,只是安装了一个壳,它的更多的功能并没有安装,包括文件共享的功能并没有安装。
注意第二个方框,通过阅读英文提示,我们知道:在第一次运行"VMware Tools"之前,我们必须首先运行配置程序,即执行命令/usr/bin/vmware-config-tools.pl。其实,执行这个命令,就是开始安装VMware Tools的其他功能,包括文件共享功能。
注意第三个方框,当我们直接Enter之后,其实就是默认选择了yes,执行vmware-config-tools.pl。在执行这个命令后,首先停止VMware Tools的服务。
VMware Tools的其他功能的安装很搞笑,它不像windows应用程序安装那样,直接setup.exe,然后就OK了。它的安装是可能可以直接安装,也可能需要先对每个功能模块的源码包进行编译,然后才能安装这些模块 。我就纳闷了,为啥搞这么复杂,直接安装不就得了。
但是,当你进入它解压后的文件夹*/vmware-tool-distrib/lib/modules/binary和*/vmware-tool-distrib/lib/moudules/source,你就会产生一些领会。我建议您如果有时间的话仔细的看一下vmware-tool-distrib的全部内容,这对您理解安装过程很有帮助。
*/vmware-tool-distrib/lib/modules/binary的内容很多,我直截取了一部分,如下所示。
我以其中的一个为例展开其内容,*/vmware-tool-distrib/lib/modules/binary/bld-2.6.12-9-x86_64K8-Ubuntu5.10/objects的内容如下。
*/vmware-tool-distrib/lib/moudules/source目录下放的就是那些其他功能的源码包,通过这些内容,我们就知道它的其他功能是什么。
猜测VMware Toos的安装过程
看到我展开的文件夹的内容,咱们来猜测为什么要这样安装其他功能。原因可能是这样的:VMware Toos的应用平台很多,有redhat linux,Ubuntu linux等等,而且这些操作系统还有不同版本,那么仅仅一个VMware Tools安装包很难兼容所有的linux和特定版本的linux。打个比方,windows升级后,相应的软件也都需要修改升级,只有这样才能与高版本的windows兼容。当安装VMware Toos时候,安装程序会根据linux的内核版本,首先从moudules/bin中查看有没有适合本版本的已经编译好的安装程序,如果命中的话,就直接从这里安装(假如我的linux是Ubuntu5.10,显然就能命中,直接从vmware-tool-distrib/lib/modules/binary/bld-2.6.12-9-x86_64K8-Ubuntu5.10/objects这里安装)。倘若不能命中的话,就需要对源码包进行编译,然后安装,当然存在不能成功编译或者编译后不能成功运行的可能(比如我们现在用的ubuntu12.0.4,内核版本是3.2.0-55-generic-pae,不能找到匹配的安装包,就需要编译。但是,接下来的事实是我们就根本不能编译成功)。
最后,我们注意第四个方框,提示告诉我们:现在我们想安装vmmemctl这个功能,但是并没有合适的modules匹配当前版本的内核,所以需要编译它,并且是利用gcc来编译的(注意gcc也是分不同版本的)。
(3)编译vmmemctl
第一个方框告诉我们,内核的编译版本(gcc4.6.3)与当前的gcc版本(gcc4.6)不一致,建议我们选择与内核版本一致的编译器来编译当前的vmmemtrl。但是,这里直接Enter,就是默认选择no,即不进行编译,当然也不会安装这个功能包。
第二个方框告诉我们,vmmemtrl的功能是什么。
第三个方框告诉我们:虽然我这次没有安装这个功能,但是假如我想安装的话,将来可以重现运行/usr/bin/ vmware-config-tools.pl来重现安装这个功能包。
(4)安装vmhgfs
vmhgfs是实现文件共享功能的安装包,对于我们学习的方便很重要,所以现在我们来尝试安装它。
和安装vmmemctl类似,只不过这里我们对于第二个方框,不直接Enter,而选择yes,也就是说即使编译器gcc4.6不合适,我们也一定要使用gcc4.6来编译vmhgfs源码包。
但是如上图所示,出现 The path "/usr/src/linux/include" is not an existing directory。编译vmhgfs需要编译内核的头文件,而现在的提示说头文件位置不存在。
这样我们需要找到适合的头文件,并且更改这个路径。先用"uname -r"命令找到当前的linux内核版本,可以看到ubuntu12.0.4的内核版本为
改后再回车,又出现如下问题:
The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match your running kernel (version3.2.0-55-generic-pae). Even if the module were to compile successfully, it would not load into the running kernel.
这段话告诉我们当前的头文件夹与内核版本不匹配。实际上不是不匹配,而是因为Kernel 中有一个变量"UTS_RELEASE "位置改变了。以前这个变量到定义放在"/usr/src/ linux-headers-
① 在version.h中添加:#define UTS_RELEASE "
② 直接将utsrelease.h拷贝回来:$ cp -p generated/utsrelease.h linux/utsrelease.h
改后再回车,又出现如下问题:
The path "/usr/src/linux-headers-
根据提示可以知道,是因为找不到 linux/autoconf.h文件,这个文件在新的linux内核中被挪到了generated目录中,因此修改的办法也很简单,直接将这个文件拷贝过来即可:$ cp -p generated/autoconf .h linux/autoconf .h。
从图中的方框可以看出,安装程序已经能识别我们的头文件夹了,不用我们再去手动指定,直接Enter,继续。
(5)按照博客http://blog.sina.com.cn/s/blog_6823cc5d0100re2u.html这篇文章,接下来的安装应该很顺利。但是,由于我们用的是ubuntu12.0.4,内核版本是3.2.0-55-generic-pae,而非这篇博主所用的内核版本是"2.6.35-22-generic",新的不幸又开始了。
从第一个方框,我们发现我们的"VMwareTools-7.8.4-126130.tar.gz" 适合的内核版本是2.6.x。
从第二个方框,我们可以看到编译vmhgfs源码包没有成功。
从第三个方框,我们可以看出vmhgfs模块的功能,可以实现文件共享。另外,还提示我们,这个模块的功能不会影响到其他模块。
结论:可以肯定的是"VMwareTools-7.8.4-126130.tar.gz" 源码包对于我们的ubuntu12.0.4是不兼容的。
解决办法有两种:(详细的安装过程见在虚拟机的linux中利用VMware Tools实现与windows共享文件)
1.获得更高版本的安装包,并安装它。
2.安装open-vm-dkms。
参考博客:http://blog.sina.com.cn/s/blog_6823cc5d0100re2u.html