PXE Loader
What is PXE
A PXE (Preboot Execution Environment) allows you to boot a PC from the network instead of (or before) it boots from a local drive. To configure a PC to boot from the network you can either configure the BIOS startup options to boot from the LAN before booting from the local drives (which means that it will always do this - until you next change the startup order). Or, most BIOS systems nowadays let you select a temporary boot device. This is usually done by pressing the F12 key during the BIOS startup sequence.
How Does PXE Work
PXE works by first making a DHCP request for an IP address. PXE then examines the DHCP response packet for a PXE server name and a PXE image name. If these exist, PXE will connect to the PXE server, and using TFTP it will transfer the PXE image from the PXE server. The PXE image is loaded into memory and executed.
TFTP (Trivial File Transfer Protocol) is a basic lightweight version of FTP (File Transfer Protocol). TFTP does not support authentication, encryption or directories. This means that all connections are anonymous and all files must be in the same folder. TFTP uses very little memory which makes it ideal for applications such as PXE loaders.
PXE can be used for many things, including installing operating systems, re-building operating systems, installing SOE (Standard Operating Environment) images or booting into utility software.
Linux Kickstart uses PXE to deploy Linux installations on remote machines. Windows Remote Installation Services (RIS) and Windows Deployment Services (WDS) both use PXE to allow installing Windows over the network to remote workstations.
How to Configure PXE
To use PXE on a network, you must have a DHCP server, a server that can act as a TFTP server and a PXE image file. The DHCP and TFTP servers can be the same server, or separate servers. Linux Kickstart and Windows RIS and WDS all provide PXE images and all have easy ways to configure PXE.
There are utilities which allow you to convert boot disks and boot CD's into PXE images. Some utilities also let you create a PXE menu that allows a user to select between different PXE images or even booting from the local hard drive. Such utilities include Network Boot Tools from emBoot http://www.emboot.com/products_NetworkBootTools.htm, and PXELinux (part of SYSLinux) http://syslinux.zytor.com/wiki/index.php/PXELINUX.
If you want to make a custom PXE loader, the first step is to create the PXE image file. The PXE image file can be created using a PXE utility such as those mentioned above. Place the image file on the PXE server. On the DHCP server, configure the DHCP scope to include the PXE Server Name and the PXE Image Name (the terminology does vary between different DHCP servers - some systems may use bootfile and bootserver). The PXE Server Name is the host that will serve the PXE image. The PXE Image Name is the file name of the PXE image.
When a network client attempts to boot from the network, it should now load your PXE image.