PXELINUX pxeconfig.cfg File Loading Sequence:

++++ ALTERNATE TFTP SERVERS ++++
PXELINUX supports the following special pathname conventions:
::filename
Suppresses the common filename prefix, i.e. passes the string
"filename" unmodified to the server.
IP address::filename (e.g. 192.0.2.1::filename)
Suppresses the common filename prefix, *and* sends a request
to an alternate TFTP server. Instead of an IP address, a
DNS name can be used. It will be assumed to be fully
qualified if it contains dots; otherwise the local domain as
reported by the DHCP server (option 15) will be added.
--------------------------------------------------------------------------------
++++ HOW TO CONFIGURE PXELINUX ++++
PXELINUX operates in many ways like SYSLINUX. If you are not familiar
with SYSLINUX, read syslinux.txt first, since this documentation only
explains the differences.
On the TFTP server, create the directory "/tftpboot", and copy the
following files to it:
pxelinux.0 - from the Syslinux distribution
any kernel or initrd images you want to boot
Finally, create the directory "/tftpboot/pxelinux.cfg". The
configuration file (equivalent of syslinux.cfg -- see syslinux.txt for
the options here) will live in this directory. Because more than one
system may be booted from the same server, the configuration file name
depends on the IP address of the booting machine. PXELINUX will
search for its config file on the boot server in the following way:
First, it will search for the config file using the client UUID, if
one is provided by the PXE stack (note, some BIOSes don't have a
valid UUID, and you might end up with something like all 1's.) This is
in the standard UUID format using lower case hexadecimal digits, e.g.
b8945908-d6a6-41a9-611d-74a6ab80b83d.
Next, it will search for the config file using the hardware type
(using its ARP type code) and address, all in lower case hexadecimal
with dash separators; for example, for an Ethernet (ARP type 1)
with address 88:99:AA:BB:CC:DD it would search for the filename
01-88-99-aa-bb-cc-dd.
Next, it will search for the config file using its own IP address
in upper case hexadecimal, e.g. 192.0.2.91 -> C000025B
(you can use the included progam "gethostip" to compute the
hexadecimal IP address for any host.)
If that file is not found, it will remove one hex digit and try
again. Ultimately, it will try looking for a file named "default"
(in lower case).
As an example, if the boot file name is /mybootdir/pxelinux.0, the
UUID is b8945908-d6a6-41a9-611d-74a6ab80b83d, the Ethernet MAC
address is 88:99:AA:BB:CC:DD and the IP address 192.0.2.91, it will
try:
/mybootdir/pxelinux.cfg/b8945908-d6a6-41a9-611d-74a6ab80b83d
/mybootdir/pxelinux.cfg/01-88-99-aa-bb-cc-dd
/mybootdir/pxelinux.cfg/C000025B
/mybootdir/pxelinux.cfg/C000025
/mybootdir/pxelinux.cfg/C00002
/mybootdir/pxelinux.cfg/C0000
/mybootdir/pxelinux.cfg/C000
/mybootdir/pxelinux.cfg/C00
/mybootdir/pxelinux.cfg/C0
/mybootdir/pxelinux.cfg/C
/mybootdir/pxelinux.cfg/default
... in that order.
Note that all filename references are relative to the directory
pxelinux.0 lives in. PXELINUX generally requires that filenames
(including any relative path) are 127 characters or shorter in length.
Starting in release 3.20, PXELINUX will no longer apply a built-in
default if it cannot find any configuration file at all; instead it
will reboot after the timeout interval has expired. This keeps a
machine from getting stuck indefinitely due to a boot server failure.
Starting in release 3.50, PXELINUX displays network information at
the boot prompt pressing .
boot: [CTRL]+[N]
PXELINUX does not support MTFTP, and I have no plans of doing so, as
MTFTP is inherently broken for files more than 65535 packets (about
92 MB) in size. It is of course possible to use MTFTP for the initial
boot, if you have such a setup. MTFTP server setup is beyond the
scope of this document.