Mac Mini: create bootable ESXi install usb stick

root's picture

Short and sweet: you need to create a bootable ESXi USB stick and the "normal" method was not doing it.
In my situation, I was using balenaEtcher but even if it was successful, the USB stick was not bootable. The tool did warned me when I have selected the ESXi iso.

So here we are. In order to create a bootable ESXi usb stick, you need to have:
1. ESXi iso image from vmware website (https://my.vmware.com/group/vmware/evalcenter?p=free-esxi7)
2. An empty USB stick.

1. Format the USB stick as FAT or FAT32.

2. List and make the USB stick partition bootable:

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 ⁨UNTITLED⁩                15.7 GB    disk2s1

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

3. Copy all files and folder from ESXi iso to the USB stick:

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

4. Edit ISOLINUX.CFG to set the partition to boot from, as follows:

NOTE: you need to add "-p 1" at the end of APPEND line.

fmbp16:~ root# cd /Volumes/ESXi/
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 
  APPEND -c boot.cfg -p 1

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.