ESXi Update Guide (Online & Offline)
This guide covers updating VMware ESXi using the command-line interface (ESXCLI). Since Broadcom acquired VMware, the public online depot (hostupdate.vmware.com) has been shut down. All updates now go through the Broadcom Support Portal using offline patch files uploaded to a datastore.
Version key: 🟢 = ESXi 6.x · 🔵 = ESXi 7.x · 🟣 = ESXi 8.x · 🟠 = ESXi 9.x
What Changed After Broadcom Acquisition
Section titled “What Changed After Broadcom Acquisition”The old hostupdate.vmware.com online depot no longer exists : the domain has no DNS resolution and returns nothing. This means:
esxcli software profile update -d https://hostupdate.vmware.com/...no longer works- You must download patch bundles manually from the Broadcom Support Portal
- The offline datastore method is now the only supported approach via ESXCLI
- A Broadcom account with valid VMware entitlements is required to download patches
If your host has internet access, you can set up a self-hosted HTTP depot using
nginxor Python’shttp.serverand point ESXCLI at it. See Method 2 below.
update vs install: Patch or Major Upgrade?
Section titled “update vs install: Patch or Major Upgrade?”ESXCLI has two profile commands with different behaviours:
| Command | Purpose | Same-version patch | Major upgrade (6→7, 7→8) |
|---|---|---|---|
esxcli software profile update | Apply newer content only | ✅ Yes | ❌ No |
esxcli software profile install | Full overwrite, any version | ✅ Yes (overkill) | ✅ Yes |
updateapplies only newer VIBs than what’s currently installed. It skips packages with lower revision numbers. Use this for patching within the same major version (e.g., 8.0U2 → 8.0U3).installoverwrites all packages regardless of version. It can install older, newer, or entirely different versions. Use--allow-downgradesif the target profile has any older packages. This is what you need for cross-version upgrades (6.x → 7.x, 7.x → 8.x, etc.).
Hardware compatibility check: Always verify your hardware is supported on the target ESXi version before a major upgrade. Check the VMware Compatibility Guide. ESXi 8.x dropped support for many older CPUs — upgrading a 6.x host to 8.x may fail on unsupported hardware.
Quick Decision Flow
Section titled “Quick Decision Flow”Same version? (e.g. 8.0U2 → 8.0U3) └─ Use: esxcli software profile update -p <profile> -d <depot.zip>
Cross-version? (e.g. 7.0 → 8.0, 6.7 → 7.0) └─ Use: esxcli software profile install -p <profile> -d <depot.zip> --allow-downgradesAll steps (download, upload, maintenance mode, reboot) are the same for both commands: only the final apply command changes.
Method 1: Offline Update (Datastore Patch) : Primary
Section titled “Method 1: Offline Update (Datastore Patch) : Primary”This is the standard method: download the patch from Broadcom, upload to a datastore, and apply via ESXCLI.
Step 1: Download the Patch from Broadcom 🟢🔵🟣🟠
Section titled “Step 1: Download the Patch from Broadcom 🟢🔵🟣🟠”-
Log in to support.broadcom.com
-
Go to Software → VMware vSphere → ESXi
-
Choose your ESXi version (e.g., 8.0, 7.0, 6.7)
-
Download the Offline Bundle (depot ZIP). Filenames look like:
VMware-ESXi-8.0U3d-24585383-depot.zipor for earlier/update bundles:
ESXi800-202503001.zipupdate-from-esxi8.0-8.0U3d.zip
🟠 ESXi 9.x: the portal structure is the same. Look under VMware vSphere → ESXi 9.x.
Step 2: Upload Patch to a Datastore 🟢🔵🟣🟠
Section titled “Step 2: Upload Patch to a Datastore 🟢🔵🟣🟠”Upload the ZIP to an ESXi datastore. SCP is recommended for large files:
scp VMware-ESXi-8.0U3d-24585383-depot.zip root@192.168.0.100:/vmfs/volumes/datastore1/patches/Or use the vSphere Client: Storage → datastore → Files → Upload.
Create a dedicated
patches/directory on the datastore to keep things organized.
Step 3: SSH into ESXi and Check Current Version 🟢🔵🟣🟠
Section titled “Step 3: SSH into ESXi and Check Current Version 🟢🔵🟣🟠”Enable SSH (Host → Actions → Services → Enable Secure Shell), then connect:
ssh root@192.168.0.100vmware -v
### Example output# VMware ESXi 8.0.2 build-23825572Verify the patch file is accessible:
ls -lh /vmfs/volumes/datastore1/patches/Step 4: Shut Down VMs and Enter Maintenance Mode 🟢🔵🟣🟠
Section titled “Step 4: Shut Down VMs and Enter Maintenance Mode 🟢🔵🟣🟠”Power off all VMs on the host, then:
esxcli system maintenanceMode set --enable=trueOr with vim-cmd:
vim-cmd /hostsvc/maintenance_mode_entervim-cmd /hostsvc/hostsummary | grep inMaintenanceMode # verifyStep 5: List Profiles in the Patch Bundle 🟢🔵🟣🟠
Section titled “Step 5: List Profiles in the Patch Bundle 🟢🔵🟣🟠”List the image profiles inside the offline bundle:
esxcli software sources profile list -d /vmfs/volumes/datastore1/patches/VMware-ESXi-8.0U3d-24585383-depot.zipExample output:
Name Vendor Acceptance LevelESXi-8.0U3d-24585383-standard VMware, Inc. PartnerSupportedESXi-8.0U3d-24585383-no-tools VMware, Inc. PartnerSupportedPick -standard for a full update (includes VMware Tools). Use -no-tools for a minimal update.
Step 6: Apply the Patch 🟢🔵
Section titled “Step 6: Apply the Patch 🟢🔵”🟣🟠 ESXi 8.0U2+: use
esxcli software profile update. Theesxcli software vibcommands are deprecated and no longer work.
Profile-based (recommended for ESXi 7.0+, required for 8.0U2+):
For same-version patching (e.g., 8.0U2 → 8.0U3):
esxcli software profile update \ -p ESXi-8.0U3d-24585383-standard \ -d /vmfs/volumes/datastore1/patches/VMware-ESXi-8.0U3d-24585383-depot.zipFor major version upgrades (e.g., 7.0 → 8.0, 6.7 → 7.0), use install instead:
esxcli software profile install \ -p ESXi-8.0U3d-24585383-standard \ -d /vmfs/volumes/datastore1/patches/VMware-ESXi-8.0U3d-24585383-depot.zip \ --allow-downgrades
--allow-downgradesis needed because the target profile may contain VIBs with lower revision numbers than what’s installed. Without it, the install will fail if ANY VIB would be downgraded.
VIB-based (ESXi 6.x and 7.x only):
# 🟢 ESXi 6.x / 🔵 ESXi 7.x (pre-8.0U2)esxcli software vib update \ -d /vmfs/volumes/datastore1/patches/ESXi700-202503001.zipDry run first (optional): add
--dry-runto preview without applying:Terminal window esxcli software profile update -p ESXi-8.0U3d-24585383-standard \-d /vmfs/volumes/datastore1/patches/VMware-ESXi-8.0U3d-24585383-depot.zip \--dry-run
If you get [HardwareError] (unsupported CPU warning), add --no-hardware-warning:
esxcli software profile update \ -p ESXi-8.0U3d-24585383-standard \ -d /vmfs/volumes/datastore1/patches/VMware-ESXi-8.0U3d-24585383-depot.zip \ --no-hardware-warningStep 7: Reboot and Verify 🟢🔵🟣🟠
Section titled “Step 7: Reboot and Verify 🟢🔵🟣🟠”reboot# Or with a reason string:esxcli system shutdown reboot -r "patch ESXi 8.0U3d"After the host boots back up, exit maintenance mode:
esxcli system maintenanceMode set --enable=false# Or:vim-cmd hostsvc/maintenance_mode_exitVerify the update:
vmware -vesxcli software profile getesxcli software vib list | grep esx-basePower on your VMs.
Method 2: Self-Hosted HTTP Depot (Optional)
Section titled “Method 2: Self-Hosted HTTP Depot (Optional)”If you want an “online-like” workflow (e.g., multiple hosts pulling from a central server), host the depot ZIP on an internal HTTP server:
Step 1: Serve the Depot ZIP over HTTP
Section titled “Step 1: Serve the Depot ZIP over HTTP”Extract the downloaded ZIP to a directory and serve it:
# On your Linux server/workstationmkdir -p /srv/esxi-depotcd /srv/esxi-depotunzip /path/to/VMware-ESXi-8.0U3d-24585383-depot.zip
# Serve with Python (no auth, LAN-only)python3 -m http.server 8080Or with nginx:
server { listen 80; server_name depot.internal.lan; root /srv/esxi-depot; autoindex on;}Step 2: Point ESXCLI at Your Depot
Section titled “Step 2: Point ESXCLI at Your Depot”On the ESXi host:
esxcli software sources profile list -d http://192.168.0.50:8080/index.xmlesxcli software profile update -p ESXi-8.0U3d-24585383-standard -d http://192.168.0.50:8080/index.xmlThe depot ZIP contains an
index.xmlat the root. ESXCLI reads it to discover profiles and VIBs, same as it did with the old VMware online depot.
Method 3: Single VIB File (Legacy Drivers) 🟢🔵
Section titled “Method 3: Single VIB File (Legacy Drivers) 🟢🔵”For applying individual driver updates or async VIBs (e.g., NIC drivers, HBA firmware):
# 🟢🔵 ESXi 6.x & 7.x : from a local VIB fileesxcli software vib install -v /vmfs/volumes/datastore1/drivers/DriverName.vib
# 🟢🔵 ESXi 6.x & 7.x : from a local ZIP bundleesxcli software vib update -d /vmfs/volumes/datastore1/drivers/driver-bundle.zip🟣🟠 ESXi 8.0U2+: individual VIB installation is no longer supported. Use
esxcli software profile updatewith the full depot ZIP instead.
Legacy: MemoryError Workaround (ESXi 8.x)
Section titled “Legacy: MemoryError Workaround (ESXi 8.x)”When listing profiles from a large depot (online or self-hosted), ESXi 8.x may throw [MemoryError]. The default ESXCLI memory limit is 300MB:
grep 'mem=' /usr/lib/vmware/esxcli-software# #!/usr/bin/python ++group=esximage,mem=300Increase it to 500MB:
esxcli system settings advanced set -o /VisorFS/VisorFSPristineTardisk -i 0cp /usr/lib/vmware/esxcli-software /usr/lib/vmware/esxcli-software.baksed -i 's/mem=300/mem=500/g' /usr/lib/vmware/esxcli-software.bakmv /usr/lib/vmware/esxcli-software.bak /usr/lib/vmware/esxcli-software -fesxcli system settings advanced set -o /VisorFS/VisorFSPristineTardisk -i 1Version Compatibility Summary
Section titled “Version Compatibility Summary”| Feature | 🟢 ESXi 6.x | 🔵 ESXi 7.x | 🟣 ESXi 8.x | 🟠 ESXi 9.x |
|---|---|---|---|---|
esxcli software vib update | ✅ Supported | ✅ Supported | ❌ Deprecated (8.0U2+) | ❌ Not available |
esxcli software profile update | ✅ Supported | ✅ Supported | ✅ Required (8.0U2+) | ✅ Required |
| Offline datastore patch | ✅ | ✅ | ✅ | ✅ |
| Self-hosted HTTP depot | ✅ | ✅ | ✅ | ✅ |
| Broadcom portal downloads | ✅ | ✅ | ✅ | ✅ |
Old hostupdate.vmware.com | ❌ Dead | ❌ Dead | ❌ Dead | ❌ Dead |
| MemoryError workaround needed | No | No | Yes (8.x) | Yes |
Common Pitfalls
Section titled “Common Pitfalls”- Forgetting to shut down VMs before entering maintenance mode. The host will refuse maintenance mode if VMs are still running.
- Using
esxcli software vib updateon ESXi 8.0U2+. This returns an error: switch toesxcli software profile update. - Wrong datastore path. Use the full path:
/vmfs/volumes/DATASTORE_NAME/...or/vmfs/volumes/UUID/.... - Broadcom portal access. If you cannot find your ESXi downloads, verify your Broadcom account has the correct entitlements (tied to your VMware license/support contract).