ESXi comes in two flavors, embedded and installable. Installable comes on a CD but if you have to do a number of installs or repeat installs, it’s a bit of a pain to always have the CD ready. Plus in my home lab, my newer servers don’t have a CD-ROM so I have to dig up the portable CD-ROM each time I want to install ESXi. The solution is installing ESXi over the network and this can be done if you have a PXE server on your network.
The steps to accomplish this are fairly simple and are
1) Copy the install files to your PXE server from the ESXi install CD. This will include the files vmkboot.gz vmkernel.gz sys.vgz cim.vgz cimstg.tgz ienviron.tgz image.tgz install.tgz mboot.c32 menu.c32
2) Edit the PXELinux config file and add the following entry
label ESX4i
kernel mboot.c32
append vmkboot.gz --- vmkernel.gz --- sys.vgz --- cim.vgz --- ienviron.tgz --- image.tgz --- install.tgz
In the below video, I used the Ultimate Deployment Appliance (UDA) to install ESXi to a VM running on VMware Workstation The following steps were required
1) Create a new template – this can be done via the web interface for the UDA VM. Simply click on the Templates link and then click on Create new template. Enter a template ID and description and click OK. Then click on Finish and then on Save. You can also edit the file /var/public/conf/templates.conf and add the following line. “ESX3i” will be the template name and must be 5 characters.
ESX3i;;configfilename;ESXi Install;00-00-00-00-00-00;
You will then need to edit the file /var/public/tftproot/message.txt and add a line for your new template name along with a short description.
2) Edit the file /var/public/tftproot/pxelinux.cfg/default and add the below text.
label ESX4i
kernel mboot.c32
append vmkboot.gz --- vmkernel.gz --- sys.vgz --- cim.vgz --- ienviron.tgz --- image.tgz --- install.tgz
Note that subsequent changes to the templates in the UDA web interface may overwrite the entry in /var/public/tftproot/pxelinux.cfg/default so you will have to update it should you make template changes. Also if you plan to keep multiple versions of ESXi on your PXE server, you can use folders. You’ll just need to edit the kernel and append lines to reflect the folder name used as shown below.
label ESX40
kernel ESX40/mboot.c32
append ESX40/vmkboot.gz --- ESX40/vmkernel.gz --- ESX40/sys.vgz --- ESX40/cim.vgz --- ESX40/ienviron.tgz --- ESX40/image.tgz --- ESX40/install.tgz
3) Copy the vmkboot.gz vmkernel.gz sys.vgz cim.vgz cimstg.tgz ienviron.tgz image.tgz install.tgz mboot.c32 menu.c32 to the folder /var/public/tftproot/. Make sure that the case of the file names matches what you have entered in the default file in step 2.
4) Startup your server and select to do a network boot. If your PXE server is functioning properly, you should see the boot option as shown in the video below.