HOWTO Network install VMware ESXi from a PXE server

This is a cycling blog, but several people have asked how to rip an ESXi ISO so you can install it from a PXE server so I figure this is as good a place as any to dump the information.

ESXi Installable is VMware’s “thin hypervisor.” There’s no Linux, no Red Hat Anaconda scripting, and not much in the way of configuration or install options. You can modify the files in the ISO (I enable ssh, for example), but I won’t go into that in this document.

This document assumes familiarity with Linux and that a PXE boot server is already set up on a Linux machine.


1. Create a workspace for yourself where you’ll copy the ISO file and rip the contents. For example:

cd ~
mkdir esxi-sandbox

2. Grab the ESXi install ISO image from VMware and copy it to your workspace.

3. 3. Mount the ISO image, for example, if the name of the file is _esxi_installable.iso_:

mkdir /mnt/esxiso
mount -o loop ~/esxi-sandbox/esxi-installable.iso /mnt/esxiso

4. On your PXE server, make a space for your ESXi install files, for example (and this will vary depending on your specific environment):

mkdir /data/share/pxeboot/vmware/esxi/

5. Go to the mounted ISO directory and copy the files to your PXE directory. Using the example directory and mount point used before:

cp /mnt/esxiso/* /data/share/pxeboot/vmware/esxi/

All you really need are *.c32, vmkernel.gz, and *.tgz, but the other files are small if you’re lazy/sloppy and don’t want to delete them.

6. Modify your PXE configuration file so your PXE process can find the ESXi install files. In my installation, I have a file called vmware.conf to which I add a new label like so:

label esx3i
kernel vmware/esxi/mboot.c32
append vmware/esxi/vmkernel.gz --- vmware/esxi/binmod.tgz --- vmware/esxi/ienviron.tgz --- vmware/esxi/cim.tgz --- vmware/esxi/oem.tgz --- vmware/esxi/license.tgz --- vmware/esxi/install.tgz

Note that your “append” directive must include all of the *.tgz files that are in your ISO distribution. Apparently, these can sometimes change between different releases of ESXi so be careful.

7. Boot from your PXE server to test and it should all work out! Celebrate if you succeed, debug and retry if you don’t. Good luck!

8 Comments

  • mildstallion
    March 4, 2009 - 6:32 am | Permalink

    Dude, I tried that and my chain snapped.

  • mildstallion
    March 4, 2009 - 1:32 pm | Permalink

    Dude, I tried that and my chain snapped.

  • Michael
    March 4, 2009 - 7:33 am | Permalink

    Will this help me get on the internets?

  • Michael
    March 4, 2009 - 2:33 pm | Permalink

    Will this help me get on the internets?

  • yorthehunter
    September 1, 2009 - 12:03 pm | Permalink

    Great doc. We do the same thing I believe and it works like a charm. Can you post the link for the doc that you actually edit the files that allow you to enable ssh though. We have some tweaks that we would like to make available on newly installed systems without having to manually perform them on each system, but I don't know what I need to edit or how it needs to be packaged. They just look like ordinary gzipped tarballs, but how are the new tweaks in the package applied to the installed os?

  • yorthehunter
    September 1, 2009 - 5:03 am | Permalink

    Great doc. We do the same thing I believe and it works like a charm. Can you post the link for the doc that you actually edit the files that allow you to enable ssh though. We have some tweaks that we would like to make available on newly installed systems without having to manually perform them on each system, but I don't know what I need to edit or how it needs to be packaged. They just look like ordinary gzipped tarballs, but how are the new tweaks in the package applied to the installed os?

  • whistl
    October 31, 2009 - 4:38 pm | Permalink

    Thanks a bunch for posting this. Exactly what I needed.

  • whistl
    October 31, 2009 - 9:38 am | Permalink

    Thanks a bunch for posting this. Exactly what I needed.

  • Leave a Reply