PXE Boot server for installing Linux or Windows


Introduction

PXE is an open industry standard developed by a number of software and hardware vendors. It was initially designed by Intel, with input from several other vendors including 3Com, HP, Dell, Compaq, and Phoenix Technologies. PXE works with a network interface card (NIC) in the PC, and makes the NIC a boot device. The PXE vision is to “Make the network interface a standard, industry-accepted PC boot device.” This means adding the NIC to the traditional list of standard boot devices, such as floppy drives, hard disks, and CD-ROMs, that load the operating system or set up programs on the PC. It allows the client PC to “network boot.” Booting from the network opens up a vast array of management and support features.
PXE boots the client PC from the network by transferring a “boot image file” from a server. This file can be the operating system for the client PC or a pre-OS agent (see the section, “Pre-OS,” later in this paper) that performs client management tasks. Since PXE is not operating system-specific, the image file can load any OS. It provides support for network booting , of embedded and other operating systems.
Because PXE works with the NIC, it requires a PXE-enabled NIC. Most currently available NICs do support PXE, including those from 3Com, Intel, Digital, RealTek, and SMC. PXE is available either as a boot ROM chip that you add to the NIC, or as part of the system BIOS if the network interface is on the motherboard. PXE is specific to a type of NIC; a boot ROM for one type (for example, a 3C905C) will not work on another type of NIC.

Why use PXE instead of Disk Imaging

PXE uses a complete copy of the operating systems installation media which allows the installation to dynamically adjust for varying hardware.
Disk imaging called “cloning”, disk imaging means taking a snapshot of the hard drive of one machine and restoring it onto the hard drive of another. Microsoft provides tools like Sysprep and RIPrep to help you with this task, and it is a very popular way to deploy systems.
Never mind that disk imaging provides poor support for non-uniform hardware; the big problem is that it creates a maintenance nightmare. If you are cranking out thousands of identical workstations with completely identical hardware and software, imaging is a fine approach. But if your organization is like most, with heterogeneous hardware and software, true unattended installation will give you better reliability and much easier maintenance.

Prerequisites

You will need to install versions of the following software for your Linux Distribution and adjust the attached files for you software’s specific configuration.  The examples and applications listed are based on CentOS and should work with very little modifications under Fedora Core and Red Hat Enterprise distributions.

dhcpd – DHCP server which provides network addresses for the installation process.

tftpd – tftpd is a server for the Trivial File Transfer Protocol. The TFTP protocol is extensively used to support remote booting of diskless devices. The server is normally started by inetd, but can also run standalone.

BOOTP – The Bootstrap Protocol (BOOTP) is a computer networking protocol used in Internet Protocol networks to automatically assign an IP address to network devices from a configuration server. The BOOTP was originally defined in RFC 951.
When a computer that is connected to a network is powered up and boots its operating system, the system software broadcasts BOOTP messages onto the network to request an IP address assignment. A BOOTP configuration server assigns an IP address based on the request from a pool of addresses configured by an administrator.

PXELINUX – A SYSLINUX derivative, for booting Linux off a network server, using a network ROM conforming to the Intel PXE (Pre-Execution Environment) specification. PXELINUX is not a program that is intended to be flashed or burned into a PROM on the network card; if you want that, check out Etherboot.