
1. 項目概述為什么我們需要VMware Tools如果你在VMware Workstation或Fusion里跑過Ubuntu虛擬機大概率遇到過屏幕分辨率怎么調(diào)都別扭、鼠標移動卡頓、文件沒法在主機和虛擬機之間直接拖拽的情況。這些看似細碎的問題根源往往在于虛擬機缺少了一套關(guān)鍵的“驅(qū)動”和“服務(wù)”——那就是VMware Tools。今天這篇內(nèi)容我就以一個在虛擬化環(huán)境里摸爬滾打多年的老用戶身份跟你徹底聊透在Ubuntu虛擬機里安裝和卸載VMware Tools的完整流程以及背后那些官方文檔不會明說的門道。簡單說VMware Tools是一套由VMware官方提供的增強工具集。它不是一個單一的軟件而是一個包含了顯卡驅(qū)動、鼠標同步驅(qū)動、時間同步服務(wù)、共享文件夾支持、內(nèi)存氣球驅(qū)動等組件的套件。在Ubuntu這類Linux虛擬機里安裝它絕不僅僅是為了讓屏幕顯示更舒服。它更深層的價值在于提升虛擬機的整體性能和與宿主機比如你的Windows或macOS的集成度。沒有它虛擬機就像一臺缺了各種驅(qū)動的新電腦很多硬件功能都發(fā)揮不出來。那么具體解決了什么問題呢第一顯示體驗。安裝后你可以讓Ubuntu虛擬機的桌面分辨率自適應(yīng)VMware窗口大小實現(xiàn)無縫全屏告別那個固定的小窗口。第二操作流暢性。最明顯的是鼠標安裝前你需要在主機和虛擬機之間按CtrlAlt來切換捕獲安裝后鼠標可以自由進出虛擬機窗口指針移動也更跟手。第三數(shù)據(jù)交換。這是生產(chǎn)力關(guān)鍵通過啟用共享文件夾功能你可以在主機上直接訪問虛擬機里的文件反之亦然省去了用U盤或者網(wǎng)絡(luò)共享的麻煩。第四系統(tǒng)性能與穩(wěn)定性。比如時間同步能防止虛擬機時鐘漂移內(nèi)存氣球驅(qū)動能讓VMware更智能地管理虛擬機內(nèi)存提升整體資源利用效率。所以無論你是剛接觸Ubuntu的開發(fā)新手需要在隔離環(huán)境里測試代碼還是運維人員用虛擬機搭建測試服務(wù)亦或是學(xué)生用它來學(xué)習(xí)Linux系統(tǒng)給Ubuntu虛擬機裝上VMware Tools都是從“能用”到“好用”的關(guān)鍵一步。而知道如何干凈徹底地卸載它同樣重要尤其是在工具安裝失敗、版本升級或需要排查問題時。接下來我會把安裝和卸載的每一步掰開揉碎包括你可能遇到的各種“坑”和解決方案。2. 安裝前的核心準備與避坑指南安裝VMware Tools聽起來就是點幾下鼠標、敲幾條命令的事但很多新手恰恰栽在準備工作沒做好上。這一步?jīng)]做對后面的安裝過程就會錯誤百出。我們先來把地基打牢。2.1 確保虛擬機狀態(tài)與系統(tǒng)更新首先你的Ubuntu虛擬機必須是已開機并處于運行狀態(tài)而且最好是以圖形界面GUI方式登錄到了桌面環(huán)境。雖然理論上可以通過純命令行安裝但對于新手圖形界面下操作會更直觀也方便后續(xù)驗證顯示功能是否正常。緊接著在嘗試安裝任何新軟件之前更新系統(tǒng)軟件包列表并升級現(xiàn)有軟件是一個好習(xí)慣。這能確保你的系統(tǒng)擁有最新的安全補丁和依賴庫減少因軟件包沖突導(dǎo)致安裝失敗的概率。打開終端快捷鍵CtrlAltT依次執(zhí)行以下命令sudo apt update sudo apt upgrade -ysudo apt update是刷新本地的軟件包倉庫索引讓它和遠程倉庫同步。sudo apt upgrade -y則是實際升級所有可升級的軟件包-y參數(shù)表示自動確認避免安裝過程中需要頻繁手動輸入“Y”。這個過程可能會花點時間取決于你的網(wǎng)絡(luò)速度和更新包的大小。注意如果你的Ubuntu版本比較老或者apt upgrade提示有“held back”的包可能需要先使用sudo apt full-upgrade。這是一個關(guān)鍵細節(jié)被“阻止”的升級包有時會包含一些重要的內(nèi)核或系統(tǒng)組件不升級它們可能會導(dǎo)致VMware Tools的內(nèi)核模塊編譯失敗。2.2 安裝編譯環(huán)境與內(nèi)核頭文件這是整個準備環(huán)節(jié)最核心、也最容易出錯的一步。VMware Tools中有一部分驅(qū)動如顯卡驅(qū)動vmwgfx是以內(nèi)核模塊的形式存在的在安裝時需要針對你當(dāng)前正在運行的Ubuntu內(nèi)核版本進行實時編譯。因此我們必須提前安裝好編譯工具鏈和對應(yīng)版本的內(nèi)核頭文件。你需要安裝以下軟件包組sudo apt install -y build-essential sudo apt install -y linux-headers-$(uname -r)我們來拆解一下這兩條命令build-essential這是一個元軟件包它本身不包含具體軟件但會自動拉取一整套編譯所需的工具包括gccGNU編譯器、make構(gòu)建工具、libc6-devC庫開發(fā)文件等。沒有它編譯過程根本無法啟動。linux-headers-$(uname -r)這是動態(tài)獲取并安裝內(nèi)核頭文件的關(guān)鍵命令。uname -r這個命令會輸出你當(dāng)前系統(tǒng)正在運行的內(nèi)核版本號例如5.15.0-91-generic。linux-headers-加上這個版本號就是匹配你當(dāng)前內(nèi)核的、專門用于開發(fā)內(nèi)核模塊的頭文件包。必須確保安裝的頭文件版本與運行的內(nèi)核版本完全一致否則編譯時會報“找不到內(nèi)核構(gòu)建文件”之類的錯誤。實操心得我遇到過無數(shù)次安裝失敗十有八九是內(nèi)核頭文件的問題。常見的情況有兩種一是系統(tǒng)剛升級完內(nèi)核但還沒重啟uname -r顯示的是老內(nèi)核但軟件源里最新的是新內(nèi)核的頭文件二是apt沒找到完全匹配的版本。解決方法分別是首先重啟虛擬機讓新內(nèi)核生效如果重啟后還是找不到可以先用apt search linux-headers查看倉庫里有哪些版本再手動指定一個最接近的安裝。但最穩(wěn)妥的辦法還是確保系統(tǒng)更新到最新并重啟后再執(zhí)行上述命令。2.3 掛載VMware Tools安裝鏡像當(dāng)你在VMware軟件菜單欄點擊“虛擬機” - “重新安裝VMware Tools”時VMware并不會直接把軟件裝進你的Ubuntu里。它做的其實是把一個包含安裝程序的ISO鏡像文件虛擬地插入到你的虛擬機光驅(qū)中。所以我們需要在Ubuntu內(nèi)部手動“找到”這個光驅(qū)并掛載它。在較新的Ubuntu桌面版如20.04, 22.04, 24.04中當(dāng)你執(zhí)行上述操作后系統(tǒng)通常會自動彈出一個文件管理器窗口顯示光盤內(nèi)容里面就有VMwareTools-xxx.tar.gz這樣的壓縮包。如果它沒有自動彈出或者你使用的是服務(wù)器版無圖形界面就需要手動操作。首先我們需要知道這個虛擬光驅(qū)設(shè)備被識別成了什么。在終端里輸入lsblk或者sudo fdisk -l你會看到一堆磁盤設(shè)備列表。除了你的主硬盤通常是/dev/sda和它的分區(qū)外你應(yīng)該會看到一個沒有分區(qū)表、容量較小的設(shè)備比如/dev/sr0或/dev/cdrom。這個就是虛擬光驅(qū)。接下來創(chuàng)建一個用于掛載的目錄如果不存在的話然后掛載它sudo mkdir -p /mnt/cdrom # -p 參數(shù)確保目錄不存在時創(chuàng)建它 sudo mount /dev/sr0 /mnt/cdrom如果/dev/sr0提示設(shè)備忙或錯誤可以試試/dev/cdrom。掛載成功后使用ls /mnt/cdrom命令你應(yīng)該能看到光盤里的文件了核心就是那個VMwareTools-xxxx.tar.gz壓縮包。注意事項有時候特別是之前安裝過程被意外中斷后這個虛擬光驅(qū)可能處于一個“鎖定”狀態(tài)。如果你在VMware菜單里點擊“重新安裝VMware Tools”沒反應(yīng)或者掛載時出錯可以嘗試先在VMware菜單里點擊“設(shè)置” - “硬件” - “CD/DVD (SATA)”將其狀態(tài)從“已連接”改為“使用物理驅(qū)動器”再改回來或者直接“斷開連接”然后再重新點擊“重新安裝VMware Tools”。這相當(dāng)于手動“彈出”再“插入”一次光盤。3. 詳細安裝步驟與交互配置解析準備工作萬無一失后我們正式進入安裝環(huán)節(jié)。這個過程主要分為解壓、運行安裝腳本、交互配置幾個階段。我會把每個步驟的意圖和可能的選擇都解釋清楚。3.1 解壓與運行安裝腳本首先我們把安裝包從掛載的光盤復(fù)制到用戶的家目錄或其他你有寫權(quán)限的目錄然后解壓cp /mnt/cdrom/VMwareTools-*.tar.gz ~/ # 復(fù)制到當(dāng)前用戶家目錄 cd ~ # 進入家目錄 tar -xzvf VMwareTools-*.tar.gz # 解壓壓縮包解壓后會生成一個名為vmware-tools-distrib的目錄。進入這個目錄里面有一個關(guān)鍵的安裝腳本vmware-install.pl。這是一個用Perl編寫的、帶交互式配置的安裝程序。cd vmware-tools-distrib sudo ./vmware-install.pl當(dāng)你用sudo權(quán)限執(zhí)行這個腳本時真正的安裝就開始了。腳本會首先檢測你的系統(tǒng)環(huán)境然后進入一系列的問題交互。這里千萬不要無腦地一路回車理解每個問題的含義能幫你定制出最適合自己環(huán)境的安裝。3.2 關(guān)鍵交互配置選項詳解安裝腳本會提出很多問題大部分情況下對于新手我們確實可以直接按回車鍵Enter來接受默認值。但有幾個關(guān)鍵點值得你停下來思考一下安裝路徑“In which directory do you want to install the binary files?” 默認是/usr/bin。這是系統(tǒng)級的可執(zhí)行文件目錄保持默認即可。除非你有特殊的多版本管理需求否則不要改。庫文件路徑“What is the directory that contains the init directories (rc0.d/ to rc6.d/)?” 默認是/etc。這是系統(tǒng)初始化腳本的存放目錄也保持默認。運行vmware-config-tools.pl的提示 在文件復(fù)制完成后腳本會詢問你是否要運行vmware-config-tools.pl。這里必須選“yes”。這個配置腳本才是真正編譯內(nèi)核模塊、配置X Server圖形服務(wù)、設(shè)置共享文件夾等核心功能的關(guān)鍵。如果這里選“no”安裝就只完成了一半功能都無法使用。內(nèi)核頭文件路徑 配置腳本會自動搜索內(nèi)核頭文件。如果你按照我們之前的準備步驟做好了這里它會自動找到/lib/modules/$(uname -r)/build這個路徑。如果它沒找到或者列出了多個路徑讓你選請確保你選擇的路徑確實包含當(dāng)前運行內(nèi)核的頭文件。顯卡驅(qū)動X Driver配置 這是圖形功能的核心。腳本會問你是否預(yù)編譯的vmwgfx模塊可用通常選“yes”讓它嘗試。如果失敗它會嘗試從源碼編譯。編譯過程中可能會問你是否啟用高分辨率顯示、3D加速等。對于大多數(shù)桌面使用場景全部接受默認值回車是最穩(wěn)妥的。除非你明確知道你的虛擬顯卡型號如svga或需要特殊圖形功能。分辨率設(shè)置 腳本會列出很多分辨率模式讓你選。一個省事的技巧是直接輸入“0”然后回車。這通常代表“使用客戶端即VMware窗口指定的分辨率”也就是我們最想要的“自適應(yīng)分辨率”模式。這樣當(dāng)你拖動VMware窗口大小時Ubuntu桌面的分辨率會自動調(diào)整。共享文件夾配置 腳本會問你是否啟用共享文件夾功能選“yes”。然后它會詢問共享文件夾在Ubuntu系統(tǒng)中的掛載點默認是/mnt/hgfs。保持默認即可。重要提示這里的配置只是啟用了功能具體的文件夾共享需要在VMware的虛擬機設(shè)置里“選項” - “共享文件夾”添加并且虛擬機需要重啟后才能生效。整個交互過程可能會持續(xù)幾分鐘特別是編譯內(nèi)核模塊的時候。期間屏幕會快速滾動大量編譯信息只要不出現(xiàn)紅色的“ERROR”錯誤提示一般都是在正常進行。安裝完成后腳本會提示你需要重啟系統(tǒng)或重新啟動X服務(wù)圖形界面以使更改生效。我的建議是直接重啟虛擬機。這是讓所有驅(qū)動和服務(wù)特別是圖形和共享文件夾完全加載的最可靠方式。sudo reboot4. 安裝后的驗證與功能調(diào)優(yōu)重啟后你的Ubuntu虛擬機應(yīng)該已經(jīng)煥然一新。但我們不能光憑感覺需要一些方法來驗證VMware Tools是否真的在正常工作并對一些功能進行微調(diào)。4.1 基礎(chǔ)功能驗證方法檢查服務(wù)狀態(tài) 在終端中輸入以下命令可以查看VMware Tools核心服務(wù)的運行狀態(tài)systemctl status vmware-tools.service或者使用老式的命令sudo /etc/init.d/vmware-tools status如果看到“active (running)”或類似的活躍狀態(tài)說明服務(wù)已成功啟動。驗證鼠標集成 最直觀的測試把你的鼠標指針從Windows或macOS桌面直接移動到Ubuntu虛擬機窗口內(nèi)部。應(yīng)該無需按任何鍵如CtrlAlt就能無縫切換。在虛擬機內(nèi)部移動鼠標也應(yīng)該感覺流暢沒有卡頓或跳躍感。驗證顯示自適應(yīng) 嘗試拖動VMware軟件窗口的邊緣改變其大小。Ubuntu虛擬機的桌面分辨率應(yīng)該會隨之平滑地改變以填滿整個VMware窗口。你也可以在Ubuntu的“設(shè)置” - “顯示”中查看分辨率是否變成了一個與VMware窗口匹配的動態(tài)值如“1680x1050 (16:10)”而不是之前固定的“1024x768”等。驗證共享文件夾 首先在VMware軟件中為虛擬機設(shè)置一個共享文件夾例如將主機桌面的一個文件夾共享進來命名為share。然后在Ubuntu終端中查看默認的掛載點ls /mnt/hgfs/你應(yīng)該能看到一個名為share的目錄。如果可以列出其中的文件說明共享文件夾功能正常。如果看不到可能需要手動掛載或檢查VMware的共享文件夾設(shè)置。4.2 高級功能配置與問題排查即使基礎(chǔ)功能正常有時一些高級特性可能需要手動調(diào)整或遇到了小問題。時間同步問題 VMware Tools的時間同步服務(wù)vmtoolsd默認會定期將虛擬機時間與主機同步。但如果你發(fā)現(xiàn)時間仍然不準或者你需要在某些場景下如數(shù)據(jù)庫集群禁用此功能可以編輯其配置文件sudo nano /etc/vmware-tools/tools.conf找到[time]部分你可以看到syncTime “1”這樣的選項。“1”表示啟用同步“0”表示禁用。修改后需要重啟VMware Tools服務(wù)sudo systemctl restart vmware-tools共享文件夾無法訪問 如果你在/mnt/hgfs下看不到共享的文件夾除了檢查VMware設(shè)置外一個常見的解決方法是手動重新掛載HGFS文件系統(tǒng)sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtypevmhgfs-fuse,allow_other或者確保open-vm-tools的共享文件夾模塊已加載如果你安裝的是open-vm-tools見下文sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other如果還是不行檢查內(nèi)核模塊是否加載lsmod | grep vmw應(yīng)該能看到vmw_vmci、vmw_vsock_vmci_transport、vmwgfx等模塊。關(guān)于Open-VM-Tools的特別說明 在較新版本的Ubuntu尤其是18.04及以后中你可能會發(fā)現(xiàn)軟件倉庫里有一個名為open-vm-tools的包。這是VMware Tools的開源實現(xiàn)由VMware官方維護并直接集成到Linux發(fā)行版的倉庫中。對于大多數(shù)桌面用戶我強烈推薦直接使用系統(tǒng)倉庫安裝它而不是從ISO安裝sudo apt update sudo apt install open-vm-tools open-vm-tools-desktopopen-vm-tools提供了核心服務(wù)而open-vm-tools-desktop則包含了圖形界面所需的依賴如分辨率自適應(yīng)、鼠標集成。它的好處是安裝極其簡單無需手動編譯內(nèi)核模塊并且能隨著系統(tǒng)更新自動升級。其功能與傳統(tǒng)的VMware Tools基本一致。如果你是從ISO安裝后遇到問題卸載后再安裝open-vm-tools也是一個很好的解決方案。5. 徹底卸載VMware Tools的完整流程有安裝就有卸載。當(dāng)你需要升級VMware Tools版本、安裝失敗需要重來、或者打算改用open-vm-tools時一個干凈的卸載就至關(guān)重要。殘留的驅(qū)動和配置文件可能會引起各種奇怪的問題。5.1 標準卸載流程如果你是通過運行vmware-install.pl腳本安裝的那么通常它會自帶一個卸載腳本。進入當(dāng)初安裝時解壓的目錄如果你沒刪的話cd ~/vmware-tools-distrib sudo ./vmware-install.pl --uninstall或者更常見的卸載腳本位置在/usr/binsudo /usr/bin/vmware-uninstall-tools.pl運行卸載腳本后它會提示你確認并開始刪除安裝的文件、停止服務(wù)、移除內(nèi)核模塊等。按照提示操作即可。5.2 手動清理殘留文件與內(nèi)核模塊有時候卸載腳本可能運行不完整或者你找不到卸載腳本了比如安裝目錄被刪除。這時就需要手動清理。這是一個需要謹慎操作的過程。停止服務(wù)sudo systemctl stop vmware-tools # 對于systemd系統(tǒng) sudo /etc/init.d/vmware-tools stop # 對于SysVinit系統(tǒng)移除內(nèi)核模塊 首先檢查當(dāng)前加載了哪些VMware相關(guān)的內(nèi)核模塊lsmod | grep vmw常見的模塊有vmw_vmci,vmw_vsock_vmci_transport,vmw_balloon,vmwgfx等。要移除它們需要重啟系統(tǒng)。但我們可以先嘗試手動卸載重啟后失效用于臨時測試sudo rmmod vmwgfx vmw_vmci vmw_vsock_vmci_transport vmw_balloon注意模塊間可能有依賴關(guān)系如果提示“Resource busy”或依賴錯誤可以忽略重啟后自然會解除。刪除相關(guān)文件和目錄 這是一項繁瑣但必要的工作。你需要查找并刪除VMware Tools安裝時散落在各處的文件。以下是一些常見的目錄在刪除前請務(wù)必確認# 刪除安裝目錄如果存在且確認無用 sudo rm -rf /usr/lib/vmware-tools # 刪除配置文件目錄 sudo rm -rf /etc/vmware-tools # 刪除啟動腳本 sudo rm -f /etc/init.d/vmware-tools sudo rm -f /etc/systemd/system/vmware-tools.service # 如果存在 # 刪除二進制命令謹慎確保沒有其他程序依賴 sudo rm -f /usr/bin/vmware-* # 刪除庫文件謹慎 sudo rm -rf /usr/lib/vmware* # 刪除共享文件夾掛載點如果確定不再使用 sudo umount /mnt/hgfs 2/dev/null # 先嘗試卸載 sudo rmdir /mnt/hgfs 2/dev/null重要警告rm -rf命令是強制刪除且不可恢復(fù)的。在執(zhí)行前特別是刪除/usr/bin和/usr/lib下的文件時最好先用ls命令查看一下確保你要刪除的確實是vmware-開頭的文件。誤刪系統(tǒng)關(guān)鍵命令可能導(dǎo)致系統(tǒng)功能異常。清理內(nèi)核模塊文件 編譯好的內(nèi)核模塊通常存放在/lib/modules/$(uname -r)/misc/目錄下文件名類似vm*.ko。你可以進入該目錄查看并刪除cd /lib/modules/$(uname -r)/misc/ ls -la vm*.ko # 查看 sudo rm vm*.ko # 刪除請再次確認文件列表刪除后需要更新內(nèi)核的模塊依賴關(guān)系sudo depmod -a5.3 卸載后的系統(tǒng)狀態(tài)檢查與重啟完成上述清理后建議執(zhí)行一次系統(tǒng)重啟。重啟后進行以下檢查再次運行systemctl status vmware-tools或檢查/etc/init.d/確認服務(wù)已不存在。運行l(wèi)smod | grep vmw確認沒有VMware相關(guān)的內(nèi)核模塊被加載。檢查/var/log/vmware-*等日志目錄是否還有新日志生成。如果所有跡象都表明VMware Tools已被移除那么你的系統(tǒng)就回到了一個“干凈”的狀態(tài)。此時你可以選擇重新安裝VMware Tools或者轉(zhuǎn)向安裝更為方便的open-vm-tools。我的個人體會在經(jīng)歷了多次安裝和卸載后我現(xiàn)在對于個人使用的Ubuntu桌面虛擬機幾乎無一例外地選擇直接apt install open-vm-tools-desktop。它省去了編譯內(nèi)核模塊的麻煩與系統(tǒng)包管理器的集成度更高更新也方便。只有在一些非常老的Ubuntu版本或者需要某些極其特定的、只有完整版VMware Tools才提供的實驗性功能時我才會考慮使用ISO安裝的方式。對于新手而言從open-vm-tools開始嘗試無疑是更平滑、更少坑的選擇。