安装了vmware tools但是虚拟机在开机状态下无法共享文件夹
产生根源是因为Linux kernel升级之后,vmware-tools没有及时更新。
网上有个第三方的解决方案。测试centos6.4和Ubuntu 14.04 desktop可用
1、将vmware-tools复制出来
2、下载patch文件,链接见底部
3、
# cd ~/vmware-tools-distrib/lib/modules/source # sudo tar xf vmhgfs.tar # sudo wget https://raw.github.com/rasa/vmware-tools-patches/master/patches/vmhgfs/vmhgfs-d_count-kernel-3.11-tools-9.6.0.patch # sudo patch -p0 <vmhgfs-d_count-kernel-3.11-tools-9.6.0.patch # sudo mv vmhgfs.tar vmhgfs.orig.tar # sudo tar cf vmhgfs.tar vmhgfs-only #cd ~/vmware-tools-distrib
4、./vmware-install.pl 重新编译安装
如果patch失败,可以尝试手动将patch中的内容替换到相应文件中,patch内容见链接下
--- vmhgfs-only/inode.c 2013-08-15 22:32:22.000000000 -0700 +++ vmhgfs-only.patched/inode.c 2013-09-16 21:31:12.323041668 -0700 @@ -31,6 +31,9 @@ #include <linux/namei.h> #endif #include <linux/highmem.h> +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) +#include <linux/dcache.h> +#endif #include "compat_cred.h" #include "compat_fs.h" @@ -1890,7 +1893,11 @@ #endif &inode->i_dentry, d_alias) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) + int dcount = d_count(dentry); +#else int dcount = dentry->d_count; +#endif if (dcount) { LOG(4, ("Found %s %d \n", dentry->d_name.name, dcount)); return HgfsAccessInt(dentry, mask & (MAY_READ | MAY_WRITE | MAY_EXEC)); @@ -1943,10 +1950,12 @@ list_for_each(pos, &inode->i_dentry) { int dcount; struct dentry *dentry = list_entry(pos, struct dentry, d_alias); -#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 38) - dcount = atomic_read(&dentry->d_count); -#else +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) + dcount = d_count(dentry); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) dcount = dentry->d_count; +#else + dcount = atomic_read(&dentry->d_count); #endif if (dcount) { LOG(4, ("Found %s %d \n", (dentry)->d_name.name, dcount));
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。