Preboot Execution Environment

Preboot Execution Environment

The Preboot eXecution Environment (PXE, aka Pre-Execution Environment, or 'pixie') is an environment to boot computers using a network interface 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 [http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf specification (v2.1)] published by Intel and [http://www.systemsoft.com/ 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.

The term "PXE client" only refers to the role that the machine takes in the PXE boot process. A "PXE client" can be a server, desktop, laptop or any other machine that is equipped with a PXE boot code.

Chain

The firmware on the client tries to locate a PXE redirection service on the network (Proxy DHCP) in order to receive information about available PXE boot servers. After parsing the answer, the firmware will ask an appropriate boot server for the file path of a network bootstrap program (NBP), download it into the computer's RAM using TFTP, possibly verify it, and finally execute it. If only one NBP is used among all PXE clients it could be specified using BOOTP without any need of a proxy DHCP, but a TFTP boot server is still required.

Availability

PXE was designed to be applicable to many system architectures. The v2.1 specification assigns architecture identifiers to six system types, including ones for the IA64 Itanium architecture and Alpha architecture. However the specification only completely coversIntel's 32 Bit computer architecture (IA-32). Intel included PXE in the Extensible Firmware Interface for its IA-64, creating a de facto standard with the implementation

PXE Client/Server Protocol

The PXE protocol is approximately a combination of DHCP and TFTP, albeit with subtle modifications to both. DHCP is used to locate the appropriate boot server or servers, with TFTP used to download the initial bootstrap program and additional files.

To initiate a PXE bootstrap session the PXE firmware broadcasts a DHCPDISCOVER packet extended with PXE-specific options ("extended DHCPDISCOVER") to port 67/UDP (DHCP server port). The PXE options identify the firmware as capable of PXE, but they will be ignored by standard DHCP servers. If the firmware receives DHCPOFFERs from such servers, it may configure itself by requesting one of the offered configurations.

Proxy DHCP

If a PXE redirection service (Proxy DHCP) receives an "extended DHCPDISCOVER", it replies by broadcasting a DHCPOFFER packet extended with PXE-specific options ("extended DHCPOFFER") to port 68/UDP (DHCP client port). This packet has to be broadcast, since most PXE clients will configure themselves by DHCP and cannot provide their IP address in the "extended DHCPDISCOVER". Therefore the client is identified by its GUID/UUID.

An "extended DHCPOFFER" contains mainly:
* a PXE Discovery Control field to decide whether Multicasting, Broadcasting or Unicasting is to be used for contacting PXE boot servers
* a list of IP addresses of each available PXE Boot Server Type
* a PXE Boot Menu with each entry representing a PXE Boot Server Type
* a PXE Boot Prompt telling the user to press to see the boot menu
* a timeout to launch the first boot menu entry if it expires.

The Proxy DHCP service may also be run on the same host as the standard DHCP service. Since both services cannot share port 67/UDP, the Proxy DHCP runs on port 4011/UDP and expects the "extended DHCPDISCOVER packets" from PXE Clients to be DHCPREQUESTs. The standard DHCP service has to send a special combination of PXE options in its DHCPOFFER, so the PXE client knows to look for a Proxy DHCP on the same host, port 4011/UDP.

Boot Server

To contact any PXE Boot Server the firmware must have an IP address and has to consider all information from exactly one "extended DHCPOFFER". After choosing an appropriate PXE Boot Server Type the firmware multicasts or unicasts a DHCPREQUEST packet extended with PXE-specific options ("extended DHCPREQUEST") to port 4011/UDP or broadcasts it to port 67/UDP. This packet mainly contains the PXE Boot Server Type and the PXE Boot Layer, allowing to run many boot server types with one boot server daemon (or 'program'). The "extended DHCPREQUEST" may also be a DHCPINFORM.

If a PXE Boot Server receives an "extended DHCPREQUEST" as described above and if the boot server is configured for the requested PXE Boot Server Type and client architecture, it must respond by sending back an "extended DHCPACK" - a DHCPACK-packet extended with PXE-specific options - to the "extended DHCPREQUEST's" source port.

An "extended DHCPACK" contains mainly:
* the complete file path to download the NBP via TFTP.
* PXE Boot Server Type and PXE Boot Layer the boot server answered to
* the multicast TFTP configuration, if MTFTP as described in the PXE specification should be used.

A PXE Boot Server as described in version 2.1 of the PXE specification should support the Boot Integrity Services (BIS) as described in the [ftp://download.intel.com/design/archives/wfm/downloads/bisspec.pdf BIS specification] v1.0 published by Intel. The BIS allow a PXE Client to verify downloaded NBPs using a checksum file which is downloaded from the same boot server as the NBP was. To get the file path of this "credentials" file another exchange of "extended DHCPREQUEST" and "extended DHCPACK" is required.

Network Bootstrap Program

After receiving the requested "extended DHCPACK", the "Network Bootstrap Program" is downloaded into the RAM and if it was verified or verification was not required, the NBP will be executed. It has access to the APIs of the PXE firmware extension (Pre-boot, UDP, TFTP, UNDI). Its functions or tasks are not described in the PXE specification.

Integration

The "PXE Client/Server Protocol" was designed so:
* it can be used in the same network as an existing DHCP environment without interference
* it can be integrated completely into standard DHCP services
* it can be easily extended at the most important points without a call for papers
* every service (DHCP, Proxy DHCP, Boot Server) can be implemented standalone or in any combination of them.

Additionally the PXE firmware extension was designed as an Option ROM for the IA-32 BIOS so you can get a PC PXE-capable by installing a NIC that provides a PXE Option ROM.

The design goal of utilizing existing DHCP and TFTP servers cannot be achieved in a strictly conforming implementation. Some aspects of the PXE protocol require that the DHCP and TFTP servers be modified and communicate. One specific example is using multicast, where DHCP packets provide the multicast group information rather than an opening RFC-2090 multicast TFTP exchange. The impact of this is minimal as the most common PXE client implementation (written by Intel and provided at no cost as a linkable IA32 binary module) interoperates with a combination of isolated DHCP and unicast TFTP servers.

See also

* Remote Initial Program Load (RIPL)

References

* This article is based on a translation of the equivalent article on the German Wikipedia

Resources

Specifications, RFCs and other documents about PXE:
* [http://www.pix.net/software/pxeboot/archive/pxespec.pdf PXE specification] - The Preboot Execution Environment specification v2.1 published by Intel & Systemsoft.
* [ftp://download.intel.com/design/archives/wfm/downloads/bisspec.pdf BIS specification] - The Boot Integrity Services specification v1.0 published by Intel.
* [http://quimby.gnus.org/internet-drafts/draft-henry-remote-boot-protocol-00.txt Remote Boot Protocol Draft] - draft of the PXE Client/Server Protocol included in the PXE specification.

External links

* [irc://irc.freenode.net/pxe ##pxe] - A PXE channel on [http://freenode.net/ freenode.net]
* [http://dev.brantleyonline.com/wiki/index.php/PXE_Booting_Index PXE wiki] - A PXE wiki to grow with your questions.
* [http://vamosproject.org/PXE Vamos project PXE page] - PXE resources.
* [http://h18013.www1.hp.com/products/servers/management/rdp/knowledgebase/00000138.html PXE error codes] - A catalogue of PXE error codes
* [http://syslinux.zytor.com/wiki/index.php/PXELINUX PXELINUX] - Useful for booting Linux and other OS via PXE
* [http://www.gentilkiwi.com/documentations-s11-t-pxe.htm Mise en place d’un serveur de boot PXE sous Windows] fr icon
* [http://www.sweetnam.eu/index.php/PXE/Kickstart_Rough_Howto PXE Kickstart HowTo] - HowTo for using RedHat KickStart with PXE
* [http://home.allegiance.tv/~joem298/ DOS via PXE HowTo] - Simple HowTo for booting DOS (or any other bootable floppy) via PXE using PXELINUX and TFTPD32
* [http://thesystemadministrator.com/The_System_Administrator/Tips_%26_Tricks/PXE%2C_aka_Pre-Execution_Environment_-_Part_1/ Boot via PXE HowTo - Part 1] - Simple HowTo for booting DOS via PXE using TFTPD32
* [http://thesystemadministrator.com/the_system_administrator/tips_%26_tricks/pxe%2c_aka_pre-execution_environment_and_acronis_-_part_2/ Boot via PXE HowTo - Part 2] - Simple HowTo for booting Acronis via PXE using TFTPD32
*
* [http://www.bootix.com/products/pxe_prom_en.html Add-On PXE Codes] - PXE codes for network adapters and LAN-On-Motherboard computers that do not ship with a PXE code


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Preboot Execution Environment — Das Preboot eXecution Environment (PXE) ist ein Verfahren, um Computern einen netzwerkbasierten Bootvorgang zu ermöglichen. Der Computer ist dadurch von Massenspeicher und darauf installiertem Betriebssystem unabhängig. Der PXE Code befindet sich …   Deutsch Wikipedia

  • Preboot Execution Environment — Contenido 1 Funcionamiento 2 Disponibilidad 3 Protocolo 3.1 Proxy DHCP 3.2 Servidor de arranque …   Wikipedia Español

  • Preboot Execution Environment — L amorçage PXE (sigle de Pre boot eXecution Environment) permet à une station de travail de démarrer depuis le réseau en récupérant une image de système d exploitation qui se trouve sur un serveur. L image ainsi récupérée peut être le système d… …   Wikipédia en Français

  • Preboot Execution Environment — …   Википедия

  • Windows Preinstallation Environment — Microsoft Windows PE (kurz WinPE) ist ein abgespecktes Windows Betriebssystem basierend auf Windows XP SP1, SP2, Windows Server 2003 oder Windows Vista, das sich von verschiedenen Medien wie CD ROM, USB Stick, Remote Installation Services, der… …   Deutsch Wikipedia

  • PXE — Preboot Execution Environment (Computing » Drivers) Preboot eXecution Environment (Computing » General) ** Pseudoxanthoma Elasticum (Medical » Physiology) …   Abbreviations dictionary

  • WinPE — Microsoft Windows PE (kurz WinPE) ist ein abgespecktes Windows Betriebssystem basierend auf Windows XP SP1, SP2, Windows Server 2003 oder Windows Vista, das sich von verschiedenen Medien wie CD ROM, USB Stick, Remote Installation Services, der… …   Deutsch Wikipedia

  • Windows PE — Microsoft Windows PE (kurz WinPE) ist ein abgespecktes Windows Betriebssystem basierend auf Windows XP SP1, SP2, Windows Server 2003 oder Windows Vista, das sich von verschiedenen Medien wie CD ROM, USB Stick, Remote Installation Services, der… …   Deutsch Wikipedia

  • Abkürzungen/Computer — Dies ist eine Liste technischer Abkürzungen, die im IT Bereich verwendet werden. A [nach oben] AA Antialiasing AAA authentication, authorization and accounting, siehe Triple A System AAC Advanced Audio Coding AACS …   Deutsch Wikipedia

  • Liste der Abkürzungen (Computer) — Dies ist eine Liste technischer Abkürzungen, die im IT Bereich verwendet werden. A [nach oben] AA Antialiasing AAA authentication, authorization and accounting, siehe Triple A System AAC Advanced Audio Coding AACS …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”