Copyright © KC Green

Archlinux via PXE von Netboot Image starten

 infrastructure   reference 

Archlinux mit Hilfe von PXE von einem Netboot Image aus dem Internet starten

Heute hatte ich nach einer BIOS-, bzw. UEFI-Aktualisierung meines Mainboards ein unerwartetes Problem; alle meine EFI-Booteinträge wurden zurückgesetzt. Selbstverständlich hatte ich kein (freies) Medium zur Hand, von dem ich entweder eine Live-Linux Umgebung oder eine EFI-Shell hätte booten können. Glücklicherweise bringen die meisten UEFIs heutzutage eine gute Unterstützung für PXE (Preboot eXecution Environment), bzw. iPXE mit. Hierfür muss dann im BIOS oder UEFI lediglich der Netzwerkstack aktiviert und der richtige Booteintrag ausgewählt werden.

PXE-Server

Mit Pixiecore gibt es eine all-in-one Lösung, um schnell einen PXE-Server bereitzustellen. Für die Installation unter Archlinux steht ein AUR-Paket bereit.

Wichtig: Damit PXE, DHCP und TFTP funktionieren, müssen die unten genannten Ports in der Firewall freigegeben werden!

Protokoll Port Benötigt?
DHCP UDP/67:68 Ja
TFTP UDP/69 Ja
PXE UDP/4011 Ja
HTTP TCP/80 Nein

In dem entsprechenden Artikel im Archlinux Wiki steht beschrieben, wie man den quick Parameter verwenden, um direkt den Archlinux Kernel zu laden:

sudo pixiecore quick arch --dhcp-no-bind

Allerdings hat dies in meinem Test nicht funktioniert. Der Kernel konnte nicht gefunden werden. Also habe ich mir über die Archlinux Netboot Download Seite die aktuelle URL zum UEFI iPXE Image geholt und den Pixiecore Befehl angepasst:

sudo pixiecore boot --debug --dhcp-no-bind \
  https://archlinux.org/static/netboot/ipxe.176077d7fccb.efi

Und ich muss sagen, der Rest hat wunderbar funktioniert! Der Client hat sich das iPXE Image gezogen, dann das vollständige Bootimage von einem Mirror meiner Wahl heruntergeladen und schlussendlich Archlinux gestartet.