Home arrow Site Administration arrow Page 3 - Network Booting via PXE: the Basics

Practical Solution - Administration

The majority of computer users are familiar with BIOS options as long as they don't go further than selecting the main bootable device or ordering that priority list such as HDDs first, then optical drives, and so forth. In the past few years, however, another option has appeared there. Itís called Network Boot or the infamous PXE Boot. In this article we will give a brief overview of the basics of network booting.

  1. Network Booting via PXE: the Basics
  2. Theory of PXE
  3. Practical Solution
  4. Closing Thoughts
By: Barzan "Tony" Antal
Rating: starstarstarstarstar / 37
February 11, 2009

print this article



All right, you have chosen the computer you are going to dedicate to being a PXE server. Now it's time to download the necessary files, configure everything, and then set up the required services. As a general rule of thumb, you should create a new folder somewhere on the root partition, let's say C:PXEServer. This directory will contain everything PXE-related on your server computer.

We are going to use the open-source TFTP server called TFTPD32. This variation of server includes DHCP, TFTP, SNTP, and Syslog services as well, should the need arise. Now we will only use its first two capabilities. It is a tried and proven solution, probably the best freely available TFTP server. It is also provided to run as a Windows service.

Download and extract into C:PXEServer. At the time of writing, the latest version is v3.29. You don't really need the service variation unless you plan to run the PXE server daemons 24/7 on your dedicated PXE server. Now you can create another folder in your aforementioned C:PXEServer. This should be called  TFTPRoot.

Now the time has come for us to grab us a lightweight boot-loader. For the purpose of this article, we will stick to one of the most popular, which is SYSLINUX. You can download the latest releases from thisweb directory. You should grab the .zipversion. SYSLINUX has the following sub-variations: ISOLINUX, PXELINUX, EXTLINUX, and MEMDISK. Right now, as you can guess, we are going to use the PXELINUX boot-loader.

Extract the contents of the zip archive to a temporary folder and search for the following files: "pxelinux.0" and "memdisk." The last one can be found in the memdisk folder. Copy both of these files into your "C:PXEServerTFTPRootBoot" folder. So yes, we have also created a "Boot" folder in your TFTPRoot directory. Now you need another file from the syslinux package, it's "menu.c32" and located in com32modules.

Now that those three files have been copied into your Boot folder of TFTPRoot, we just need two more things. First we must grab an image that should be executed as soon as the PXE bootstrapping process finishes running the boot-loader. PXELINUX is not an operating system, it is just a lightweight boot-loader destined to work with PXE environments. We need an image of an operating system with which to boot up.

This is where you can get creative and boot up with utility tools instead of OSes such as Memtest86+, Acronis True/Recovery Expert, Symantec Ghost, Clonezilla-SysRescCD, and whatnot. You can eventually boot into Windows 98SE, or your favorite lightweight Linux distribution such as DSL (Damn Small Linux). Right now this article will feature the quickest and simplest example-booting into MS-DOS.

The following two resources should always be used when you want to download excellent boot disks: AllBootDisks.comand BootDisk.com. Once you download the boot disk of your choice, say, Windows 98 SE, we need to create an image. The image formats supported by SYSLINUX are IMG, IMA, IGZ, ISO, and others. WinImage is a utility that runs under Windows and creates images with the .IMA extension. If you are downloading via AllBootDisks, then you can grab ready-to-run images (.img), like this.

Moving on, there's one final thing you need to do-create a menu to display for the boot loader. In the C:PXEServerTFTPRootBoot create a new folder and call it PXELINUX.CFG- yes, give an extension to the folder. Now inside that newly created folder, create a new file called "default" without any extension. Be careful with your Windows Explorer settings-it may try to hide the extension, and if you create it as a text file, it becomes .txt.

With Notepad write (copy-paste) the following snippet and change where required.

DEFAULT menu.c32






MENU LABEL ^Win98SE BootDisk

kernel memdisk

append initrd=Windows98_SE.img

LABEL StandardBoot

MENU LABEL ^Standard Boot



Now it's time to launch TFTPD32 for the first time. First of all, on the configuration menu panel you need to check both the TFTP server and the DHCP server because this utility can provide both services. How you configure it further depends on your network details and its specifics. Moving on, under the DHCP Server menu tab, set the boot file to the "/boot/pxelinux.0". The rest of the path isn't required because it starts with TFTPRoot.

That should sum up everything. But once again, please, do not forget to configure the network settings under the DHCP server tab such as Default Route, WINS/DNS server, IP Pool Starting Address, Size of the Pool, and so forth. And of course, save the settings before launching the server. By doing so, your PXE server is fully configured.

You can now test your PXE environment. Any PXE-compatible client computer will be able to locate the Proxy DHCP Server, which assigns a new IP address from the pool and delivers the PXE server's information. Then the NBP package is transferred to the client from the server via the TFTPD32 server. Thereafter, the booting process begins.

Everything should work well. If it does not, you should check the firewall configurations.

>>> More Site Administration Articles          >>> More By Barzan "Tony" Antal

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort


- Coding: Not Just for Developers
- To Support or Not Support IE?
- Administration: Networking OSX and Win 7
- DotNetNuke Gets Social
- Integrating MailChimp with Joomla: Creating ...
- Integrating MailChimp with Joomla: List Mana...
- Integrating MailChimp with Joomla: Building ...
- Integrating MailChimp with Joomla
- More Top WordPress Plugins for Social Media
- Optimizing Security: SSH Public Key Authenti...
- Patches and Rejects in Software Configuratio...
- Configuring a CVS Server
- Managing Code and Teams for Cross-Platform S...
- Software Configuration Management
- Back Up a Joomla Site with Akeeba Backup

Developer Shed Affiliates


Dev Shed Tutorial Topics: