# Preparation

You will need:

Extract these files from syslinux-4.07.zip into a temporary folder

• /core/pxelinux.0 and rename it to pxelinux.com
• /com32/menu/vesamenu.c32
• /com32/chain/chain.c32
• /memdisk/memdisk (If you want to be able to load raw floppy images and/or ISOs)

# File Installation

From here on out, RemoteInstall will refer to the “Remote Installation Folder” you chose during initial setup of WDS

1. Copy the above files into \RemoteInstall\Boot\x86
2. In the x86 folder, make a copy of abortpxe.com and name it abortpxe.0
3. Also make a copy of pxeboot.n12 and rename it to pxeboot.0
• We make copies of these files because pxelinux is picky about file extensions.
4. Repeat steps 1-3 in the \RemoteInstall\Boot\x64 directory

The x86 and x64 directories should now have the highlighted files in them.

# Initial Configuration

We can make configuration files and a folder for images in either architecture directory, but then we’d be using double the space for storing boot images and we’d have to edit our configuration twice. Instead, we’ll use junctions (symlinks.)

1. Create the folder \RemoteInstall\Boot\pxelinux.cfg
• Note that it’s a folder named “pxelinux.cfg” and not a file
2. Now create the junction. For this you’ll need to open a command window in the x86 directory and run
• mklink /J pxelinux.cfg E:\RemoteInstall\Boot\pxelinux.cfg
1. To get a command window in the x86 directory you can hold shift and right click in the directory and click “Open command window here…”
1. Repeat step 2 but in the x64 directory instead
2. Make a plaintext file called “default” in \RemoteInstall\Boot\pxelinux.cfg\ and place this sample configuration in it. Make sure there is no file extension.
DEFAULT      vesamenu.c32
PROMPT       0
NOESCAPE     0
ALLOWOPTIONS 0
# Timeout in units of 1/10 s
TIMEOUT 300
MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
MENU COLOR BORDER 30;44		#20ffffff #00000000 none
MENU COLOR SCROLLBAR 30;44		#20ffffff #00000000 none
MENU COLOR TITLE 0 		#ffffffff #00000000 none
MENU COLOR SEL   30;47		#40000000 #20ffffff
#MENU BACKGROUND MyMenuBackgroundPicture640x480.jpg
MENU TITLE PXE Boot Menu
#---
LABEL wds
MENU LABEL Windows Deployment Services
KERNEL pxeboot.0
#---
LABEL Abort
MENU LABEL AbortPXE
Kernel	abortpxe.0
#---
LABEL local
MENU DEFAULT
MENU LABEL Boot from Harddisk
LOCALBOOT 0
Type 0x80

1. You should be able to see this file when browsing to either \RemoteInstall\Boot\x86\pxelinux.cfg or \RemoteInstall\Boot\x64\pxelinux.cfg
• If not, check your junctions
2. Create a folder to store your boot images in
• I used \RemoteInstall\Images\Linux
3. Make junctions in each folder like before
• mklink /J Linux E:\RemoteInstall\Images\Linux
1. The junctions should appear like this

1. Now that everything is in place we need to change WDS’s default boot images to pxelinux. To do this we’ll run the following commands from an Administrator command prompt
wdsutil /set-server /bootprogram:boot\x86\pxelinux.com /architecture:x86
wdsutil /set-server /N12bootprogram:boot\x86\pxelinux.com /architecture:x86
wdsutil /set-server /bootprogram:boot\x64\pxelinux.com /architecture:x64
wdsutil /set-server /N12bootprogram:boot\x64\pxelinux.com /architecture:x64


At this point you can attempt to boot from the server. You should get the Pxelinux menu; selecting Windows Deployment Services should bring up the WDS menu. If this isn’t the case, go back and make sure all steps have been completed.

# Samples

We’ll add memtest86+ and an ISO file to the server as an example. The PXELINUX wiki has some more information about other clients here.

### Memtest86+

You’ll need to grab the latest pre-compiled bootable binary from memtest.org and extract the bin file from it. Rename it to just “memtest86+” and place it in your Linux directory.

Add this to your pxelinux configuration, “#—“ separates menu items. LABEL must be unique for each item.

#---
LABEL memtest86+
MENU LABEL Memtest86+ 5.01
KERNEL /Linux/memtest86+


Attempt to boot memtest86+ by selecting it from the pxelinux menu.

• Again, pxelinux can be picky about file extensions

### ISO/floppy Image

Here I’m using partedmagic, but this should work with just about any ISO. See the memdisk documentation for more details.

Place your ISO or floppy image in the Linux directory. Since we’re using memdisk we don’t have to worry about the file extension. Here I’m using Partedmagic, the configuration will look something like this

#---
LABEL pmagic
MENU LABEL Parted Magic 2013_08_01
KERNEL memdisk
INITRD /Linux/pmagic_2013_08_01.iso
APPEND iso


If you’re using a floppy image you won’t include “APPEND iso”. Some Windows installation media also requires you add raw to the append line (APPEND iso raw).