A bit of reading on pxelinux and syslinux and it looks easy to set up my own pxeboot server at home so I don't have to fiddle with floppies, cd-roms or other media anymore.
First of all I wanted the dhcp server to only respond with pxelinux to real pxe clients. There is other stuff which uses dhcp and tftp and might get confused by pxelinux.0 being offered as boot image such as VoIP phones. That can be done with the following in the right context in dhcpd.conf:
if substring (option vendor-class-identifier, 0, 9) = "PXEClient" { filename "/pxelinux.0"; next-server 10.42.2.1; }Next a tftp server is needed, I installed atftpd serving /tftpboot.The next part is the menu structure for pxelinux. The following files are in /tftpboot:
root@greenblatt:/tftpboot# ls -lR .: total 628 -rw-r--r-- 1 root root 30920 2009-09-01 21:20 boot.jpg -rw-r--r-- 1 root root 307200 2009-09-01 20:06 boot.png -rw-r--r-- 1 root root 103204 2009-09-01 21:23 memtest86 -rw-r--r-- 1 root root 35732 2009-09-01 18:29 menu.c32 -rw-r--r-- 1 root root 14146 2009-09-01 17:57 pxelinux.0 drwxr-xr-x 2 root root 4096 2009-09-01 21:34 pxelinux.cfg -rw-r--r-- 1 root root 122988 2009-09-01 18:29 vesamenu.c32 ./pxelinux.cfg: total 8 -rw-r--r-- 1 root root 117 2009-09-01 18:02 bootmenu.txt -rw-r--r-- 1 root root 463 2009-09-01 21:34 defaultAnd the content of pxelinux.cfg/default is:DISPLAY bootmenu.txt DEFAULT vesamenu.c32 PROMPT 0 TIMEOUT 100 MENU TITLE Remote Boot Services MENU BACKGROUND boot.jpg # https://www.flickr.com/photos/bottinex/2948585175/ LABEL local MENU LABEL ^Boot from local disk localboot 0 LABEL memtest MENU LABEL ^Memory test kernel memtest86Note that the memtest86+.bin image is renamed memtest86: the original filename did not want to boot.The image of the heavy duty boot is rotated and scaled to 640x480 and brought down in quality. I will probably add the PLD linux rescue CD image and ubuntu so I won't be bothered by boot medium problems anymore. An environment for a heavy duty boot, hence the image.