As I am mostly a Windows user, I always considered PXELinux something which I would never use, because of the name. However,
after getting sufficiently fed up with Etherboot on my Thinstation Linux PXE deployment, I looked into PXELinux. After trying
PXELinux on Thinstation, I found it to be compatible with a lot more systems (e.g. on one laptop, etherboot would fail when loading
the UNDI driver, on another it just froze). It also booted faster.
On my network, I wanted to allow users to have the option of booting either Thinstation Linux (to connect to my Citrix Terminal Server), or to boot a floppy disk image of NetBootDisk (a handy bootdisk with NDIS2.5 network support, with many drivers), to permit re-imaging of individual computers using Symantec Ghost 7.5
After some toil, I got my pxelinux.cfg/default working:
say ==================================================== say 2FHGDNS Network Boot say If you enter no option within 3 seconds, the system say will boot into the Terminal Server (option ts) say . say Boot Options: say ts: Terminal Server (Thinstation Linux) say nbd: Net-Enabled MS-DOS (NetBootDisk) say . say ==================================================== prompt 1 timeout 30 ontimeout ts label ts menu default kernel vmlinuz append ramdisk_blocksize=4096 initrd=initrd root=/dev/ram0 ramdisk_size=524288 console=ttyS3 label nbd kernel memdisk raw keeppxe append initrd=netboot.imz
I realised that I could of used menu.c32 to make a proper menu, but I tried this and it didn't work for me first time, so I gave up.
I made the NetBootDisk image by using a trial of Winimage, to create the compressed disk image (.imz) from the original floppy disk, that I had generated beforehand, and set my required menu options. For the NetBootDisk (nbd) option, I chose to add the option
The NetBootDisk (netboot.imz) file goes in the TFTP root, and so does memdisk.
All this PXE junk is hosted on a Windows 2003 SP2 server. I used the Windows DHCP Service, and set DHCP options 066 and 067 to the appropriate values (066 - The IP address, 067 - pxelinux.0). I couldn't get the TFTP server included in Remote Installation Services to work properly for some odd reason (it worked fine on a previous installation), so I used SolarWindows TFTP Server instead, which seems to be working fine in NT Service mode
Above: NetBootDisk booted via PXE
Above: ThinStation Linux booted via PXE, and connected to my Citrix Terminal Server
Above: The menu in action