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.
fmbp16:~ root# diskutil eraseDisk MS-DOS "ESXI" MBR disk2 Started erase on disk2 (ESXI-7.0U3L-21424296-STANDARD) Unmounting disk Creating the partition map Waiting for partitions to activate Formatting disk2s1 as MS-DOS (FAT) with name ESXI-7 512 bytes per physical sector /dev/rdisk2s1: 120145216 sectors in 1877269 FAT32 clusters (32768 bytes/cluster) bps=512 spc=64 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=2048 drv=0x80 bsec=120174592 bspf=14667 rdcl=2 infs=1 bkbs=6 Mounting disk Finished erase on disk2
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