Kleine Experimente mit iPXE durchgeführt

Viele von euch werden die PXE-Umgebung so eingerichtet haben, wie ich das in den von mir veröffentlichen Anleitungen erklärt habe. Es gab ja schon die ganze Zeit das Problem, dass man im UEFI-Modus immer in den sauren Apfel beißen musste, weil dort irgendwas nicht funktionierte. Entweder konnte man andere EFI Bootloader nicht quer laden oder diese hatten andere Probleme, wie zum Beispiel dass die meisten Tools dort nicht mehr funktionierten.

Ich habe mir daher mal das iPXE-Projekt etwas genauer angesehen. Damit könnten die bisher aufgetretenen Probleme gelöst werden. Wir könnten also sowohl für Linux Derivate, als auch für Windowsinstallationen endlich eine Ebene schaffen, die problemlos für beide Vorhaben funktionieren würde.

iPXE Firmwarestart
iPXE Firmwarestart

Hier seht Ihr beispielsweise den UEFI Netzwerkboot über IPv4.

Ablaufdarstellung

Hier wird nach dem eigentlichen Firmwarestart (Obere Bildschirmhälfte auf dem Bild) die neue Firmware geladen (Untere Bildschirmhälfte auf dem Bild). Er lädt also zuerst die ipxe.efi (Das ist die neue Netzwerk Boot Firmware), um dann erneut eine Anfrage an den DHCP Server zu stellen, der dann den eigentlichen PXE-Bootloader schickt. Das hört sich etwas umständlich an, aber anders funktioniert das leider nicht. Das würde nur komplett entfallen, wenn die Firmware selbst in das BootRom der Netzwerkkarte gebrannt würde. Ob das allerdings wirklich sinnvoll wäre, weiß ich nicht. Hier müssen aber zwei Firmware miteinander agieren, damit dieses Konstrukt funktioniert. Und genau deshalb funktionierte meine bisherige Anleitung auch nicht bei den Leuten, die diese iPXE Firmware verwendeten. Die DHCP-Option 209 geht nämlich schlicht auf dem Weg ohne Anpassungen an die neuen Gegebenheiten, verloren .

Beim Test entdeckte Schwierigkeiten

Träge mit pxelinux.0 im Legacy Modus

Wenn iPXE nicht nur für den UEFI Modus genutzt wird, sondern auch für den Legacy Mode, dann funktioniert das in Verbindung mit der PXELinux 6.04 Version etwas träge. Ich persönlich wäre auch dafür, iPXE nur für UEFI Geräte verwenden zu wollen. Syslinux ist nämlich ein mächtiges Tool. Denn in dem alten Legacy Mode ist dieses sogar besser als iPXE meiner Meinung nach. Jedenfalls kann Syslinux im Legacy Mode all das, was iPXE auch könnte. Ich finde rein von der Grundidee her, auch Syslinux bei Weitem verständlicher und nutzerfreundlicher (Menüaufbau und Befehle), als das was die Herren und Frauen da bei iPXE gezaubert haben. Das soll nicht heißen, dass diese keine großartige Arbeit geleistet haben! Es ist für mich nur etwas ungewohnt.

TFTP-BlockSize Werte werden nicht beachtet

Aus dem iPXE UEFI Menü heraus kann der Windows-Boot-Manager gestartet werden, aber die TFTP-Einstellungen werden dort nicht mehr beachtet. Ich hatte die TFTPBlockSize-Werte nämlich in der BCD-Datei verändert, um die TFTP Geschwindigkeit deutlich zu beschleunigen. Wenn der WBM über iPXE aufgerufen wird, dann werden diese Einstellungen anscheinend nicht beachtet. Die Übertragungen laufen dann nämlich wieder so langsam ab (4 MB/s), als hätte ich nichts optimiert. Wenn ich über das alte Pxelinux 6.04 den WBM aufrufe, ist es wieder normal schnell (20 MB/s). Woran es liegt weiß ich noch nicht.

iPXE ist unfähig die Syslinux.efi (pxelinuxEFI64.efi) zu starten

Unter Verwendung der iPXE Firmware lässt sich Syslinux im UEFI Modus nicht aufrufen. Dies wird immer mit einem Fehler quittiert. Das ist aber im Endeffekt auch egal. Ich dachte mir nur anfangs, es wäre sehr bequem einfach nur zwei Einträge im iPXE Menü zu erstellen:

Einen Verweis zum WBM und dann einem zum Syslinux UEFI Menü, denn dann hätte man alle Fliegen mit einer Klappe geschlagen ohne großartig viel ändern zu müssen. Das funktioniert nur dummerweise nicht. Naja, macht nichts.

iPXE UEFI – Das Keyboard Layout ist immer Englisch

Der Hersteller selbst schreibt in seiner Dokumentation, dass man die Sprache in der Datei /src/config/console.h mittels der Zeile:

 #define KEYBOARD_MAP us

ändern kann. Aber selbst wenn man das us gegen de tauscht, wie das hier beschrieben ist: https://ipxe.org/buildcfg/keyboard_map,  ändert sich nichts an der Tatsache. In der offiziell erhältlichen Firmware wird zwar die englische Tastatur genutzt, dafür werden die Umlaute aber korrekt dargestellt. Wer diese hingegen selbst kompiliert, bei dem funktioniert dann nicht mal mehr das. Woran es liegt weiß ich nicht. Ich habe zu dem Problem schon intensiv recherchiert und ich scheine da nicht der Einzige mit diesem Problem zu sein. Eine Lösung habe ich leider noch nicht gefunden.

Resümee

Ich bin bei meinen Tests nun soweit, dass ich mit dem Ergebnis schon durchaus zufrieden bin:

iPXE Testsetup
iPXE Testsetup

Es können aus dieser Umgebung heraus der Windows-Boot-Manager gestartet werden und auch Linux Installationen funktionieren ohne Probleme.

iPXE Linux-Live-Systeme
iPXE Linux-Live-Systeme
iPXE Ubuntu 20.04
iPXE Ubuntu 20.04

WinPEs mittels Wimboot mit HTTP “Lichtgeschwindigkeit” laden:

iPXE Wimboot WinPE
iPXE Wimboot WinPE

Das Verlassen des iPXE-Menüs setzt auch den normalen Bootvorgang fort. Es wird zwar ein Fehler angezeigt, er macht es aber trotzdem. Vielleicht bekomme ich das auch noch hin, dass es komplett ohne Fehlermeldung abläuft. Werde mich da wohl noch etwas einlesen müssen. Es ist für mich allerdings eine kleine Umstellung, da ich nun schon wieder eine neue Menü- und Befehlsstruktur lernen muss.

Warum müssen die eigentlich immer das Rad neu erfinden? 😀

Ansonsten bin ich schwer angetan. Beim Aussehen könnte man auch noch was machen. Meine dort verwendete Firmware ist die offiziell erhältliche und dort sind in den Standardeinstellungen die Konsolenfunktionen deaktiviert. Die braucht man aber um das Ganze grafisch etwas aufzuwerten (Farben/Hintergrundbild/Abstände). Dies muss dann aber selbst kompiliert werden.

Da habe ich ja so richtig Lust drauf. 😎

Abschnitt aktualisiert:

Habe nun die Firmware für UEFI32 und UEFI64 kompiliert und alles eingestellt:

iPXE Grafisches Menü
iPXE Grafisches Menü

Mein altes PXELinux Menü habe ich in einem auch gleich angepasst:

PXElinux Grafisches Menü
PXElinux Grafisches Menü

Wann ich jetzt genau dazu komme die Anleitungen von mir anzupassen, weiß ich noch nicht. Denn eigentlich müsste ich die Anleitungen fast komplett neu schreiben. Mal sehen.

Abschnitt aktualisiert:

Habe nun alle Beispieldateien und Konfigurationen für die Anleitungen erstellt. Jetzt muss ich nur noch die Anleitungen selbst ändern. 😀

Auf eure Meinungen bin ich schon gespannt. Wie seht Ihr das? Benutzt Ihr iPXE schon lange? Wie findet Ihr dieses im Vergleich zu anderen erhältlichen Bootloadern (pxelinux/GRUB/LILO usw.)? Lasst es mich wissen. Der Kommentarbereich wartet schon auf euch.

Zum Anfang!

6 Antworten auf „Kleine Experimente mit iPXE durchgeführt“

  1. Hallo Stefan,
    ich finde es toll wie du dich mit PXE und nun mit iPXE ins Zeug legst, ich würde mich freuen wenn Du eine Anleitung dafür machen könntest.
    Würde dich dabei auch gerne unterstüzen wenn du möchtest…
    VG Roland

    1. Richtig. Das ist eine der vielen weiterführenden Anleitungen, die auf dieser hier beruhen:

      https://www.german-syslinux-blog.de/synology-dsm-6-0-syslinux-6-04-pxetftpdhcp-server-einrichten/

      Damit die Windows Anleitung funktioniert, müssen natürlich erst einmal die Server eingerichtet sein.

      Zitat:
      “Da hast Du dir aber extrem viel Mühe gemacht, hut ab da wäre ich nie durch gestiegen…”

      Mach Dir nichts daraus. Ich habe 12 Jahre lang eine Support Community betrieben und habe eine gewisse Übung daran, nicht nur Anleitungen zu verfassen, sondern mich auch mit den Nutzern auseinandersetzen zu müssen. Ich wünsche dir viel Spaß beim Einrichten. 😎

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.