Thursday 1 August 2013

Installing ESXi Server with PXE and a serial console

I wanted to install ESXi Server 5.1 on a machine on the other side of the word. I have remote power control, and serial console and access to it's DHCP server and another server on that network, so I thought I could manage it.

I read many half-baked, typo-ridden and downright misleading sets of instructions so I thought I'd write some half-baked, typo-ridden and downright misleading instructions which worked for me.

Generally follow the instructions on the vSphere 5 Doumentation Center with a dash of this but here is what I did:

Unpack the iso into a tftp subdirectory (vmw for me), and so my pxelinux config file is here - and note that I am using the mboot.c32 from the vmware iso but the menu.c32 from my pxelinux installation, otherwise mboot tries to fetch a file called -c.

DEFAULT menu.c32
MENU TITLE ESXi-5.x.x-XXXXXX-full Boot Menu
NOHALT 1
PROMPT 0
TIMEOUT 80
LABEL install
  KERNEL /vmw/mboot.c32
  APPEND -c /vmw/boot.cfg gdbPort=none logPort=none tty2Port=com1
  ipappend 2
  MENU LABEL ESXi-5.x.x-XXXXXX-full ^Installer

LABEL hddboot
 LOCALBOOT 0x80
 MENU LABEL ^Boot from local disk

edit boot.cfg (unpacked from the iso), note that the leading / from all the filenames has been removed, a prefix has been added and some nonsense about comports added to kernelopt

bootstate=0
title=Loading ESXi installer
prefix=vmw
kernel=tboot.b00
kernelopt=runweasel com1_Port=0x3f8 tty2Port=com1 gdbPort=none logPort=none 
modules=b.b00 --- useropts.gz --- k.b00 --- chardevs.b00 --- a.b00 --- user.b00 --- s.v00 --- ata_pata.v00 --- ata_pata.v01 --- ata_pata.v02 --- ata_pata.v03 --- ata_pata.v04 --- ata_pata.v05 --- ata_pata.v06 --- ata_pata.v07 --- block_cc.v00 --- ehci_ehc.v00 --- weaselin.t00 --- esx_dvfi.v00 --- xlibs.v00 --- ima_qla4.v00 --- ipmi_ipm.v00 --- ipmi_ipm.v01 --- ipmi_ipm.v02 --- misc_cni.v00 --- misc_dri.v00 --- net_be2n.v00 --- net_bnx2.v00 --- net_bnx2.v01 --- net_cnic.v00 --- net_e100.v00 --- net_e100.v01 --- net_enic.v00 --- net_forc.v00 --- net_igb.v00 --- net_ixgb.v00 --- net_nx_n.v00 --- net_r816.v00 --- net_r816.v01 --- net_s2io.v00 --- net_sky2.v00 --- net_tg3.v00 --- net_vmxn.v00 --- ohci_usb.v00 --- sata_ahc.v00 --- sata_ata.v00 --- sata_sat.v00 --- sata_sat.v01 --- sata_sat.v02 --- sata_sat.v03 --- sata_sat.v04 --- scsi_aac.v00 --- scsi_adp.v00 --- scsi_aic.v00 --- scsi_bnx.v00 --- scsi_fni.v00 --- scsi_hps.v00 --- scsi_ips.v00 --- scsi_lpf.v00 --- scsi_meg.v00 --- scsi_meg.v01 --- scsi_meg.v02 --- scsi_mpt.v00 --- scsi_mpt.v01 --- scsi_mpt.v02 --- scsi_qla.v00 --- scsi_qla.v01 --- scsi_rst.v00 --- uhci_usb.v00 --- tools.t00 --- xorg.v00 --- imgdb.tgz --- imgpayld.tgz
build=
updated=0

It only remained to de-program F11 as a magic key for gnome-terminal as that key was needed to accept the license.