Skip to content

Instantly share code, notes, and snippets.

@vicenteg
Last active December 19, 2015 19:08
Show Gist options
  • Save vicenteg/6003484 to your computer and use it in GitHub Desktop.
Save vicenteg/6003484 to your computer and use it in GitHub Desktop.
Example of PXE boot for ESXi on SeaMicro SM15000 server.

These instructions assume you have already set up a working netboot environment, complete with tftp server. What follows below is a doctored cobbler setup, so YMMV depending on how you manage your netboot environment. Note that running cobbler sync will clobber these files, so this is really just a temporary solution.

First, copy the contents of the ESXi 5.1 ISO to /var/lib/tftpboot/images/esxi5-x86_64. This should look something like the following for ESXi 5.1:

[vince@cobbler tftpboot]$ cd images/esxi5-x86_64/
[vince@cobbler esxi5-x86_64]$ ls
a.b00         boot.cfg      isolinux.cfg  net_enic.v00  safeboot.c32  scsi_fni.v00  scsi_rst.v00
ata_pata.v00  chardevs.b00  k.b00         net_forc.v00  sata_ahc.v00  scsi_hps.v00  s.v00
ata_pata.v01  efiboot.img   mboot.c32     net_igb.v00   sata_ata.v00  scsi_ips.v00  tboot.b00
ata_pata.v02  ehci_ehc.v00  menu.c32      net_ixgb.v00  sata_sat.v00  scsi_lpf.v00  tools.t00
ata_pata.v03  esx_dvfi.v00  misc_cni.v00  net_nx_n.v00  sata_sat.v01  scsi_meg.v00  uhci_usb.v00
ata_pata.v04  ima_qla4.v00  misc_dri.v00  net_r816.v00  sata_sat.v02  scsi_meg.v01  user.b00
ata_pata.v05  imgdb.tgz     net_be2n.v00  net_r816.v01  sata_sat.v03  scsi_meg.v02  useropts.gz
ata_pata.v06  imgpayld.tgz  net_bnx2.v00  net_s2io.v00  sata_sat.v04  scsi_mpt.v00  vmware-esx-base-osl.txt
ata_pata.v07  ipmi_ipm.v00  net_bnx2.v01  net_sky2.v00  scsi_aac.v00  scsi_mpt.v01  vmware-esx-base-readme
b.b00         ipmi_ipm.v01  net_cnic.v00  net_tg3.v00   scsi_adp.v00  scsi_mpt.v02  weaselin.t00
block_cc.v00  ipmi_ipm.v02  net_e100.v00  net_vmxn.v00  scsi_aic.v00  scsi_qla.v00  xlibs.v00
boot.cat      isolinux.bin  net_e100.v01  ohci_usb.v00  scsi_bnx.v00  scsi_qla.v01  xorg.v00

Copy boot.cfg below to /var/lib/tftpboot/boot.cfg. This is the boot configuration file.

Copy default below to /var/lib/tftpboot/pxelinux.cfg/default, or to a file specific to the MAC address of the server you'd like to install.

Note that these files are explictly referred to by the "modules=" line in boot.cfg. The kernel will try to load these modules one by one as it boots. If it fails to do so, the boot process might silently hang. You can monitor your log file (/var/log/messages on CentOS 6) for tftp messages that might give clues for which files are failing to download. The best indication of this is when the last file in the modules list is not the last file you see in the logs. Note however that there can be some time in between files being downloaded.

At the moment, I do not see how we can redirect console to the serial port in kickstart, so this must be done manually. Refer to the offical VMware documentation: http://pubs.vmware.com/vsphere-50/index.jsp#com.vmware.vsphere.install.doc_50/GUID-7651C4A2-C358-40C2-8990-D82BDB8127E0.html

bootstate=0
title=Loading ESXi installer
kernel=tboot.b00
kernelopt=runweasel debugui text nofb gdbPort=none logPort=com1 tty2Port=com1 tty1Port=com1 com1_baud=115200 ks=http://10.1.1.254/cblr/svc/op/ks/system/server0
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
DEFAULT install
SERIAL 0 115200
MENU TITLE ESXi-5.1-full Boot Menu
NOHALT 1
PROMPT 1
TIMEOUT 80
LABEL install
KERNEL images/esxi5-x86_64/mboot.c32
APPEND -c images/esxi5-x86_64/boot.cfg
MENU LABEL ESXi-5.1-full ^Installer
LABEL hddboot
LOCALBOOT 0x80
MENU LABEL ^Boot from local disk
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment