A problem with one or more vFAT bootbank partitions

Bij het updaten van een ESXi host naar versie 8.0 update 3 kreeg ik de onderstaande melding:

[HardwareError]
Hardware precheck of profile ESXi-8.0U3-24022510-standard failed with errors: <VFAT_CORRUPTION ERROR: A problem with one or more vFAT bootbank partitions was detected. Please refer to KB 91136 and run dosfsck on bootbank partitions.>
Please refer to the log file for more details.

Om het probleem probere te verhelpen voer je een dosfsck op de bootbank partities zoals in artikel KB91136 staat beschreven. Daarvoor wil je eerst een lijst van de partities hebben:

esxcli storage filesystem list

Dit geeft een lijst van partities. Maar dan heb je nog niet het disk id. Neem het mountpoint van de bootbanks en vraag daar via vmkfstools de info van op:

vmkfstools -P /vmfs/volumes/<UUID>

Het is ons te doen om wat er staat bij Partitions spanned (on “disks”):
mpx.vmhba32:C0:T0:L0:5

mpx.vmhba32:C0:T0:L0:6

Migreer alle VM’s weg van de host en zet deze in maintenance mode.

vim-cmd /hostsvc/maintenance_mode_enter

We stoppen crond.

kill $(cat /var/run/crond.pid)

Stop vmsyslogd

/usr/lib/vmware/vmsyslog/bin/shutdown.sh

En controleer of er verder nog open files zijn.

lsof |  grep scratch
/etc/init.d/vmfstraced stop
lsof | grep var/run/log
/etc/init.d/vsandevicemonitord stop

Controleer nu de vFat partities

dosfsck -Vv /dev/disks/<disk and partition id>

In ons voorbeeld wordt dat: dosfsck -Vv /dev/disks/mpx.vmhba32:C0:T0:L0:5

[root@ESX01:~] dosfsck -Vv /dev/disks/mpx.vmhba32:C0:T0:L0:6
CP850//TRANSLIT: Invalid argument
CP850: Invalid argument
fsck.fat 4.1+git (2017-01-24)
Checking we can access the last sector of the filesystem
0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
1) Remove dirty bit
2) No action
[12?q]? 1
Boot sector contents:
System ID "MSDOS5.0"
Media byte 0xf8 (hard disk)
512 bytes per logical sector
65536 bytes per cluster
2 reserved sectors
First FAT starts at byte 1024 (sector 2)
2 FATs, 16 bit entries
131072 bytes per FAT (= 256 sectors)
Root directory starts at byte 263168 (sector 514)
512 root directory entries
Data area starts at byte 279552 (sector 546)
65515 data clusters (4293591040 bytes)
32 sectors/track, 64 heads
0 hidden sectors
8386560 sectors total
Starting check/repair pass.
Checking for unused clusters.
Starting verification pass.
Checking for unused clusters.

*** Filesystem was changed ***
The changes have not yet been written, you can still choose to leave the
filesystem unmodified:
1) Write changes
2) Leave filesystem unchanged
[12?q]? 1
/dev/disks/mpx.vmhba32:C0:T0:L0:6: 119 files, 4797/65515 clusters

In dit geval was het enkel een “dirty bit” die hersteld diende te worden. Na deze te hebben verwijderd kon ik de geplande update wel doorvoeren. Blijf je na het verwijderen echter de vfat error krijgen, dan dien je meer te herstellen gebruik dan het onderstaande commando:

dosfsck -a -w /dev/disks/<disk and partition id>

En haal de server uit maintenance mode als het gelukt is.

vim-cmd /hostsvc/maintenance_mode_exit