Upgrade to ESXi 7.0 Boot Disk Size Error

Finally getting around to upgrading to ESXi 7.0, and I was stuck pretty quickly, with the error: BOOT_DISK_SIZE ERROR.

1[root@esxi:~] esxcli software profile update --depot=/vmfs/volumes/NFS2019/iso/VMware-ESXi-7.0b-16324942-depot.zip --profile=ESXi-7.0b-16324942-standard
2 [HardwareError]
3 Hardware precheck of profile ESXi-7.0b-16324942-standard failed with errors: <BOOT_DISK_SIZE ERROR: Target version supports boot disks that are at least 3814 MiB in size, the boot disk has 1928 MiB.>
4 Please refer to the log file for more details.

Confused, I looked into it further, and realised I did in fact have ESXi 6.7 running from a 2GB USB stick:

 1[root@esxi:~] fdisk -l
 2
 3***
 4*** The fdisk command is deprecated: fdisk does not handle GPT partitions.  Please use partedUtil
 5***
 6
 7Found valid GPT with protective MBR; using GPT
 8
 9Disk /dev/disks/mpx.vmhba32:C0:T0:L0: 3948544 sectors, 1928M
10Logical sector size: 512
11Disk identifier (GUID): 2fa464c5-0712-4ca7-ba61-f2f354a4c1ca
12Partition table holds up to 128 entries
13First usable sector is 34, last usable sector is 3948510
14
15Number  Start (sector)    End (sector)  Size Name
16     1              64            8191 4064K
17     5            8224          520191  249M
18     6          520224         1032191  249M
19     7         1032224         1257471  109M
20     8         1257504         1843199  285M
21Found valid GPT with protective MBR; using GPT

Going to the basement and having a look at the USB stick, proved I had used an old 2GB USB stick I got from a conference probably back in 2008.

This USB stick ran my first real home lab on a Dell Precision with ESXi 3.5. Ah the memories...

A lot of things have changed since then, one of which is the boot disk requirements.

ESXi Booting Requirements:
Fresh install of ESXi 7.0: 8GB for USB or SD devices
Upgrading to ESXi 7: Requires a minimum of 4 GB.

You can read about the ESXi partition changes here: https://blogs.vmware.com/vsphere/2020/05/vsphere-7-esxi-system-storage-changes.html

To fix it, you can re-install ESXi on a bigger storage device, then reconfigure vmkernels, add NFS storage, re-attach VMs. I'd put money on me making a mistake along the way.

The alternative is to clone the USB stick to a larger capacity USB stick, and attempt the upgrade again.

I ripped the USB stick from my ESXi host while it was still running (#YOLO. ESXi runs in memory - VMs continue to run!) and followed Paul's great instructions (https://tinkertry.com/clone-esxi-with-usb-image-tool), and downloaded the latest USB Image Tool, I set the option "Fix GPT after Restore" and cloned and then restored my boot USB onto a 32 GB stick.

I plugged in the new USB stick, shut down running VM's, rebooted, held my breath, and ESXi 6.7 booted all OK. Attempting the upgrade again, it was successful. The upgrade takes care of the repartitioning.

A quick check of the log:

1[root@esxi:/tmp/scratch/log] less esxupdate.log
2
32020-07-06T07:01:05Z esxupdate: 2101593: HostImage: DEBUG: Host is remediated by installer: locker, boot
4...
52020-07-06T07:01:05Z esxupdate: 2101593: root: DEBUG: Completed esxcli output, going to exit esxcli-software

Success.

Now's probably a good time to review my boot devices, and to clean out those freebie vendor USB sticks.