If one examines the PXE server configuration file one notes:
# what services to provide, priority in ordering # CSA = Client System Architecture # service=
, , , ,
These lines instruct a PXE booting system to look the base directory /tftpboot on a LAN-local pxe/tftp server. Once there, it looks for the X86PC service, and under that the pxelinux directory.
Here are the contents of this directory on our server:
rgb@ipserv|T:107>dir /tftpboot/X86PC/pxelinux/ 7.3/ 8.0/ beta/ dos/ memdisk* msgs/ newinit/ pxelinux.0 pxelinux.cfg/
There are three "important" kinds of directories here: 7.3, 8.0, beta, dos, and newinit all contain "things to boot" -- e.g. vmlinuz and initrd.img for a linux boot or install, bios flash images (loaded with the "memdisk" loader) in dos. msgs contains messages that you wish to display (possibly containing instructions for selecting a boot/install image, for example) during the boot process. Lastly, pxelinux.cfg/default contains the actual boot instructions for various boot possibilities so pxe do the right thing when they are invoked by name.
For example, to boot into a beowulf install, one might use:
label beowulf-install-7.3 kernel 7.3/vmlinuz append initrd=7.3/initrd.img ks=http://wanserver.mydomain.edu/ks/beowulf.ks lang= devfs=nomount ramdisk_size=8192
which tells it which kernel image to boot (obtained from the institutional-level installation server), along with a line containing the kernel arguments which tell it which initrd to use, where to find a kickstart file such as beowulf.ks file (which might equally well point to an automated kickstart-selecting cgi script). Finally there are some arguments for a standard ramdisk install.