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.
Leave a Reply
You must be logged in to post a comment.