[syslinux] chainload back pxelinux from Grub4DOS?

Frantisek Rysanek Frantisek.Rysanek at post.cz
Fri Dec 18 08:04:05 PST 2009


Dear everyone,

I have a simple and silly question.

I'm using pxelinux in a small LAN - I'm using it to boot a few 
universal profiles based on Linux and DOS.
I have a simple DOS-based "screensaver" (winter background theme with 
snow falling down) that I'd like to hook up as a default profile (say 
after 5 minutes timeout) into the PXElinux boot menu.

That works - the problem is that I cannot exit right back into 
pxelinux. I've tried calling int 0x19 and int 0x18, but all I could 
ever achieve was a reboot, which takes considerable time (not 
ergonomic for my users). Sure I can reboot explicitly in other ways. 
The problem is that having to reboot is a pain. One odd machine was 
actually willing to try the boot sequence again, but it failed for 
some other reason anyway.

Using Grub4DOS.EXE, I can chainload other things from DOS. Say 
Windows XP or Linux or whatever harddisk partition or kernel-like 
binary. Tried that, it works.
My idea is this:

POST -> PXElinux -> (keeppxe) memdisk -> DOS -> screensaver 
(wait for Esc) -> Grub4DOS -> back to PXElinux -> ...

But, I can't seem to chainload pxelinux back.
Even if I add "keeppxe" to my "screensaver" profile.
Grub hangs while trying to load pxelinux.0 (the last message says 
"asking for upper memory" or something like that, which is odd). 
Seems to me that the pxelinux.0 binary doesn't have the right header 
to appear as a "linux kernel".
I've tried looking at how the memdisk binary is post-processed by the 
makefile for chainloading (with an idea that I could re-apply the 
same method on the pxelinux binary), but I couldn't figure it out.

I assume that this could be useful for other purposes too, other than 
the screensaver - such as: boot DOS, do some HW maintenance stuff, 
tweak some config registers, and return to the boot menu without a 
reboot... I know I've been in a similar situation before.

Any ideas are welcome :-)

Frank Rysanek

P.S.: one other feature request: would it be possible to have two 
different default profiles, one for timeout, another one for 
"just <Enter>"?




More information about the Syslinux mailing list