
簡介面向虛擬化運維與管理人員提供 ESXi 8.0 Update 2 的離線 Depot 升級包版本號為 22380479適用于無外網(wǎng)或網(wǎng)絡受限環(huán)境下的補丁安裝、主機升級及集群批量維護。壓縮包共包含 124 個文件主體為 121 個 VIB 驅動與功能組件覆蓋基礎內核、虛擬化底層、vSAN 分布式存儲、vSAN 健康檢查、集群存儲、傳輸通信、加密驅動等模塊另有 2 個 XML 描述文件用于元數(shù)據(jù)解析以及 1 個 ZIP 內層離線倉庫文件可通過 vSphere Lifecycle Manager 或 ESXCLI 命令直接離線導入與部署。資源整體約 587.17 MB已有 845 人學習下載。該離線包可幫助管理員獲得官方 8.0U2 補丁基線搭建內部軟件源以批量升級多臺主機避免外網(wǎng)下載超時或合規(guī)風險也適合在隔離測試環(huán)境驗證新版本特性、演練升級回退為生產環(huán)境補丁維護提供可靠保障。1. 拿到 VMware ESXi 8.0U2 離線包先搞清楚它到底是干什么的很多剛接觸虛擬機管理的同行一看到VMware-ESXi-8.0U2-22380479-depot.zip這種文件就以為是 ESXi 的安裝鏡像直接拿它去裝系統(tǒng)結果折騰半天裝不上。這個文件確實是 ESXi 8.0 U2 的東西但它的定位是離線升級包不是安裝盤。它的真實用途是讓你在沒有外網(wǎng)、沒有 VMware 官方源的情況下把一臺已經運行的 ESXi 主機從舊版本升級到 8.0U2 build 22380479。只要你有這個 zip再配合esxcli software命令就能在隔離網(wǎng)絡里完成整臺宿主機內核、驅動、VMware Tools 的一體化更新。適合機房在內網(wǎng)、無法訪問官方倉庫的虛擬化運維場景也適合離線批量給多臺主機打補丁的團隊。2. 選型之前先理解 depot 包它和 ISO 鏡像、在線倉庫到底差在哪2.1 depot 包的文件形態(tài)zip 里裝的是 VIB 和 profile這個 zip 不是普通壓縮包它的內部結構是 VMware 定制的 depot 倉庫格式。解開之后里面是 metadata 文件、一堆.vib文件VMware Installation Bundle也就是驅動、內核模塊、工具集的小安裝包以及描述整個版本面貌的 profile 文件。用unzip -l看文件列表會看到類似這樣的結構unzip -l VMware-ESXi-8.0U2-22380479-depot.zip | head -40 # 輸出里會有一堆 vmw-* 開頭的 .vib 文件 # 以及 metadata.xml 這樣的包描述文件為什么要理解這個結構因為升級時你執(zhí)行的是esxcli software profile install -d depot路徑 -p profile名這里的-p參數(shù)指向的就是 depot 包里的 profile 名稱而不是 zip 文件名本身。很多人第一次升級時隨便寫了一個 profile 名結果提示找不到就是因為沒先列出 depot 里的 profile 列表。profile 相當于一個「版本快照」它定義了安裝這個版本時默認選哪些 VIB、不選哪些。同一個 depot 包里可能有多個 profile比如標準版、帶定制驅動的版本升級前必須確認目標 profile 的名稱和你的授權模式一致。然后要注意一點depot 包是用于esxcli命令的升級場景而 ESXi ISO 鏡像用于全新安裝installer.sh也能用 ISO 做升級但那是走 Installer 的安裝引導程序適用面比esxcli窄尤其是在已有大量配置和 VM 運行的-production 環(huán)境中操作起來很別扭。所以我一般只在裸機裝機時用 ISO生產環(huán)境升級一律用 depot 包。2.2 離線升級與在線升級的取舍為什么非要用離線包在線升級走的是esxcli software profile update -d https://host/vmware-depot這種形式也就是說主機要能直接訪問 VMware 官方在線倉庫。但實際運維環(huán)境里真正允許 ESXi 管理網(wǎng)絡直連公網(wǎng)的機房少之又少——要么是等保要求隔離要么是客戶網(wǎng)絡策略禁止主機出外網(wǎng)要么是跨地域的網(wǎng)絡延遲實在無法接受。這個時候離線包就成了唯一能走通的路。離線升級還有個隱含好處版本可控。在線升級每次拉到的 profile 狀態(tài)是動態(tài)的如果倉庫端點調整了可能這回升級的內容和上回不一樣出了問題不好復現(xiàn)。depot 文件一旦下載下來就固定了測試環(huán)境和生產環(huán)境用同一個文件、同一個 profile升級行為可以完全一致。所以選型結論很簡單內網(wǎng)隔離環(huán)境、批量多主機升級、要求版本可復現(xiàn)就選離線 depot 包方案單臺實驗機器且網(wǎng)絡可達官方源在線升級更省事但生產環(huán)境我建議還是走離線路線穩(wěn)。3. 升級前必須做足的功課版本確認、兼容性檢查和配置備份3.1 先確認當前版本和 profile別拿錯升級路徑拿到離線包之后第一件事不是上傳而是確認當前主機的版本基線。這一步決定了你是原地升級、跨版本升級還是需要先升到中間版本。ESXi 8.0U2 之前還有 8.0、8.0U1理論上 7.0U3 可以直接升 8.0U2但如果你是 6.x 的老版本就必須要先升級到 7.0U3再升到 8.0U2。這個坑在實際項目里踩過不少次有一次某個機房的幾臺舊機器還在 6.7同事直接拷 8.0U2 的包過去升級結果esxcli報了一堆 VIB 依賴錯誤最后老老實實先升 7.0U3 再升 8.0。# 查看詳細版本信息包含 build 號和更新級別 vmware -vl # 查看當前激活的 profile 名稱這個要和升級后的目標對比 esxcli software profile get執(zhí)行vmware -vl會輸出類似VMware ESXi 8.0U1 build 21495797這樣一行字重點看 build 號。esxcli software profile get則展示當前主機應用的 profile 名稱和對應的 VIB 數(shù)量這個就是舊版本的全家桶清單。參數(shù)說明vmware -vl沒有參數(shù)就是個版本打印工具esxcli software profile get的核心意義是告訴你當前這臺機器處于什么「軟件組合狀態(tài)」升級完成后可以拿輸出和升級前做對比快速確認有哪些 VIB 更新了。3.2 硬件兼容性這是升級翻車的頭號原因別省這一步ESXi 8.0 的一大特點是網(wǎng)絡驅動變化巨大。8.0 開始 vmnic 的命名規(guī)則變了很多老網(wǎng)卡驅動被移除部分只在 ESXi 7.0 時代還正常跑的板載網(wǎng)卡升級到 8.0 之后直接識別不出來導致主機重啟之后管理 IP 消失、失聯(lián)。所以升級前必須做兩件事一是對照兼容性列表HCL核對服務器型號、網(wǎng)卡型號、存儲控制器型號二是檢查當前主機上的網(wǎng)卡驅動 VIB 情況。# 列出當前主機所有 VIB 中跟網(wǎng)卡相關的驅動 esxcli software vib list | grep -i net # 列出存儲控制器驅動 esxcli software vib list | grep -i sata esxcli software vib list | grep -i nvme這里解釋一下grep -i net的作用把 VIB 名稱里包含 net 字樣的驅動都篩查出來比如net50、net-e1000e、net-ixgbe等。如果目標主機用的是比較老的 e1000e 驅動而 8.0U2 的 depot 包里已經把它移出默認 profile你就需要額外確認自己的網(wǎng)卡是否還能被新版本支持或者考慮打定制驅動。別在這上面想當然很多「升級完主機失聯(lián)」的血淚教訓本質上就是驅動兼容性問題不是升級過程的問題。還有一個細節(jié)存儲控制器。如果服務器用的是老款 SAS 控制器或非主流廠商的 RAID 卡升級前一定要核對 HCL。ESXi 7.0 還能靠兼容模式驅動跑起來的8.0 里可能直接不加載。升級完成后主機無法從本地存儲引導就只能進維護模式重新分區(qū)非常痛苦。3.3 配置備份花五分鐘做一次備份給自己留張后悔藥升級本質上是替換系統(tǒng)分區(qū)里的軟件組合。雖然 ESXi 的設計是升級不會動配置和 VM 文件但實際操作中因為意外斷電、驅動異常導致的引導失敗并不少見。所以備份配置是升級前必須走的一步而且這一步成本極低。# 將當前主機的配置備份打包到指定目錄 vim-cmd hostsvc/firmware/backup_config # 或者備份到遠程位置 mkdir -p /vmfs/volumes/datastore1/backup # 將生成的備份文件拷貝到共享存儲防止本機磁盤損壞時丟失 cp /tmp/configBundle-*.tgz /vmfs/volumes/datastore1/backup/vim-cmd hostsvc/firmware/backup_config會把主機的網(wǎng)絡配置、存儲配置、用戶權限、vSwitch 設置打包成一個 tgz 文件輸出路徑會直接顯示在命令回顯里。這個備份是回滾配置的基礎萬一升級后需要恢復到升級前的網(wǎng)絡狀態(tài)用vim-cmd hostsvc/firmware/restore_config就能還原。參數(shù)說明backup_config沒有額外參數(shù)但它生成的文件名里帶主機名和時間戳。注意備份文件默認生成在/tmp而/tmp是內存盤重啟后內容會丟所以必須立刻拷貝到持久化存儲里。這一點很多人不知道備份完就放那里了結果主機一重啟備份也沒了。4. 核心動手環(huán)節(jié)上傳 depot 包、校驗 profile、執(zhí)行升級4.1 把 depot 包傳到數(shù)據(jù)存儲并驗證文件完整性先把 zip 包上傳到 ESXi 主機的 datastore 里。一般是傳到本地 VMFS 卷也可以傳到共享存儲。上傳方式很多我常用的是 WinSCP 或 SCP路徑放在/vmfs/volumes/datastore1/下面建一個upgrade目錄單獨存放避免和數(shù)據(jù)文件混在一起。# 先看 datastore 名稱和可用空間確認空間足夠 df -h /vmfs/volumes/datastore1 # 創(chuàng)建一個專門存放升級包的目錄 mkdir -p /vmfs/volumes/datastore1/upgrade # 用 scp 從管理機推送到 ESXi在管理機上執(zhí)行 scp /local/path/VMware-ESXi-8.0U2-22380479-depot.zip rootesxi-ip:/vmfs/volumes/datastore1/upgrade/文件傳完之后最好做一次 MD5 校驗防止傳輸過程中文件損壞。有些離線包體積在 3GB 左右大文件長時間傳輸難免出錯。校驗方法是在 ESXi 端用esxcli自帶的校驗或者依賴 depot 包安裝時的內部元數(shù)據(jù)完整性檢查如果包損壞esxcli會直接報錯不會動到系統(tǒng)。4.2 列出 depot 包內可用 profile確認升級目標這一步是升級操作前的最后一道檢查。執(zhí)行下面的命令depot 包里的所有 profile 名稱會列出來。需要重點關注的是 profile 名稱末尾是standard、s-standard還是別的定制串這決定了命令怎么寫。# 列出 depot 包里的所有 profile 版本 esxcli software sources profile list -d /vmfs/volumes/datastore1/upgrade/VMware-ESXi-8.0U2-22380479-depot.zip這個命令輸出比我們肉眼從文件名猜到的要多。同一個 depot 包往往會包含多個類似但不完全相同的 profile比如ESXi-8.0U2-22380479-standard和ESXi-8.0U2-22380479-no-tools。-d參數(shù)指定 depot 路徑路徑必須是絕對路徑且要能被當前 ESXi 直接讀取。確認好你要的 profile 名稱之后再執(zhí)行正式的升級安裝。4.3 執(zhí)行升級安裝install 命令的完整參數(shù)解讀這里有一個關鍵概念——esxcli software profile install和update的區(qū)別install是強制將當前主機切換到指定 profile 的狀態(tài)無論舊版本是什么它會升級、降級或刪除所有不一致的 VIB把主機最終校準到目標 profileupdate則只升級版本號更高的 VIB不會處理降級或刪除。我們離線升級的場景下通常用install因為它能處理跨小版本的依賴變化更徹底。# 將主機升級到 ESXi 8.0U2 目標 profile并允許自動移除沖突的舊 VIB esxcli software profile install \ -d /vmfs/volumes/datastore1/upgrade/VMware-ESXi-8.0U2-22380479-depot.zip \ -p ESXi-8.0U2-22380479-standard \ --ok-to-remove參數(shù)拆解-d指向 depot 包完整絕對路徑位置不能寫錯。-p指定目標 profile 名稱必須來自上一步profile list的輸出不能自己憑記憶寫。--ok-to-remove允許升級過程移除不再被依賴的舊 VIB。不加這個參數(shù)時如果系統(tǒng)檢測到有舊 VIB 會被新 profile 替換掉會直接中止。建議加上但要注意它會刪除可能影響其他軟件的功能如果是特殊定制驅動環(huán)境要謹慎。執(zhí)行完成后系統(tǒng)會提示你是否需要重啟。升級命令執(zhí)行完畢輸出類似Installation Result的消息里面會列出每個 VIB 的狀態(tài)VIBs Installed、VIBs Updated、VIBs Removed??吹竭@些字段后主機的軟件組合就已經變成 8.0U2 了但生效必須重啟。# 確認沒有報錯后重啟主機 reboot這里提醒一個細節(jié)如果這臺主機是被 vCenter 納管的重啟前最好先把主機置于維護模式然后在 vCenter 里把該主機斷開再重啟否則 vCenter 那邊會有連接告警雖然不影響最終升級但會給監(jiān)控帶來噪音。我自己習慣的操作是在 vCenter 里通過「進入維護模式」把主機負載遷走再通過 SSH 執(zhí)行升級命令最后讓 vCenter 自動處理主機的重連。4.4 升級命令失敗時先從日志里找原因執(zhí)行升級過程中如果輸出報錯信息不要慌著反復重試先去翻日志。ESXi 會把升級過程的詳細日志寫在/var/log/esxupdate.log和/var/log/hostd.log里。最常見的失敗原因是 VIB 依賴不滿足、空間不足、depot 包損壞這幾類。# 查看升級日志的最后 100 行 tail -100 /var/log/esxupdate.log空間不足是離線升級里比較容易翻車的點ESXi 系統(tǒng)分區(qū)預留空間很小部分老版本升級 8.0U2 時需要的臨時空間比較大如果系統(tǒng)分區(qū)可用空間不足會在初始校驗階段就報Not enough space on filesystem。遇到這種情況要先清理/bootbank和/altbootbank下不再需要的舊 VIB 文件或者用esxcli software vib remove清理冗余驅動。不過這個操作要小心別把還在用的驅動刪了。5. 避坑指南離線升級 ESXi 8.0U2 最容易踩的六個坑5.1 網(wǎng)卡驅動兼容性導致升級后失聯(lián)現(xiàn)象主機升級完成后重啟管理 IP ping 不通主機直接黑了需要物理接顯示器或者通過 iLO/IPMI 才能看到系統(tǒng)已經起來了但網(wǎng)卡狀態(tài)是 down。原因ESXi 8.0 默認移除了部分老舊網(wǎng)卡驅動的支持尤其是部分舊版板載 Realtek、Intel I219 系列網(wǎng)卡原本在 7.0 下用的驅動在 8.0U2 的默認 profile 里直接不存在了。解決升級前往/etc/vmware/esx.conf和esxcli software vib list里確認網(wǎng)卡驅動名提前去廠商官網(wǎng)下載對應 ESXi 8.0 驅動 VIB打進 depot 包生成新 profile或者在升級命令中額外指定-d多個 depot 源讓它一起安裝。有人說「升級后加驅動不就行了」但那是馬后炮主機都失聯(lián)了你還怎么加驅動所以驅動檢查必須前置。5.2 vCenter 納管的主機升級后在 vCenter 里顯示連接不上現(xiàn)象升級完成并重啟后主機本身正常、虛擬機也正常跑但 vCenter 里這臺主機顯示「未響應」或「已斷開連接」。原因升級期間主機和 vCenter 之間的 agent 通信中斷并且軟件組合變化后 vCenter 需要重新識別。正常流程應該先在 vCenter 里把主機置于維護模式再升級重啟后 vCenter 會自動重連如果跳過了這些步驟重連偶爾會失敗。解決在 vCenter 里對這臺主機執(zhí)行「斷開連接」再「重新連接」一般就能恢復。如果還是不行重啟 hostd 服務/etc/init.d/hostd restart和/etc/init.d/vpxa restart注意 vpxa 是從 vCenter 安裝后才有的服務檢查別遺漏。5.3 profile 名寫錯導致命令直接報錯現(xiàn)象執(zhí)行esxcli software profile install后報Profile not found或No such profile。原因-p參數(shù)要求的是 depot 包 metadata 里的 profile 名稱不是 zip 文件名。很多文檔里寫的一定要確認但總有人圖省事自己猜一個。解決嚴格執(zhí)行「先 list 再 install」兩步走把esxcli software sources profile list的輸出復制粘貼進-p參數(shù)不要手打。這條看起來很簡單但確實是高頻翻車點。5.4 VIB 依賴報錯提示需要其他驅動才能繼續(xù)現(xiàn)象升級執(zhí)行到一半報某個 VIB 需要依賴另一個不存在的 VIB 從而中止。原因環(huán)境里有第三方定制驅動、舊版驅動和新版 depot 包的 VIB 形成依賴循環(huán)或缺口。離線包只是官方標準 VIB 集如果宿主機有額外安裝的 OEM 驅動這個矛盾就會暴露。解決先執(zhí)行esxcli software vib list把所有非官方 VIB 名稱找出來確認升級過程中是否會被移除。需要保留的驅動必須找到對應 8.0 版本重新封裝進 depot再執(zhí)行升級。這個過程比較繁瑣建議在測試機先做一遍。5.5 升級后提示無法引導或引導卡死現(xiàn)象重啟后狀態(tài)停留在引導加載器界面或者反復重啟。原因ESXi 雙引導分區(qū)的機制導致升級時/bootbank寫入了新內核但/altbootbank里還是舊內核校驗不一致時引導器無法找到可用的內核。這個原因相對少見多發(fā)生在磁盤異?;蛏壷型緮嚯?。解決在引導菜單選擇「舊版本」先進入系統(tǒng)然后重新執(zhí)行一次升級命令讓它重寫兩個引導分區(qū)。如果兩個分區(qū)都進不去就得用 ESXi 安裝 ISO 啟動進入救援模式從備份恢復。這正是升級前備份配置的價值所在。5.6 磁盤空間滿導致升級中途中斷現(xiàn)象升級初始階段報Not enough space或者是升級到一半提示寫入失敗。原因ESXi 系統(tǒng)分區(qū)容量很小舊版系統(tǒng)上可能堆積了多輪補丁留下的臨時文件。離線包體積大解壓和寫入需要臨時空間翻倍。解決升級前用df -h /bootbank和df -h /altbootbank查看余量。如果空間不足在/bootbank里清理以vmtb-或vmw-開頭的臨時 VIB 文件。保守做法是先把當前正常運行的配置做好備份刪除/var/log里超過一個月的日志再重試升級。這里尤其注意不要手動刪除/bootbank里的.vib文件只清除臨時文件。6. 升級完成后的驗證清單與回滾技巧主機重啟之后先別急著跑業(yè)務驗證按順序走一遍下面的檢查。先是版本確認登錄 ESXi 后執(zhí)行# 確認版本號和 build 號已經更新到目標版本 vmware -vl # 確認當前激活的 profile 是 ESXi-8.0U2-22380479-standard esxcli software profile get如果版本和 build 號和 depot 包對應上了說明系統(tǒng)層面升級成功。接下來要驗證的是網(wǎng)絡和虛擬機狀態(tài)。esxcli network ip interface list確認管理 IP 正常esxcli vm process list確認所有虛擬機都在運行列表中。有些時候升級后 host 正常但虛擬機沒自動拉起來這通常是因為主機在維護模式下重啟。驅動驗證別只看vmware -vl要確認具體的關鍵驅動版本確實變了# 查看所有網(wǎng)卡驅動當前版本和升級前的輸出做對比 esxcli network nic list # 查看存儲適配器是否正常識別 esxcli storage core adapter list最后一步是功能冒煙測試登錄虛擬機內部看網(wǎng)絡和存儲正常在 vCenter 里確認主機連接正常、屬性和告警全部清除。到這里整個升級流程才算真正走完。回滾這件事很多人以為能像軟件升級那樣「一鍵還原」但 ESXi 的情況特殊。如果你升級后發(fā)現(xiàn)問題第一時間執(zhí)行# 將主機恢復到升級前的 profile前提是你還留著舊版本 depot 包 esxcli software profile install \ -d /vmfs/volumes/datastore1/upgrade/VMware-ESXi-8.0U2-22380479-depot.zip \ -p 舊profile名 \ --ok-to-remove注意這套回滾方法只適用軟件組合層面的異常比如某個驅動在 8.0U2 有 bug、某些 VM 出現(xiàn)兼容性問題之類。如果升級中引導分區(qū)已經損壞回滾就只能靠配置備份和 ISO 安裝盤。所以升級前那一份configBundle備份就是整個操作真正的兜底保障。給新手的建議是第一次做 ESXi 8.0U2 離線升級時先在測試機上完整走一遍上面這套流程記錄升級過程各階段命令的輸出特別是 VIB 變化量和報錯信息。再把正式升級時的差異點寫下來晾在一邊對照著執(zhí)行。從那以后我每次做升級都強制走一遍「備份配置 → 檢查驅動 → list profile → install → 驗證版本通知」哪怕操作過 N 次也同步做這臺機器升級前和升級后的所有狀態(tài)都留有記錄出了問題能在五分鐘內判定要不要回滾。希望這些踩坑記錄能幫你在離線升級 ESXi 的路上少走幾次彎路。本文還有配套的精品資源點擊獲取