[gPXE] There and back again. gPXE to HTTP to TFTP
Ben Rockwood
benr at joyent.com
Sun Oct 31 06:40:02 EDT 2010
I'm trying to augment my existing PXE deployment with gPXE to allow for
scripting via CGI, etc..
In the "usual" way (according to the docs) I TFTP gPXE, it autoboots and
grabs a URL from DHCP, then the gpxe script tells it to chainload a
different URL based on the SMBIOS serial (http://server/${serial}.gpxe).
So up to the point of chainloading the second gpxe script everything is
by the book.
My problem is that from the HTTP script I want to TFTP boot. According
to the docs and video talks, any path that doesn't contain "http://"
should be interpreted as TFTP... but this isn't the case. Instead,
"chain pxegrub" acts as though I mistakenly left off the base URL and
fills it in for me. I've even tried "chain /pxegrub", etc, but no luck.
So here's the wierd part that confuses the hell out of me. If I boot to
gPXE, bail out to the CLI and then walk it though my steps manually it
works. That is, if I do the following I'm fine via CLI:
<control-b>
ifopen net0
dhcp net0
clear net0.dhcp/filename
clear filename
chain pxegrub
Like I said, the above proceedure done manually works just great. I can
boot my old SYSLINUX and PXEGRUB images via TFTP just as I always have.
But if I translate the above into gpxe scripts from HTTP it doesn't work.
I've tried all manner for clearing variables, imgfree, etc, etc, etc.
No matter what I do, I can't TFTP from an HTTP boot script.
Please oh please, can someone point me in the right direction? I've
spent hours going round and round, and I'm sure its gotta be something
simple I'm missing.
benr.
More information about the gPXE
mailing list