[syslinux] Chainloading from one PXELINUX to another (with some iPXE in the mix)?

Mike Sollanych msollany at sfu.ca
Wed Jun 8 10:29:25 PDT 2011

----- Original Message -----
> From: "Jeffrey Hutzelman" <jhutz at cmu.edu>
> To: "For discussion of Syslinux and tftp-hpa" <syslinux at zytor.com>
> Sent: Wednesday, June 8, 2011 7:34:42 AM
> Subject: Re: [syslinux] Chainloading from one PXELINUX to another (with some iPXE in the mix)?
> Why not skip all this complexity, and simply use PXECHAIN.COM to
> chain-boot a new copy of PXELINUX from the FOG server?  Then it can
> manage the TFTP directory however it wants, provide whatever PXELINUX
> it
> wants to run, associated com32 modules, etc., and the rest of your
> system doesn't need to know anything about it.
> This approach also has the advantage that PXECHAIN can pass control
> to
> _any_ PXE NBP, not just PXELINUX, so you can hand off to pretty much
> anything that thinks it ought to be running or installed on a PXE
> server.
> -- Jeffrey T. Hutzelman (N3NHS) <jhutz+ at cmu.edu>

This sounds great, but pxechain.com looks to be poorly documented. 
I can only find a smattering of mailing lists posts about how to use it, and 
a very short section on the SYSLINUX wiki.

My attempts thus far:

- At the boot prompt, "pxechain.com [FOG SERVER FQDN]::pxelinux.0"

- In the config file, a label with:
	COMBOOT pxechain.com
	APPEND [FOG SERVER FQDN]::pxelinux.0 

Same thing either way, I guess.

This will load the PXELINUX from the FOG server, which is still 3.86 compared
to the 4.xx running on the master server. *However*, it still tries to load its
config file from the master server, using the precedence order (mac->ip->default).

That won't work. I guess I need to change the TFTP prefix more, somehow, in order 
to get it to load config files from the other server as well as its PXELINUX image?

However, regardless of where it's looking for config files, it seems to sporadically 
not work. I'm testing it on a physical machine (some Dell Dimension 1100) as well 
as the latest Virtualbox with the E1000 PXE extensions. I've had it go as far as 
trying to load the MAC-specific config file (from the wrong server) before freezing, 
and do as little as printing "TFTP boot" and dying there. Very odd. I don't know if 
this method will be reliable across a wide gamut of hardware. I have not gotten it 
to successfully go as far as loading its pxelinux.cfg/default file (which would still
be from the master server and therefore should give me back my original main menu,
I'd think).

In all honesty, it's the config files that are far more important than the
PXELINUX that's over there. I have no problem with duplicating FOG's static
boot entries in my main menu, it's the dynamic MAC-address specific boot entry
that's stumping me.

Seeing as how I've had luck with that CONFIG directive (config.c32) at loading
the default file, it makes sense (to me anyway) that a modification of that
module to support loading PXELINUX config files using the same precedence
as the initial load would do the trick quite nicely.

Perhaps I'm simply issuing the pxechain.com command wrong. Suggestions on that front
would be appreciated.

Mike Sollanych

More information about the Syslinux mailing list