Creating bootable USB for ISO images

The steps below where tested to work on Devuan 1.0.

Tools needed:

Change /dev/sdd in the below example commands to the device name of the USB device.

Quick check: insert the USB device, execute the 'dmesg' command, and check the last lines for the /dev/sdX name (where X is the letter of the device.

Start fdisk on the USB drive:

fdisk /dev/sdd

Enter the following commands in fdisk (partial instruction):

  1. d to delete all partitions
  2. n one primary partition, using all space
  3. t and set it to type 'c' (w95 fat)
  4. a to set it bootable
  5. w to write changes

Format the partition as FAT32 (-F 32) and volume name USB (-n USB):

/sbin/mkfs.vfat -F 32 -n USB /dev/sdd1

“syslinux” the USB drive:

/usr/bin/syslinux /dev/sdd1

“cat” the MBR to disk:

cat /usr/lib/syslinux/mbr/mbr.bin > /dev/sdd

Mount the USB drive:

mount /dev/sdd1 /mnt

Copy memdisk, the .c32 files to the USB drive:

cp /usr/lib/syslinux/memdisk /mnt/
cp /usr/lib/syslinux/modules/bios/*.c32 /mnt/

Add the ISO file(s):

cp VMware-VMvisor-Installer-6.0.0.update02-3620759.x86_64.iso /mnt/

Create syslinux.cfg on the USB drive and fill it with:

DEFAULT menu.c32
LABEL VMware-ESXi-6.0.0.update02-3620759
KERNEL memdisk
APPEND iso
INITRD /VMware-VMvisor-Installer-6.0.0.update02-3620759.x86_64.iso
MENU LABEL VMware-ESXi-6.0.0.update02-3620759

Add more ISO's. Copy the LABEL, KERNEL, APPEND, INITRD, and MENU LABEL to a new entry below the current one. Change LABEL and MENU LABEL to name the menu entry. Change INITRD to point to the new ISO file.

Sources: