在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目錄函數