在Vmware搭载Centos安装vmtools过程当中有以下报错node
/tmp/modconfig-ygOywn/vmhgfs-only/inode.c: 在函数‘HgfsPermission’中: tmp/modconfig-ygOywn/vmhgfs-only/./shared/compat_dcache.h:57:38: 错误:‘struct dentry’没有名为‘d_count’的成员 #define compat_d_count(dentry) dentry->d_count ^ /tmp/modconfig-ygOywn/vmhgfs-only/inode.c:1904:23: 附注:in expansion of macro compat_d_count’ int dcount = compat_d_count(dentry);
这个报错致使虚机centos和实机windows共享目录时, hgfs目录会没法显示。 特别须要留意的是,centos虚机和window实机共享目录的解决办法不一样于ubuntu虚机。 ubuntu通常经过安装open-vm-dkms包, 并主动进行挂载就可解决共享问题。ubuntu
而对于centos虚机,这里,咱们须要修改vmtools源码中的compat_dcacche.h文件并从新安装vim
cd /tmp/vmware-tools-distrib/lib/modules/source/ tar -xf vmhgfs.tar #解压vmhgfs.tar,里面有个vmhgfs-only文件夹 cd vmhgfs-only/shared/ #进入解压后目录 vim compat_dcache.h #打开头文件
下面这块报错了,具体缘由未知windows
if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) define compat_d_count(dentry) d_count(dentry) elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) define compat_d_count(dentry) dentry->d_count else define compat_d_count(dentry) atomic_read(&dentry->d_count); endif
咱们将 #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
下面的#define 改为 define compat_d_count(dentry) d_count(dentry)
centos
改完源码后,从新归档bash
tar -cf vmhgfs.tar vmhgfs-only/ cd /tmp/vmware-tools-distrib ./vmware-install.p #从新安装vmtools。
这下成功了, 成功看到hgfs目录函数