Easy How To Set Up A PXE Server On Windows (98+)

Easy How To Set Up A PXE Server On Windows (98+)

By PSG (mark.hinge@whitedust.net)
visit: www.whitedust.net

22nd November 2006.

Why This Txt?

I'm writing this text because while experimenting with serving PXE on windows I found only fragmented and poor documentation. With this Txt I hope to provide a one stop PXE on Windows how to guide. This is the document I wanted.

What Is PXE?

Wiki Says (http://en.wikipedia.org/wiki/Preboot_Execution_Environment):

"The Preboot Execution Environment (PXE, aka Pre-Execution Environment) is an environment to bootstrap computers using a network interface card independently of available data storage devices (like hard disks) or installed operating systems. PXE was introduced as part of the Wired for Management framework by Intel and is described in the specification (v2 .1) published by Intel and Systemsoft on September 20, 1999. It makes use of several network protocols like IP, UDP, DHCP and TFTP and of concepts like GUID/UUID and Universal Network Device Interface and extends the firmware of the PXE client (the computer to be bootstrapped via PXE) with a set of predefined APIs."

PSG Says:

"Running a PXE Server on the local network allows me to boot various one disk operating systems such as FreeDOS for disk tools and diagnostic function (and Atari ST Emulator in my case) or boot disk for USB Linux Distributions where the box in question cannot boot from USB natively and has no other removable media; eg. A Fujitsu Siemens Lifebook or such - Damn Small Linux works very well in this environment (See: www.damnsmalllinux.org)."

One disk operating systems available for free download include:

Google is your friend. The basic rule is any .img or .imz file you can get your mits on and or create will likely boot via PXE and thus be available as an OS choice at boot. Nifty.

Step By Step Setup

1. Create a folder "PXE" in the root of your C: Drive.

2. Download Tftpd from http://tftpd32.jounin.net/.

3. Unpack the zip to a temp directory.

4. Copy tftpd32.exe to your new "PXE" folder.

5. Create a subdirectory in "PXE" called "pxelinux.cfg".

6. Download "syslinux-3.11.zip" (Google is your friend).

7. Unpack the zip to a temp directory.

8. Get syslinux-3.11.zip\com32\modules\menu.c32 and copy it to "PXE".

9. Get syslinux-3.11.zip\pxelinux.0 and copy it to PXE.

10, Also find "MEMDISK" from the syslinux-3.11 directory and copy it to "PXE".

11. Delete all temporary files.

12. Run tftpd32.exe.

13. DHCP Server and enter "pxelinux.0" in the "Boot File" field.

14. Fill out the other fields as per your local network.

15. Close tftpd32.exe program.

16. Browse to PXE\pxelinux.cfg.

17. Create a file called "default" and open in a text editor.

18. Edit your "default" file as per the below Default Config Example (won't work without it kids).

19. Run tftpf32.exe.

20. And Disco! Your local boxen should detect the PXE server on Boot (Don't forget to configure your "default" config file as per step 18.

Default Config Example

DEFAULT menu.c32

MENU TITLE Hades PXE Boot Menu Mother Fukka!

# Damn Small Linux Loader
LABEL Damn Small Linux - Hot Damn It's Small.
MENU DSL Mother Fukka!
KERNEL memdisk
APPEND initrd=dsl.img

# Menuet Hobby OS
LABEL Menuet - The Operating System With Added Cow.
MENU Menuet Mother Fukka!
KERNEL memdisk
APPEND initrd=mini.img

# FreeDOS ODIN Basic
LABEL FreeDOS Fucking ODIN. That's Right.
MENU FreeDOS Mother Fukka!
KERNEL memdisk
APPEND initrd=ODIN.720

# Arachne Work Station
LABEL Arachne - Just Another Word For Sexah.
MENU Arachne Mother Fukka!
KERNEL memdisk
APPEND initrd=fd288ara.img

# Development Image
LABEL Development Image - Use At Own Risk.
MENU Development Image.
KERNEL memdisk
APPEND initrd=d7x32e.img