Configure Pxelinux

Pxelinux uses a modular approach to add functions - e.g. memdisk will enable disk images to be loaded into memory, chain.c32 will enable hard disk partitions to be booted, etc. All of the required modules used in this guide are contained within the Syslinux download package. As previously stated, version 3.80 was used during testing as the most recent versions (at time of writing) 3.81 and 3.82 resulted in errors when attempting a RIS install of Windows XP - see screenshot below.

If using Syslinux versions 3.81/3.82 (and possibly newer builds) a workaround for installing XP via RIS is included here.

PLEASE NOTE - this section is not intended to be a pxelinux guide, only basic usage for menu.c32 (and vesamenu.c32) menu module(s) is covered.

To automate all steps in this section, download/copy to C:\PXE\tools\ directory and run 2a_syslinux.cmd. If using a different version of syslinux, copy syslinux-*.zip instead and edit the text in _parameters.cmd - replacing set with the syslinux version being used/tested. E.g. for - set

Download the Syslinux package and extract the contents to a tempory location - e.g. C:\Temp.

You can delete the temporary directory once the above files have been copied. There are two basic menu system modules included with the syslinux 3.80 package, menu.c32 (text based) and vesamenu.c32 (splash screen) - although we will focus on using menu.c32, the syntax for vesamenu.c32 is almost identical.

Creating A Pxelinux Configuration File

As stated here, a unique configuration file can be loaded by using a filename based on the client PCs GUID, MAC address or IP address. We will however be using the default file throughout the guide. To create the default file open notepad -

We will be adding to the pxelinux configuration file (C:\PXE\tftpboot\pxelinux.cfg\default) throughout the guide.

A brief note on the syntax used in C:\PXE\tftpboot\pxelinux.cfg\default - the majority of entries in this guide use the following format -

LABEL winpe
KERNEL /boot/pxeboot.0

Load Grub4dos

It is possible to load/return to Grub4dos from pxelinux. Copy grub.exe to the tftp root directory (e.g. C:\PXE\tftpboot\grub.exe) and add the following entry to C:\PXE\tftpboot\pxelinux.cfg\default

LABEL grub4dos
kernel /grub.exe
append keeppxe