您的位置:首页 > 运维架构 > Linux

Vmware平台,Windows实机和Centos虚机共享目录hgfs问题的方法,不同于Ubuntu

2015-07-05 00:00 731 查看
在Vmware搭载Centos安装vmtools过程中有如下报错

/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包, 并主动进行挂载就可解决共享问题。

而对于centos虚机,这里,我们需要修改vmtools源码中的compat_dcacche.h文件并重新安装

cd /tmp/vmware-tools-distrib/lib/modules/source/
tar -xf vmhgfs.tar #解压vmhgfs.tar,里面有个vmhgfs-only文件夹
cd vmhgfs-only/shared/ #进入解压后目录
vim compat_dcache.h #打开头文件

下面这块报错了,具体原因未知

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)


改完源码后,重新归档

tar -cf vmhgfs.tar vmhgfs-only/
cd /tmp/vmware-tools-distrib
./vmware-install.p #重新安装vmtools。

这下成功了, 成功看到hgfs目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息