ESXi: How to create a bootable USB installer of ESXi 7.0

root's picture

Of course, the easiest way would be to use rufus via windows but if you do not have a windows around, you need a different approach.
Under macOS there is balenaEtcher but for unknown reasons it doesn't detect the ESXi image as bootable and the result is not bootable either.

What's left is a manual approach, via terminal, that should work under macOS or Linux.
Below is a way to do this under macOS. Under linux is not that different: you need to use fdisk -l instead of diskutil list.

1. Format the USB stick as FAT32

I have named mine ESXI-7.

2. List the partition you just created and umount it:

fmbp16:~ root# diskutil list /dev/disk2

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.7 GB    disk2
   1:                 DOS_FAT_32 ⁨ESXI-7              15.7 GB    disk2s1
fmbp16:~ root# diskutil umountDisk /dev/disk2
Unmount of all volumes on disk2 was successful

3. Use fdisk to mark the partition active and make it bootable:

fmbp16:~ root# diskutil umountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
fmbp16:~ root# fdisk -e /dev/disk2
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
Enter 'help' for information
fdisk: 1> f 1
Partition 1 marked active.
fdisk:*1> write
Writing MBR at offset 0.
fdisk: 1> exit

Also, mount back up the partition:

fmbp16:~ florian$ diskutil mount /dev/disk2s1
Volume ESXI-7 on /dev/disk2s1 mounted

4. Mount the ISO installer from vmware website and copy the content to USB partition:

fmbp16:~ root# cp -R /Volumes/ESXI-7.0B-16324942-STANDARD/* /Volumes/ESXI-7/

5. Now you need to modify ISOLINUX.CFG to point the boot to the right partition:

fmbp16:~ root# cd /Volumes/ESXI-7/
fmbp16:ESXi root# cat ISOLINUX.CFG | grep APPEND
  APPEND -c boot.cfg
fmbp16:ESXi root# sed -i "" 's/APPEND -c boot.cfg/APPEND -c boot.cfg -p 1/g' ISOLINUX.CFG
fmbp16:ESXi root# cat ISOLINUX.CFG | grep APPEND
  APPEND -c boot.cfg -p 1

And that is pretty much it. Unmount the partition and use it. It should be bootable on both sides: BIOS and EFI.

Thou shalt not steal!

If you want to use this information on your own website, please remember: by doing copy/paste entirely it is always stealing and you should be ashamed of yourself! Have at least the decency to create your own text and comments and run the commands on your own servers and provide your output, not what I did!

Or at least link back to this website.