[syslinux] Nested PXELINUX configurations

Giannis Roussos morpheus at csl.mech.ntua.gr
Thu Mar 24 09:59:11 PDT 2011


Hello all,
I have a boot server (running Debian Lenny x64) with a number of 
bootable options already configured (freedos, memtest, sysresccd etc).

What I am struggling to do now is add Ubuntu and Debian netinst images 
so that I can boot from the network and have all the boot options 
available as if I was using a CD-ROM.

The problem is that (as far as I can tell) the Ubuntu and Debian 
PXELINUX assume that they are located in the tftp root folder. Since 
however Debian and Ubuntu use a similar file structure, I cant have both 
distros a the same time in the tftp root. (Not to mention the mess this 
would create in the tftp root).

Idealy I would like to place each distro in a separate folder inside 
tftp root (see below) and "chainload" each pxelinux configuration from 
the default config file.

TFTP_root---pxelinux.cfg--->default
     |
     |-------debian------pxelinux.cfg----->default
     |
     |-------ubuntu------pxelinux.cfg----->default

Since PXELINUX uses (AFAIK) absolute paths, there are two ways to 
achieve something like this:
1) Edit all configuration files and add the correct path in all include 
arguments. I have done it for Ubuntu and it works but is not practical 
at all, requiring a lot of work for each new release.
2) Find the correct kernel, initrd etc settings for the Ubuntu/Debian 
options and add them to the main PXELinux config or a submenu. Again, 
this requires a lot of work to add all the options and the graphics/help 
of each distro wouldn't be available.

None of the above options is nice and practical, nor allows me to easily 
update to newer releases without a lot of work.
Thus, I was wondering if there is some way to chainload the COMPLETE 
PXELINUX config of each distro from separate folders. Maybe some option 
to "chroot" pxelinux so that all files are automaticaly loaded from the 
nested folder?

I have tried copying pxelinux.0 in each of the distros' folders and load 
this as a new kernel, but the pxelinux cfg in the tftp root is loaded 
still. Directly loading the main cfg file does not work either since all 
the included files are not in the tftp root.

The same question has been asked here 
http://web.archiveorange.com/archive/v/mwjwmJ0CIqkvn1V88yus but no 
complete answer has been given.

Thanks for all the help,
Giannis


-- 
-
------------------------------------------------------------------------------
  Giannis P. Roussos
  PhD Student
  Control Systems Lab, Mechanical Eng. Dept.
  National Technical University of Athens
  9 Heroon Polytechniou Str., Zografou
  Athens 15700, Greece

  Tel : ++30-210-772-1726
  e-mail : jrous at mail.ntua.gr
------------------------------------------------------------------------------ 




More information about the Syslinux mailing list