2

I have a current working PXELINUX setup, with menu for different OS version. Recently I tried to add VMware installer to it. It was looking great up to a point where I was not able to load the required files. VMware itself says using TFTP for downloading all the files is not the best option, especially if you have a high load network, and they recommend using HTTP/gPXE for this.

So I was looking at implementing gPXE. But all my several tries so far were not working, and I'm not sure what the problem is at this point.

For a start I changed the filename in the DHCP config to point to gpxelinux.0 instead of pxelinux.0 System is booting, showing gPXE, but not processing further. It is getting a DHCP and then shows

No filename or root path specified

I also tried to chainload gPXE from the PXELINUX config, which came back with the same errors.

I read some docs in regards to gPXE, and they all are using a HTTP source for the filename in the DHCP config. I tried that next, but it is already showing me TFTP errors

PXE-T01: File not found PXE-E3B: TFTP Error - File Not found

At this point I'm not sure what else to try. I already copied the whole TFTP to the HTTP server, tried using gPXE scripts which will rewrite the source using DHCP option 209/210. But they all fail because I cannot load it in the DHCP config using HTTP.

Can anybody give me some hints on where to look for errors, or how I could convert my current PXELINUX to gPXE.

Any help much appreciated.

UPDATE:

I was playing around, and finally got it working. Was an error in the DHCP config. Here is what I'm using now:

class "pxeclients" { match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; if exists user-class and option user-class = "gPXE" { filename "http://10.140.160.203/boot.gpxe"; } else { next-server 10.140.160.203; filename "/gpxelinux.0"; } }

And the boot.gpxe is chain loading my pxelinux config

#!gpxe imgfree chain http://10.140.160.203/vesamenu.c32 http://10.140.160.203/pxelinux.cfg/default

Is this a good approach, or is there something else to be aware off?

derchris
  • 471
  • 2
  • 7

1 Answers1

0

You do not need to move to gPXE as lpxelinux.0 (Syslinux 6.03) supports http transfers.

Also if you are installing VMware VMvisor (i.e. VMware-VMvisor-Installer-6.0.0-2494585.x86_64.iso) you can do it just by regular TFTP if you correctly set your environment. i.e. if you are trying to install it using an iso and the memdisk technique you will surely fail. instead you can use the mboot approach; from Serva's site:

kernel   = /NWA_PXE/$HEAD_DIR$/mboot.c32
append   = -c /NWA_PXE/$HEAD_DIR$/BOOT.CFG
Pat
  • 3,519
  • 2
  • 17
  • 17
  • I used the mboot approach. It was always failing to copy one of the files, returning with a device error, which I concluded to be down to the network traffic and TFTP download. I'm using syslinux 4.05 – derchris Apr 29 '15 at 09:53
  • if always fails on the same file; I think you are probably having a different problem; check if the file is not corrupted. Vmware components are not big they should TFTP transfer w/o problem. – Pat Apr 29 '15 at 10:30
  • Tried using the same ISO in a VMware image, which boots ok. TFTP was pulling data from same loop mounted ISO. But since I got gPXE now working, install is going through. – derchris Apr 29 '15 at 11:00