環境與工具
- 宿主機:Windows 7 + VMware Workstation 11
- 客體機:CentOS 7.3 (Kernel 3.10.0-514)
- 軟體:JDK 1.8、Apache Tomcat 8/9
關鍵阻點:vmhgfs 模組編譯失敗
安裝 VMware Tools 時,`HgfsWbRequestWait` 函數因內核版本判斷錯誤導致 `wait_on_bit` 參數過多編譯錯誤。
修復步驟
- 掛載 Tools ISO:`mount /dev/cdrom /mnt/cdrom`
- 解壓 `VMwareTools-*.tar.gz`,進入 `vmware-tools-distrib/lib/modules/source`
- 解壓 `vmhgfs.tar` → 修改 `vmhgfs-only/page.c` 第 1619 行附近:
將 `#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)` 整段判斷移除,直接保留 `HgfsWbRequestWaitUninterruptible` 參數呼叫
- 重打包:`tar cf vmhgfs.tar vmhgfs-only`
- 執行 `./vmware-install.pl` 重新安裝
- 驗證:`/mnt/hgfs` 出現共享資料夾內容
JDK 1.8 安裝與環境變量
# 解壓至 /usr/local/java
tar -zxvf jdk-8uXXX-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk1.8.0_XXX /usr/local/java
# /etc/profile 追加
JAVA_HOME=/usr/local/java
JRE_HOME=$JAVA_HOME/jre
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH
# 生效
source /etc/profile
java -version # 驗證
誤改 /etc/profile 導致命令失效自救
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# 恢復權限後立即修正 profile
Tomcat 部署驗證
- 解壓 Tomcat 至 `/usr/local/tomcat`
- `bin/startup.sh` 啟動
- 瀏覽器訪問 `https://CentOS_IP:8080` 出現貓頁面即成功
- 防火牆開放 8080:`firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload`
經驗總結
- 離線環境優先解決 vmtools 共享資料夾,否則檔案傳輸極其痛苦
- CentOS 7 Kernel 3.10 需手動修補 vmhgfs 源碼,新版 VMware Tools 或已修復
- 環境變量配置謹慎,備份 `/etc/profile`