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?