201705011652在 CentOS 7.3 minimal 最小安裝下安裝 vmtools

 不管是安裝 Windows 或 Linux 幾乎都是第一時間就先安裝 vmtools ,在過往也幾乎不會遇到任何問題,不過今天裝 CentOS 7.3 1611 在最小安裝下卻發生 vmtools 無法用下一步大法直接安裝完成,於是記錄一下解決方式。

[基本安裝]

最小安裝下基本的 gcc, make, lib 都會沒有安裝,所以第一部先安裝基本環境
sudo yum install gcc gcc-c++ automake make net-tools

接著可能會出現錯誤

Searching for a valid kernel header path...
The path "" is not a valid path to the 3.10.0-514.el7.x86_64 kernel headers.
Would you like to change it? [yes]
Enter the path to the kernel header files for the 3.10.0-514.el7.x86_64 kernel?

解決
當中的「3.10.0-514.el7.x86_64」就是 uname –r 所執行出來的版本
執行 sudo  yum -y install kernel-devel-$(uname -r) kernel-headers      來安裝 「kernel-devel.x86_64 0:3.10.0-514.el7」

有可能這樣就可以正常安裝 vm tools ,但如果發生下面的問題
接著可能會出現錯誤    ref. https://communities.vmware.com/thread/546878 
In file included from /tmp/modconfig-prtCgQ/vmhgfs-only/inode.c:36:0:
/tmp/modconfig-prtCgQ/vmhgfs-only/inode.c: In function ‘HgfsPermission’:
/tmp/modconfig-prtCgQ/vmhgfs-only/./shared/compat_dcache.h:57:38: error: ‘struct dentry’ has no member named ‘d_count’
#define compat_d_count(dentry) dentry->d_count
                                                             ^
/tmp/modconfig-prtCgQ/vmhgfs-only/inode.c:1852:23: note: in expansion of macro ‘compat_d_count’
int dcount = compat_d_count(dentry);
                              ^
make[2]: *** [/tmp/modconfig-prtCgQ/vmhgfs-only/inode.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [_module_/tmp/modconfig-prtCgQ/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.10.0-514.el7.x86_64'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/modconfig-prtCgQ/vmhgfs-only'
The filesystem driver (vmhgfs module) is used only for the shared folder feature. The rest of the software provided by VMware Tools is designed to work independently of this feature.
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 ]

這個問題出在於 compat_dcache.h 要將 kernel_version 從 19 換為 10 就可以正常執行了
LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)  -> KERNEL_VERSION(3, 10, 0)

但...問題在於 compat_dcache.h 在 解壓縮後的 vmware-tools-distrib/lib/modules/source/vmhgfs.tar,所以解決步驟為 
S1:cd /tmp
S2:tar zxvf /tmp/VMwareTools-9.4.10-2068191.tar.gz
S3:cd /tmp/vmware-tools-distrib/lib/modules/source/
S4:tar xvf vmhgfs.tar
S5:修改 dcache.h
S6:然後將 vmhgfs.tar 再包裝回去
S7:再重新執行 vmware-install.pl

網路上有熱心人士把這一連串寫成的 shell script ,讓你可以一鍵搞定 (資料來源:http://www.madorn.com/installing-vmwaretools-centos7.html#.WQbpKhN96Uk )
把下面的內容寫到 vi vmt.sh ,然後 chmod 755 vmt.sh 然後執行他
sudo ./vmt.sh  

#!/bin/bash
echo “新增資料夾掛載 vmtools 光碟
mkdir /tmp/vmfusion

echo “新增資料夾來解壓縮 vmtools 安裝檔
mkdir /tmp/vmfusion-archive

echo “掛載 vmtools 安裝光碟
mount -t iso9660 /dev/sr0 /tmp/vmfusion
echo “
解壓縮 vmtools 安裝檔
tar xzfv /tmp/vmfusion/VMwareTools-*.tar.gz -C /tmp/vmfusion-archive

echo “進一步解壓縮需要修改的 vmhgfs.tar”
tar xfv /tmp/vmfusion-archive/vmware-tools-distrib/lib/modules/source/vmhgfs.tar -C /tmp/vmfusion-archive/vmware-tools-distrib/lib/modules/source/

echo “ sed 進行修改
sed -i -e '/KERNEL_VERSION/{s/3, 11, 0/3, 10, 0/}' /tmp/vmfusion-archive/vmware-tools-distrib/lib/modules/source/vmhgfs-only/shared/compat_dcache.h

echo “刪除原本的 vmhgfs.tar”
rm -rf /tmp/vmfusion-archive/vmware-tools-distrib/lib/modules/source/vmhgfs.tar

echo “將修改後的內容重新包裝成 vmhgfs.tar“
tar cfv /tmp/vmfusion-archive/vmware-tools-distrib/lib/modules/source/vmhgfs.tar -C /tmp/vmfusion-archive/vmware-tools-distrib/lib/modules/source/ vmhgfs-only

echo “刪除暫時的 vmhgfs-only 資料夾
rm -rf /tmp/vmfusion-archive/vmware-tools-distrib/lib/modules/source/vmhgfs-only/

echo “開始安裝 vmtools --default 參數執行
/tmp/vmfusion-archive/vmware-tools-distrib/vmware-install.pl --default

echo “卸載光碟
umount /tmp/vmfusion

echo “刪除暫時目錄
rm -rf  /tmp/vmfusion

rm -rf  /tmp/vmfusion-archive

 

經過上面動作,就可以在 CentOS 7 上正確的安裝 VMTools 。
~End

 

回應
關鍵字
Google Search
Google
累積 | 今日
loading......
平均分數:0 顆星
投票人數:0
我要評分:
Google