Thursday, 31 January 2008

PXE Boot ESX 3i Installable Edition

My quest for statelessness went one step further today, when I seemingly PXE booted ESX 3i. I say seemingly because I didn't actually run up any VM's on it - I did however join it to VirtualCenter, create a vSwitch and browsed it's datastore, so it's all looking pretty promising.

I'm not suggesting that such a thing should be done in production environments using the 3i installable version, however taking the files from an OEM'ed 3i and ensuring only that specific hardware model can boot that particular image could be a workable solution. I'll post the steps here not because they're especially difficult, but in the hope that others will join the quest and help to shape where VMware is going with all this. So here goes:

1. unzip install.tgz from ESX 3i Installable media

2. unrar install.rar (ie. the contents of install.tgz)

3. Go to \usr\lib\vmware\installer

4. Unzip VMware-VMvisor-big-3.5.0-XXXXX.i386.dd.bz2

You now have the main image transferred to disk when installing ESX 3i

5. Open up the VMware-VMvisor-big-3.5.0-XXXXX.i386.dd image with your tool of choice (I like the free ftk imager lite from AccessData )

6. Extract the mboot.c32 file from the [root] directory of the 'Hypervisor0' partition

7. Extract the entire [root] directory from the 'Hypervisor1' partition

You now have the requisite boot files and image files for a functioning 3i environment. To PXE boot it, just copy all the extracted files to your PXE server, and create a menu option for PXElinux that looks something like:

label 3i
kernel mboot.c32
append vmkernel.gz --- binmod.tgz --- environ.tgz --- cim.tgz --- oem.tgz --- license.tgz

You're now done!

You can obviously go in a few different directions from here... from something as simple as creating DHCP reservations for your hosts and setting the relevant options for hostname and domain name, to modifying the 3i startup script to do something more elaborate.

And again - there could easily be something entirely missing... there's a small vmfs partition on the dd image and I'm not sure what that's for. I'm sure 3i would need some kind of swap partition too which possibly isnt there when it's PXE booted in this manner. Further investigation is warranted (and will be done, at least by me :-)

I'll be following the rabbit hole a little deeper on this one, stay tuned...