title: VMWare Ignores prefix in boot.cfg
body: <p>I am trying to PXE boot VMWare ESXi and it gets to boot.cfg, tries to download all the modules,  but runs into problem when it doesn't follow the prefix directive.</p>
  
  <p>I have configured boot.cfg as follows:</p>
  
  <pre><code>bootstate=0
  title=Loading ESXi installer
  timeout=5
  kernel=/tboot.b00
  prefix=/VMware-ESXi-6.5U2-RollupISO
  kernelopt=runweasel
  modules=/b.b00 --- /jumpstrt.gz --- /useropts.gz --- /features.gz --- /k.b00 --- /chardevs.b00 --- /a.b00 --- /user.b00 --- /uc_intel.b00 --- /uc_amd.b00 --- /sb.v00 --- /s.v00 --- /scsi_cel.v00 --- /scsi_esa.v00 --- /scsi_esa.v01 --- /scsi_cel.v01 --- /scsi_esa.v02 --- /scsi_aac.v00 --- /scsi_adp.v00 --- /dell_sha.v00 --- /lsi_mr3.v00 --- /lsi_msgp.v00 --- /scsi_meg.v00 --- /scsi_mpt.v00 --- /bnxtnet.v00 --- /bnxtroce.v00 --- /net_enic.v00 --- /scsi_fni.v00 --- /scsi_sni.v00 --- /cxl.v00 --- /ima_csio.v00 --- /net_cxgb.v00 --- /scsi_csi.v00 --- /ima_be2i.v00 --- /scsi_be2.v00 --- /sas_vgc.v00 --- /scsi_hps.v00 --- /hfcndd.v00 --- /scsi_hfc.v00 --- /block_hi.v00 --- /hiodrive.v00 --- /net_ibma.v00 --- /scsi_roc.v00 --- /i40en.v00 --- /iavmd.v00 --- /igbn.v00 --- /intel_nv.v00 --- /ixgben.v00 --- /net_i40e.v00 --- /net_igb.v00 --- /net_ixgb.v00 --- /mx_nvme.v00 --- /nmlx5_co.v00 --- /nmlx5_rd.v00 --- /net_mlx_.v00 --- /net_mlx4.v00 --- /net_mlx4.v01 --- /nhpsa.v00 --- /scsi_ocz.v00 --- /nqlcnic.v00 --- /qcnic.v00 --- /qedentv.v00 --- /qedrntv.v00 --- /qfle3.v00 --- /qfle3f.v00 --- /qfle3i.v00 --- /ima_qla4.v00 --- /misc_cni.v00 --- /net_bna.v00 --- /net_bnx2.v00 --- /net_bnx2.v01 --- /net_cnic.v00 --- /net_nx_n.v00 --- /net_qlcn.v00 --- /net_qlge.v00 --- /qlnative.v00 --- /scsi_bfa.v00 --- /scsi_bnx.v00 --- /scsi_bnx.v01 --- /scsi_qla.v00 --- /smgnvme.v00 --- /iomemory.v00 --- /native_s.v00 --- /net_sgb.v00 --- /net_sxgb.v00 --- /scsi_ste.v00 --- /ata_liba.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 --- /brcmfcoe.v00 --- /char_ran.v00 --- /ehci_ehc.v00 --- /elxnet.v00 --- /hid_hid.v00 --- /ipmi_ipm.v00 --- /ipmi_ipm.v01 --- /ipmi_ipm.v02 --- /lpfc.v00 --- /lsi_msgp.v01 --- /lsi_msgp.v02 --- /misc_dri.v00 --- /mtip32xx.v00 --- /ne1000.v00 --- /nenic.v00 --- /net_cdc_.v00 --- /net_e100.v00 --- /net_e100.v01 --- /net_fcoe.v00 --- /net_forc.v00 --- /net_libf.v00 --- /net_tg3.v00 --- /net_usbn.v00 --- /net_vmxn.v00 --- /nmlx4_co.v00 --- /nmlx4_en.v00 --- /nmlx4_rd.v00 --- /ntg3.v00 --- /nvme.v00 --- /nvmxnet3.v00 --- /ohci_usb.v00 --- /pvscsi.v00 --- /qflge.v00 --- /sata_ahc.v00 --- /sata_ata.v00 --- /sata_sat.v00 --- /sata_sat.v01 --- /sata_sat.v02 --- /sata_sat.v03 --- /sata_sat.v04 --- /scsi_adp.v01 --- /scsi_aic.v00 --- /scsi_ips.v00 --- /scsi_isc.v00 --- /scsi_lib.v00 --- /scsi_meg.v01 --- /scsi_meg.v02 --- /scsi_mpt.v01 --- /scsi_mpt.v02 --- /scsi_mpt.v03 --- /shim_isc.v00 --- /shim_isc.v01 --- /shim_lib.v00 --- /shim_lib.v01 --- /shim_lib.v02 --- /shim_lib.v03 --- /shim_lib.v04 --- /shim_lib.v05 --- /shim_vmk.v00 --- /shim_vmk.v01 --- /shim_vmk.v02 --- /smartpqi.v00 --- /uhci_usb.v00 --- /usb_stor.v00 --- /usbcore_.v00 --- /vmkata.v00 --- /vmkplexe.v00 --- /vmkusb.v00 --- /vmw_ahci.v00 --- /xhci_xhc.v00 --- /emulex_e.v00 --- /btldr.t00 --- /weaselin.t00 --- /esx_dvfi.v00 --- /esx_ui.v00 --- /lsu_hp_h.v00 --- /lsu_lsi_.v00 --- /lsu_lsi_.v01 --- /lsu_lsi_.v02 --- /lsu_lsi_.v03 --- /native_m.v00 --- /rste.v00 --- /vmware_e.v00 --- /vsan.v00 --- /vsanheal.v00 --- /vsanmgmt.v00 --- /tools.t00 --- /scsi_arc.v00 --- /xorg.v00 --- /imgdb.tgz --- /imgpayld.tgz
  build=
  updated=0
  </code></pre>
  
  <p>It fails, and per Wireshark, the prefix path is not being included in the tftp path.</p>
  
  <p>If I add the prefix path into the kernel= line, it successfully finds and downloads tboot.b00</p>
  
  <pre><code>bootstate=0
  title=Loading ESXi installer
  timeout=5
  kernel=/VMware-ESXi-6.5U2-RollupISO/tboot.b00
  prefix=/VMware-ESXi-6.5U2-RollupISO
  kernelopt=runweasel
  modules=/b.b00 --- /jumpstrt.gz --- /useropts.gz --- /features.gz --- /k.b00 --- /chardevs.b00 --- /a.b00 --- /user.b00 --- /uc_intel.b00 --- /uc_amd.b00 --- /sb.v00 --- /s.v00 --- /scsi_cel.v00 --- /scsi_esa.v00 --- /scsi_esa.v01 --- /scsi_cel.v01 --- /scsi_esa.v02 --- /scsi_aac.v00 --- /scsi_adp.v00 --- /dell_sha.v00 --- /lsi_mr3.v00 --- /lsi_msgp.v00 --- /scsi_meg.v00 --- /scsi_mpt.v00 --- /bnxtnet.v00 --- /bnxtroce.v00 --- /net_enic.v00 --- /scsi_fni.v00 --- /scsi_sni.v00 --- /cxl.v00 --- /ima_csio.v00 --- /net_cxgb.v00 --- /scsi_csi.v00 --- /ima_be2i.v00 --- /scsi_be2.v00 --- /sas_vgc.v00 --- /scsi_hps.v00 --- /hfcndd.v00 --- /scsi_hfc.v00 --- /block_hi.v00 --- /hiodrive.v00 --- /net_ibma.v00 --- /scsi_roc.v00 --- /i40en.v00 --- /iavmd.v00 --- /igbn.v00 --- /intel_nv.v00 --- /ixgben.v00 --- /net_i40e.v00 --- /net_igb.v00 --- /net_ixgb.v00 --- /mx_nvme.v00 --- /nmlx5_co.v00 --- /nmlx5_rd.v00 --- /net_mlx_.v00 --- /net_mlx4.v00 --- /net_mlx4.v01 --- /nhpsa.v00 --- /scsi_ocz.v00 --- /nqlcnic.v00 --- /qcnic.v00 --- /qedentv.v00 --- /qedrntv.v00 --- /qfle3.v00 --- /qfle3f.v00 --- /qfle3i.v00 --- /ima_qla4.v00 --- /misc_cni.v00 --- /net_bna.v00 --- /net_bnx2.v00 --- /net_bnx2.v01 --- /net_cnic.v00 --- /net_nx_n.v00 --- /net_qlcn.v00 --- /net_qlge.v00 --- /qlnative.v00 --- /scsi_bfa.v00 --- /scsi_bnx.v00 --- /scsi_bnx.v01 --- /scsi_qla.v00 --- /smgnvme.v00 --- /iomemory.v00 --- /native_s.v00 --- /net_sgb.v00 --- /net_sxgb.v00 --- /scsi_ste.v00 --- /ata_liba.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 --- /brcmfcoe.v00 --- /char_ran.v00 --- /ehci_ehc.v00 --- /elxnet.v00 --- /hid_hid.v00 --- /ipmi_ipm.v00 --- /ipmi_ipm.v01 --- /ipmi_ipm.v02 --- /lpfc.v00 --- /lsi_msgp.v01 --- /lsi_msgp.v02 --- /misc_dri.v00 --- /mtip32xx.v00 --- /ne1000.v00 --- /nenic.v00 --- /net_cdc_.v00 --- /net_e100.v00 --- /net_e100.v01 --- /net_fcoe.v00 --- /net_forc.v00 --- /net_libf.v00 --- /net_tg3.v00 --- /net_usbn.v00 --- /net_vmxn.v00 --- /nmlx4_co.v00 --- /nmlx4_en.v00 --- /nmlx4_rd.v00 --- /ntg3.v00 --- /nvme.v00 --- /nvmxnet3.v00 --- /ohci_usb.v00 --- /pvscsi.v00 --- /qflge.v00 --- /sata_ahc.v00 --- /sata_ata.v00 --- /sata_sat.v00 --- /sata_sat.v01 --- /sata_sat.v02 --- /sata_sat.v03 --- /sata_sat.v04 --- /scsi_adp.v01 --- /scsi_aic.v00 --- /scsi_ips.v00 --- /scsi_isc.v00 --- /scsi_lib.v00 --- /scsi_meg.v01 --- /scsi_meg.v02 --- /scsi_mpt.v01 --- /scsi_mpt.v02 --- /scsi_mpt.v03 --- /shim_isc.v00 --- /shim_isc.v01 --- /shim_lib.v00 --- /shim_lib.v01 --- /shim_lib.v02 --- /shim_lib.v03 --- /shim_lib.v04 --- /shim_lib.v05 --- /shim_vmk.v00 --- /shim_vmk.v01 --- /shim_vmk.v02 --- /smartpqi.v00 --- /uhci_usb.v00 --- /usb_stor.v00 --- /usbcore_.v00 --- /vmkata.v00 --- /vmkplexe.v00 --- /vmkusb.v00 --- /vmw_ahci.v00 --- /xhci_xhc.v00 --- /emulex_e.v00 --- /btldr.t00 --- /weaselin.t00 --- /esx_dvfi.v00 --- /esx_ui.v00 --- /lsu_hp_h.v00 --- /lsu_lsi_.v00 --- /lsu_lsi_.v01 --- /lsu_lsi_.v02 --- /lsu_lsi_.v03 --- /native_m.v00 --- /rste.v00 --- /vmware_e.v00 --- /vsan.v00 --- /vsanheal.v00 --- /vsanmgmt.v00 --- /tools.t00 --- /scsi_arc.v00 --- /xorg.v00 --- /imgdb.tgz --- /imgpayld.tgz
  build=
  updated=0
  </code></pre>
  
  <p>And then it fails on the very next file, b.b00.  It's as if the prefix is being ignored.</p>
  
  <p>What am I missing?</p>