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
------------------------------------------------------------------------------
On Thu, Mar 24, 2011 at 12:59, Giannis Roussos <morpheus at csl.mech.ntua.gr> wrote:> Hello all,Comments inline; solution near the bottom.> 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).The structure of the configs is an issue for everything but PXELINUX. PXELINUX actually uses "::" as the character to indicate a root directory.> 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 achieveIt never uses absolute paths as I mentioned in the post you linked below.> 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.Don't use it as a kernel. Try the following: LABEL debian COMBOOT pxechain.com APPEND ::debian/pxelinux.0 Please note that if the first PXELINUX is version 4.xx, it must be at least version 4.04-pre1 as there is a bug that was resolved in 4.04-pre1. I believe 4.04-pre14 is OK but I can't be certain at this time. For a production environment, I'd advise waiting for 4.04. Otherwise, try 3.86 for now.> 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, > GiannisI thought that it was. I also think that the above post is a little different. -- -Gene
Rich Mahn
2011-Mar-29 19:52 UTC
[syslinux] Nested SYSLINUX configurations -- error using CONFIG directive
H. Peter Anvin <hpa at zytor.com> wrote:>> There seems to be an error using '..' in the append portion of the >> CONFIG directive. > > This is a known bug in Syslinux 4.03. It should be fixed in 4.04-pre14, > but if it is not, please scream. > > -hpa > > > -- > H. Peter Anvin, Intel Open Source Technology Center > I work for Intel. I don't speak on their behalf.This bug still exists in 4.04-pre12. I can't get 4.04-pre13 or 4.04-pre14 to run at all. I get the message: SYSLINUX 4.04_pre13 CHS Copyright (c) 1994-2011 H. Peter Avin et al and then nothing else.