衆所周知,在win7主機與linux虛擬機之家開啓文件夾共享,可以省去每次都ftp的麻煩。在測試的時候,可以方便很多。linux
以前我在宿主機win7裏面安裝了vmware,而後裝了一個centos虛擬機。而後正常安裝了 vmware-tools,一切順利,最後也出現了「Enjoy」 的提示。可是就是死活沒法與win7共享文件夾。這在之前是沒有發生過的事情。在將vmware卸載重裝升級爲 vmware 10 以後,問題依舊。最近因爲是在沒法忍受,怒上心頭,誓要解決該問題。c++
在網上參考了這兩篇文章(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),將兩篇文章結合起來看,就解決了個人問題。爲避免用戶本身花時間總結,下面我說出個人探索歷程,但願可以給看官一點啓發。之後即便遇到的不是我這同一種類型的錯誤,也能用相似的辦法解決。centos
現象:設置了文件夾共享,可是在 虛擬機的 /mnt/hgfs目錄裏面並無個人共享文件夾。因而嘗試執行 vmware-toolbox-cmd 命令,看看 vmware-tools 是否正常。測試
問題:執行 vmware-toolbox-cmd 命令直接報錯:
vmware-toolbox-cmd: Missing command
Try 'vmware-toolbox-cmd help' for more information..net
此時我就想到從新安裝 vmware-tools,因而執行 sudo vmware-install.pl。看到這麼幾句話:orm
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 ]htm
意思是說,若是想開去 文件夾共享的特性,在確保安裝了幾個庫文件以後,執行 vmware-config-tools.pl 來安裝。這提示仍是很到位的。而後就是安裝這幾個庫了: sudo yum install kernel-headers make gcc gcc-c++ kernel-devel binutils. 而後執行 vmware-config-tools.pl 腳本,卻報以下錯誤:blog
/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_countget
提示說這個頭文件有問題!可是我想去/tmp/modconfig-dBTDLE/vmhgfs-only/./shared 目錄裏面找到compat_dcache.h文件,發現 /tmp 目錄裏面壓根就沒有那個文件夾啊,它是臨時生成的。把這一行報錯百度以後,找到了第一篇文章,而後裏面的這一句: 修改vmhgfs-only/compat_dcache.h 。但是找遍了全部的目錄,也沒有發現 這個東西。因而繼續找,找到了第二篇文章,第二篇文章裏面雖說的是另一個問題的解決辦法,找的文件不是 compat_dcache.h,而是 compat_slab.h ,可是 它卻告訴了我 vmhgfs-only 這個文件夾是怎麼來的!因而,將這兩篇文章結合起來看,我就知道我應該進入個人 vmware 文件夾cmd
/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 便可。