Preboot Execution Environment
PXE (anglicky Preboot execution environment) je v informatice označení technologie pro bootování (tj. start) počítačů z počítačové sítě. Využívá se pro tenké klienty, které nemají pevný disk, pro diagnostiku, pro automatické instalace operačních systémů a podobně (např. informační kiosky, počítače v knihovně, instalaci systému do počítače bez optické mechaniky atd.).
Charakteristika
PXE je standard zavedený firmou Intel v září roku 1999.[1] Nahradila a sjednotila předchozí technologie pro start počítače za pomocí počítačové sítě (např. metodu využívající BOOTP nebo server Novell NetWare a protokol NCP přes IPX/SPX). Stejně jako předchozí technologie rozšiřuje PXE možnosti startu počítače tím, že je k síťové kartě dodána flash paměť s kódem rozšiřujícím schopnosti BIOSu o zavedení operačního systému z počítačové sítě. Dnes je PXE standardní součástí BIOSu na základních deskách, které mají integrovánu síťovou kartu, avšak PXE najdeme i jako rozšíření BIOSu na samostatných síťových kartách, které jsou zasunovány do slotů sběrnice (např. PCI nebo PCI-Express).
PXE je nezávislé na počítačové platformě, takže není závislé ani na použitém hardware ani na použitém software (operačním systému).
Princip komunikace
Síťové bootování pomocí PXE využívá Internet Protocol (IP) z rodiny protokolů TCP/IP. Základní postup je následující:
- Po inicializaci (BIOS na základní desce a PXE rozšíření BIOSu na síťové kartě) požádá počítač pomocí DHCP o základní údaje nutné pro komunikaci v počítačové síti využívající rodinu protokolů TCP/IP. Vyšle broadcastovou zprávu v UDP datagramu s vloženou DHCP zprávou typu DHCPDISCOVER s nastaveným PXE příznakem. Na něj odpoví pouze takový DHCP server, který je nastaven tak, aby odpovídal stanicím žádajícím síťové bootování (v Linuxu je v konfiguračním souboru
dhcpd.conf
ISC DHCP serveru nastaveno allow booting a allow bootp). Ostatní DHCP servery, které podporu startu bezdiskové stanice nemají nastavenu, takový požadavek ignorují. DHCP server odešle klientovi DHCPOFFER se základními údaji: IP adresa, maska sítě, default gateway a adresa TFTP serveru. - Pokud byl v první odpovědi DHCP serveru určen TFTP server, PXE kontaktuje DHCP server podruhé pomocí DHCPREQUEST (multicast či unicast) se žádostí o sdělení kompletní cesty k síťovému bootstrapping programu (tzv. NBP, tj. zaváděcí program stažený přes síť). DHCP server odpoví pomocí DHCPACK.
- Nyní dojde ke stažení bootstrapping programu (NBP) do operační paměti RAM. Přenos NBP je z TFTP serveru proveden pomocí UDP protokolu. Umístění NBP v paměti je závislé na architektuře klienta. Může též proběhnout kontrola autenticity, kdy si klient vyžádá soubor s kontrolním součtem a porovná ho s kontrolním součtem staženého bootstraping programu.
- NBP je síťovou obdobou zavaděče jádra operačního systému (je běžně umístěn v boot sektoru). Stažený NBP je spuštěn. Další síťovou komunikaci obstarává sám NBP. Může zobrazit menu nebo zavést do paměti RAM jádro operačního systému a aktivovat ho.
Z výše uvedeného vyplývá, že pro zprovoznění síťového bootu klienta (tj. síťové stanice) pomocí PXE je v počítačové síti potřeba mít DHCP server, ve kterém je možné nastavit DHCP option 66 tak, aby obsahovala IP adresu serveru, na kterém je spuštěn TFTP server. Z něho si klient (nakonfigurovaný pomocí DHCP) pomocí TFTP protokolu stáhne soubor se jménem, které je definováno v DHCP option 67. Tento soubor je na klientovi spuštěn a předpokládá se, že zajistí další pokračování bootu klienta (může zobrazit menu nebo stáhnout jádro operačního systému, připojit další síťové prostředky atp.). Pro operační systém Linux nebo Microsoft Windows je k dispozici vše potřebné.
Zavaděče s podporou PXE
Bootstrap program může obsahovat libovolný kód, nicméně pro spouštění konkrétních operačních systémů je třeba zvolit kompatibilní zavaděč s podporou síťového bootování přes PXE, což umožňuje např. BootX (pro Mac OS X), GRUB (který následně volá proprietární zavaděče jednotlivých systémů) či RedBoot. Pro systémy UNIX je asi nejznámější SYSLINUX, resp. jeho derivát PXELINUX. Windows lze nainstalovat pomocí služby Remote Installation Service (RIS), kde se do cílové operační paměti načte RAM disk pro spuštění Windows PE (předinstalační prostředí). Nástupcem RIS je ve Windows systémech verze vyšší, než Vista, resp. Windows Server 2008 technologie Windows Deployment Services (WDS), která přináší zároveň nadstavbu pro využití dalších protokolů a služeb zejména pro hromadné síťové instalace.
iPXE
iPXE je nadstavbou k běžné integraci PXE technologie. Tato metoda umožňuje počítačům bez zabudované podpory PXE využívat funkce bootování přes síť a počítačům již využívajícím PXE rozšířit službu o protokoly jako HTTP, iSCSI nebo ATA over Ethernet (AoE) a zároveň nabízí podporu i Wi-Fi sítí. iPXE může být implementováno či zavedeno několika způsoby - buď se jedná o rozšiřující čip na síťové kartě (popř. chipsetu), o součást BIOSu (nebo UEFI u nových systémů), speciální obraz standardního PXE programu získaného ze sítě anebo načteno z diskety, USB Mass Storage či běžného pevného disku. iPXE navíc umožňuje implementovat grafické menu pro síťový boot.
Reference
- Preboot Execution Environment (PXE) Specification [online]. [cit. 2009-02-18]. Dostupné v archivu pořízeném dne 2013-11-02. (anglicky)
Externí odkazy
- PXE Specifikace - oficiálně vydaná specifikace ve verzi 2.1
- DVD mechaniky končí, přichází čas startovat ze sítě – využití PXE pro instalaci Linuxu vč. konfigurace serveru
- Microsoft Knowledge Base – popis interakce systému RIS s PXE
- Konfigurace PXE v systému Debian
- Nastavení PXE ve Windows