We are committed to provide service 24 X 7

Deals, Shopping, Training, Tools

Learn how to – How To Create VMware ESXi 8 Bootable USB Stick on Linux

Learn how to – How To Create VMware ESXi 8 Bootable USB Stick on Linux.

The new release of popular VMware product – VMware vSphere 8.0 includes VMware ESXi 8.0 and VMware vCenter Server 8.0. These are stable releases and are fit for installation and use in Production environments. VMware vSphere 8 brings the benefits of cloud to on-premises workloads, supercharges performance, and accelerates innovation in your company / business. With this vSphere 8, VMware is delivering VMware Tanzu Kubernetes Grid 2.0 that aims at addressing the growing complexity of agile development environments.

In this article we shall cover the steps that are used to create a bootable USB drive of VMware ESXi 8. Note that an account with VMware is required to download ISO files. When you download an evaluation you get free 60 days trial period for testing the virtualization software. For home use consider subscribing to VMware VMUG Advantage membership which provides exclusive access to 365-day evaluation licenses for 15+ VMware solutions.

Step 1 – Download VMware ESXi 8 ISO

Visit the VMware vSphere Hypervisor downloads page to get the latest ISO file. Choose the product from available list and proceed to download.

Confirm the ISO file is available locally before you proceed to the next step.

$ file VMware-VMvisor-Installer-8.0-20513097.x86_64.iso
VMware-VMvisor-Installer-8.0-20513097.x86_64.iso: ISO 9660 CD-ROM filesystem data 'ESXI-8.0.0-20513097-STANDARD' (bootable)

Step 2 – Prepare USB Stick for vSphere ESXi 8 installation

Insert USB stick into your Linux system and confirm it is in the list of devices plugged in.

$ lsblk
sdb                         8:0    1   3.8G  0 disk

Update your package index and install syslinux and parted

### Debian / Ubuntu ###
sudo apt update
sudo apt install syslinux parted

### RHEL Based systems ###
sudo yum -y install syslinux parted

Set your device path

mydev=sdX #e.g sdb

Unmount USB stick on the system if it is mounted.

df -hT
# Example
sudo umount /dev/$mydev1

Wipe the device while to clean state before using it using wipefs command.

sudo wipefs --all --force /dev/$mydev

Create an MBR partition table and FAT32 partition

We shall consider using fdisk and using parted commands.

Option 1: Using fdisk commands

Copy and paste the commands below as a single command to wipe the target drive, create an MBR partition table, and create a single FAT32 partition (you can ignore any “Partition #1 contains a vfat signature.” warning message):

sudo fdisk -w always /dev/$mydev <<EOF
  o
  n
  p
  1
  2048
  -0
  t
  0c
  a
  w
EOF

Format the new FAT32 partition with a FAT32 filesystem:

sudo mkfs.vfat -F 32 -n ESXI-8 /dev/${mydev}1

Option 2: Using parted command

Check partition tables on the device. If you used wipefs it should not show unknown.

$ sudo parted /dev/$mydev p
Model: JetFlash Transcend 4GB (scsi)
Disk /dev/sdb: 4049MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start  End     Size    Type     File system  Flags
 2      281kB  7514kB  7234kB  primary               esp

Remove the partition with the command rm. In this example, the number is 2:

sudo parted /dev/$mydev rm 2

Remove the USB drive then put it back and confirm partition is not available:

cat /proc/partitions

Create msdos partition table.

sudo parted -s -a optimal -- /dev/$mydev mklabel msdos

Confirm the setting.

$ sudo parted /dev/$mydev p
Model: JetFlash Transcend 4GB (scsi)
Disk /dev/sdb: 4049MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start  End  Size  Type  File system  Flags

Create a new partition with FAT32 fileystem.

sudo parted /dev/$mydev mkpart primary fat32  1% 100%

Give it boot flag:

sudo parted /dev/$mydev set 1 boot on

Format the partition created with FAT32 filesystem.

sudo mkfs.vfat -F 32 -n ESXI-8 /dev/${mydev}1

Validate:

$ fdisk -l /dev/${mydev}
Disk /dev/sdb: 3.77 GiB, 4048551936 bytes, 7907328 sectors
Disk model: Transcend 4GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x221a4201

Device     Boot Start     End Sectors  Size Id Type
/dev/sda1  *    79872 7907327 7827456  3.7G  c W95 FAT32 (LBA)

Install the syslinux bootloader files

Copy the syslinux executable boot code into the bootstrap code area of the MBR boot sector.

$ sudo dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/$mydev
1+0 records in
1+0 records out
440 bytes copied, 0.00130164 s, 338 kB/s

You can use find command to locate mbr.bin in your system.

### Debian / Ubuntu ###
$ sudo find / -name mbr.bin 2>/dev/null
/usr/lib/syslinux/mbr/mbr.bin
/usr/lib/SYSLINUX/mbr.bin

### RHEL based systems ###
$ sudo find / -name mbr.bin 2>/dev/null
/usr/share/syslinux/mbr.bin

Finally install the syslinux bootloader files onto the FAT32 filesystem (ignore the “Hidden (2048) does not match sectors (62)” messages – modern systems use the partition table):

sudo syslinux /dev/${mydev}1

Step 3 – Create VMware ESXi 8 Bootable USB Stick

Mount VMware ESXI ISO

mkdir ./esxi-8
mount -o loop VMware-VMvisor-Installer-8*.iso ./esxi-8

Confirm it successfully mounts in read only mode.

$ df -hT ./esxi-8
Filesystem     Type     Size  Used Avail Use% Mounted on
/dev/loop3     iso9660  620M  620M     0 100% /root/esxi-8

Mount your USB device partition.

sudo mkdir -p /mnt/usb
sudo mount /dev/${mydev}1 /mnt/usb

Check if you were able to mount USB device.

$ df -hT /mnt/usb/
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sda1      vfat  3.8G  184K  3.8G   1% /mnt/usb

Copy all ISO files to mount directory.

sudo cp -r ./esxi-8/* /mnt/usb

Navigate to USB mount point.

cd /mnt/usb/

Move isolinux.cfg to syslinux.cfg

sudo mv isolinux.cfg syslinux.cfg

Edit syslinux.cfg file and update APPEND line to APPEND -c boot.cfg -p 1 .

Using sed command for in-place modification:

sudo sed -i 's/APPEND -c boot.cfg/APPEND -c boot.cfg -p 1/g' ./syslinux.cfg

Or by manually editing the file.

$ sudo vim syslinux.cfg
DEFAULT menu.c32
MENU TITLE ESXi-8.0.0-20513097-standard Boot Menu
NOHALT 1
PROMPT 0
TIMEOUT 80
LABEL install
  KERNEL mboot.c32
  APPEND -c boot.cfg -p 1
  MENU LABEL ESXi-8.0.0-20513097-standard ^Installer
LABEL hddboot
  LOCALBOOT 0x80
  MENU LABEL ^Boot from local disk

Unmount both USB device and mounted ISO file.

cd ~/
sudo umount /mnt/usb
umount ./esxi-8

Step 4 – Install VMware ESXI 8 using USB Stick

Insert USB device into host where ESXI 8 will be installed and boot from it.

Follow the standard VMware ESXI installation process to the end.

We hope the instructions given in this article were informative. Keep checking our website for the latest articles and reviews.

Cart

Your Cart is Empty

Back To Shop