x

ESXi maintenance cheatsheet

This document was written targeting ESXi 6 and 7. Newer/older versions may differ.

ESPECIALLY NOW THAT BROADCOM BOUGHT VMWARE AND DESTROYED ALL HISTORIC LINKS EPIC

Command shortlist

category what happen what to do
universal esxcli doesn't work? localcli
universal maintenance mode esxcli system maintenanceMode set --enable=
universal enable tools ramdisk (always for sdcard installs) esxcli system settings advanced set -o /UserVars/ToolsRamdisk -i 1
ESXi 7.0 U2a Potentially Killing USB and SD drives!
ESXi 7.0 SD Card/USB Drive Issue Temporary Workaround
storage change scratch dir (contains persistent logs, vibs, tempfiles) esxcli system settings advanced set -o /ScratchConfig/ConfiguredScratchLocation -s /vmfs/...
see also Manually setting a scratch location for ESXi in the vSphere Client appears to succeed but the setting is not honored (2003678)
storage list all storage devices esxcfg-mpath -b
storage list all mounted filesystems esxcli storage filesystem list
storage list diagnostic partitions esxcli system coredump partition list
storage list all partitions on a disk partedUtil getptbl DISK
vmfs view info about mounted vmfs vmkfstools -P /PATH
vmfs mount vmfs esxcli storage filesystem mount
vmfs umount vmfs esxcli storage filesystem unmount
ramdisk mount ramdisk esxcli system visorfs ramdisk add
ramdisk umount ramdisk esxcli system visorfs ramdisk remove
EFI boot fsck fat dosfsck
update update software patch level esxcli software profile update -p ESXi-7.0U1c-17325551-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
locate patch version at https://my.vmware.com/group/vmware/patch

check fat partitions

for x in scratch bootbank altbootbank store; do
  x=/$x
  echo "============ testing $x ============"
  if [ ! -e $x ]; then
    echo "$x does not exist"
    continue
  fi
  y=$(vmkfstools -P /$x 2>/dev/null | grep -oE "^\s(.*)$" | sed 's/\t//')
  if [ "x$y" = xmemory ]; then
    echo "$x is ramdisk"
    continue
  fi
  z="dosfsck -nv /dev/disks/$y | tail +3"
  echo "# $z"
  eval $z
done

delete broken files on FAT volumes

Bad file descriptor during update - VMware Technology Network VMTN
Wayback Machine](https://communities.vmware.com:443/t5/ESXi-Discussions/Bad-file-descriptor-during-update/m-p/2613340?start=0&tstart=0#M246535))

recreate store partition

# format partition. disk may change, partition should be 8
vmkfstools -C vfat /dev/disks/mpx.vmhba0:C0:T0:L0:8
# link new vol to store
ln -sfn /vmfs/volumes/GUID /store
# reinstall tools, point it at your zip or vib
esxcli software vib install -d /vmfs/volumes/myvol/VMware-Tools-VERSION-core-offline-depot-ESXi-all-FILEID.zip

default partition scheme

id name mount size optional description
1 systemPartition 4 MB contains EFI bootloader
2 linuxNative /scratch 4 GB ✔️ persistent storage to hold output of vm-support and other misc tasks. if not present, vm-support will save to ramdisk
3 VMFS datastore /vmfs/volumes/GUID rest of disk ✔️ default datastore created on install if backing medium is not flash memory
5 linuxNative /bootbank 250 MB stores all compressed system files and drivers. ESXi image is stored here in s.v00
6 linuxNative /altbootbank 250 MB last known-good installation of ESXi, copied from 5 after a successful upgrade. use Shift+R when booting to boot from this partition
7 vmkDiagnostic 110 MB In case of ESXi Crash or PSOD, host dump file written on this partition
8 linuxNative /store 286 MB contains VMware Tools ISOs and floppy images. can be configured to hold logs and other data but doesn’t by default
9 vmkDiagnostic 2.5 GB larger partition as backup for 7

enable HTTP outgoing firewall exclusion for wget

esxcli network firewall ruleset set --enabled=true --ruleset-id=httpClient

verify:

esxcli network firewall ruleset list | grep -E '^Name|^-|http'

update tools manually via console

wget into /vmimages (should be a softlink somewhere under /store)
stable ESXi base releases
latest releases
(these do still work after Broadcom buyout as of 2024-05-18)

common files

where it be what it do
/etc/vmware/esx.conf storage, network and hardware config
/etc/vmware/hostd/authorization.xml vCenter to ESXi host connection authorization
/etc/vmware/vpxa/vpxa.cfg vCenter and ESXi connectivity
/etc/vmware/vmkiscsid/iscsid.conf iSCSI daemon config
/etc/vmware/fdm FDM config file with clusterconfig, hostlist and VM metadata
/etc/vmware/license.cfg license info
/etc/vmware/hostd/vmInventory.xml info about VMs on host
/tmp/stagebootbank staged updates before remediation
Left-click: follow link, Right-click: select node, Scroll: zoom
x