解决vmware虚拟机中,已安装vmware-tools却无法共享文件夹的问题

    众所周知,在win7主机与linux虚拟机之家开启文件夹共享,能够省去每次都ftp的麻烦。在测试的时候,能够方便不少。

    之前我在宿主机win7里面安装了vmware,然后装了一个centos虚拟机。然后正常安装了 vmware-tools,一切顺利,最后也出现了“Enjoy” 的提示。但是就是死活无法与win7共享文件夹。这在以前是没有发生过的事情。在将vmware卸载重装升级为 vmware 10 之后,问题依旧。最近由于是在无法忍受,怒上心头,誓要解决该问题。

    在网上参考了这两篇文章(1,解决 CentOS 7.0 在VMware 10下安装 WMware Tools错误的问题http://blog.csdn.net/hang_zheng/article/details/41520271。2,VM下Ubuntu 10.10里安装VMtools成功还是无法显示共享文件夹问题:http://www.linuxidc.com/Linux/2011-02/32038.htm),将两篇文章结合起来看,就解决了我的问题。为避免用户自己花时间总结,下面我说出我的探索历程,希望能够给看官一点启发。以后即使遇到的不是我这同一种类型的错误,也能用类似的办法解决。

    现象:设置了文件夹共享,但是在 虚拟机的 /mnt/hgfs目录里面并没有我的共享文件夹。于是尝试执行 vmware-toolbox-cmd 命令,看看 vmware-tools 是否正常。

    问题:执行 vmware-toolbox-cmd 命令直接报错:
    vmware-toolbox-cmd: Missing command
    Try 'vmware-toolbox-cmd help' for more information.

    此时我就想到重新安装 vmware-tools,于是执行 sudo vmware-install.pl。看到这么几句话:

If you wish to have the shared folders feature, you can install the driver by
running vmware-config-tools.pl again after making sure that gcc, binutils, make
and the kernel sources for your running kernel are installed on your machine.
These packages are available on your distribution's installation CD.
[ Press Enter key to continue ]

    意思是说,如果想开去 文件夹共享的特性,在确保安装了几个库文件之后,执行 vmware-config-tools.pl 来安装。这提示还是很到位的。然后就是安装这几个库了: sudo yum install kernel-headers make gcc gcc-c++ kernel-devel binutils. 然后执行  vmware-config-tools.pl 脚本,却报如下错误:

 

/tmp/modconfig-dBTDLE/vmhgfs-only/./shared/compat_dcache.h:57:38: error: 'struct dentry' has no member named 'd_count'
 #define compat_d_count(dentry) dentry->d_count

提示说这个头文件有问题!但是我想去/tmp/modconfig-dBTDLE/vmhgfs-only/./shared 目录里面找到compat_dcache.h文件,发现 /tmp 目录里面压根就没有那个文件夹啊,它是临时生成的。把这一行报错百度之后,找到了第一篇文章,然后里面的这一句: 修改vmhgfs-only/compat_dcache.h 。可是找遍了所有的目录,也没有发现 这个东西。于是继续找,找到了第二篇文章,第二篇文章里面虽然说的是另外一个问题的解决办法,找的文件不是 compat_dcache.h,而是 compat_slab.h ,但是 它却告诉了我 vmhgfs-only 这个文件夹是怎么来的!于是,将这两篇文章结合起来看,我就知道我应该进入我的 vmware 文件夹

/home/lk/vmware-tools-distrib/lib/modules/source里面,解压vmhgfs.tar(终端命令:tar -xvf vmhgfs.tar),解压后生成文件夹vmhgfs-only,删除文件夹vmhgfs.tar(rm -f vmhgfs.tar)(因为后面要修改后重新压缩生成该名称文件夹),然后进入/vmhgfsr-only/share 找到compat_dcache.h,首先用命令:chmod +w compat_dcache.h修改该文件的只读属性为可写,用vi或gedit进入对其修改(vi compat_dcache.h),找到该行:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)

,将该行替换为:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)(即将 11 改为 10),保存退出.

原来的 vmhgfs.tar 已经删除了, 重新打包成 vmhgfs.tar,

tar -cvf vmhgfs.tar vmhgfs-only/,

重新运行 ./vmware-install.pl 即可。

猜你喜欢

转载自my.oschina.net/u/2447371/blog/1531699