IPXE
# IPXE

iPXE ist eine quelloffene Implementierung der Client-Firmware und Bootloader Preboot eXecution Environment (PXE), die 2010 als Abspaltung von gPXE geschaffen wurde. Sie kann verwendet werden, um Rechner zu befähigen, ohne eingebaute PXE-Unterstützung über das Netzwerk zu booten oder eine vorhandene PXE-Client-Implementierung zu erweitern, so dass sie zusätzliche Protokolle unterstützt.

Während standardisierte PXE-Clients TFTP verwenden, um Daten zu übertragen, fügt die nicht-standardisierte Client-Firmware iPXE die Fähigkeit hinzu, Daten über andere Protokolle einschließlich HTTP, iSCSI, ATA over Ethernet (AoE) und Fibre Channel over Ethernet (FCoE) zu empfangen. Auch kann die iPXE-Firmware mittels unterstützender Geräte eine Wi-Fi-Verbindung verwenden, anstatt unbedingt eine verkabelte zu erfordern. Die iPXE-Firmware kann nicht als vollständiger Ersatz für PXE-Firmware betrachtet werden.

iPXE ist der offizielle Nachfolger zu gPXE. Jede in gPXE vorhandene Funktion ist ebenso in iPXE vorhanden und Nutzer können nahtlos von gPXE zu iPXE wechseln.

## PXE-Implementierung

iPXE kann von einem Rechner entweder durch Ersetzen (Re-flash) des vorhandenen Standard-PXE-ROM einer geeigneten Netzwerkkarte (NIC) oder durch Booten des Standard-PXE-ROMs des NIC und nachfolgendem Laden der iPXE-Binärdatei erfolgen. Damit kann dessen Funktionalität erhalten werden, ohne dass die Notwendigkeit besteht, den NIC zu re-flashen. Grundsätzlich ist es aber so, dass PXE-Firmware ihr Konfigurationsskript in das Firmwareabbild einbettet, daher erfordern alle Änderungen an der Konfiguration einen Re-Flash des NIC.

iPXE implementiert seinen eigenen PXE-Stack, entweder durch Verwendung des von iPXE bereitgestellten Netzwerkkartentreibers oder den Standard-PXE-UNDI-Treiber, wenn iPXE nach dem Standard-PXE-ROM geladen wird. Das Implementieren eines unabhängigen PXE-Stacks ermöglicht es Clients ohne Standard-PXE-ROM auf ihren NICs einen alternativen iPXE-Stack durch Laden von alternative medium.

## Boot-Manager

Obwohl das Hauptziel des Projektes war, einen PXE-Stack zu implementieren, kann iPXE auch als Netzwerk-Boot-Manager verwendet werden, der über begrenzte Fähigkeiten für die menübasierte Interaktion mit Endbenutzern verfügt. iPXE kann Boot-Dateien unter Verwendung verschiedener Netzwerkprotokolle empfangen, wie TFTP, NFS, HTTP oder FTP.

iPXE kann als Bootloader für den Linux-Kernel, mit Unterstützung für Multiboot, eingesetzt werden. Bei anderen Betriebssystemen, beispielsweise Windows CE, lädt iPXE nachfolgend den entsprechenden Microsoft-Bootloader. Darüber hinaus ist iPXE durch Skripte steuerbar und kann COMBOOT und COM32 SYSLINUX-Erweiterungen laden, die es beispielsweise ermöglichen SYSLINUX-basierte grafische Menüfunktionen für das netzwerkbasierte Booten zur Verfügung stellen.

