PXE-Boot troubleshooting guide


Vorbereitungen für einen PXE-Boot

  • Ist auf Ihrem Client PXE-Boot eingestellt und steht dieser in der Bootreihenfolge auch an vorderer Stelle? Richten Sie Ihr BIOS entsprechend ein.
  • Bitte schalten Sie "Quiet Boot" oder ähnlich lautende Schalter und sämtliche Splashscreens des Mainboards im BIOS aus. Für die Fehlersuche sollte der zu startende Rechner so "gesprächig" wie möglich sein.
  • Bitte beachten Sie, dass openthinclient UEFI-PXE noch nicht unterstützt. Schalten Sie dies in Ihrem BIOS ab und nutzen Sie bitte den "PXE legacy" Modus.

Es bootet nicht, oder der Bildschirm bleibt dunkel.

Sollte der PXE-Boot-Request scheitern, sieht das so (oder ähnlich) aus.

Fehler z.B. PXE-E53 oder PXE-M0F.

Bitte kontrollieren Sie die folgende Dinge und arbeiten Sie alle folgenden Punkte ab:

Schalten Sie alle wichtigen (oder gar alle) Startmeldungen des Clients ein.

Nutzen Sie hierzu den Schalter "Meldungen beim Startvorgang" im Hardwaretyp des Clients.

Besitzt der zu startende Rechner mehrere Netzwerkkarten?

Auf Systemen mit mehrere Netzwerkkarten ist oft nur eine Karet PXE-Boot-fähig. Bitte probieren Sie alle Netzwerkkarten.

Sind Server und Client wirklich im gleichen Subnetz aktiv?

Wenn nicht, dann müssen Sie im Subnetz in dem sich der Client befindet einen DHCP-Server vorhalten, der die passenden DHCP-Optionen 66 und 67 sowie ein Standardgateway mitgibt. Bitte stellen Sie in diesem Fall den PXE-Proxy-Dienst auf den Wert "single-homed-broadcast" ein.
Oder Sie konfigurieren auf Ihrem Router (Netzgrenze) einen IP-Helper. Bitte stellen Sie in diesem Fall den PXE-Proxy-Dienst auf den Wert "single-homed-broadcast" ein.

Existiert in Ihrem Netz eventuell ein zweiter PXE-Bootserver?

Der openthinclient Server "bedient" per Standard nur "seine" Clients (keine anderen) die im openthinclient-Manager auch eingerichtet worden (Whitelist). Überschneidet sich die PXE-Antwort aber mit der Antwort eines anderen Servers gibt es häufig Probleme. Bitte stellen Sie sicher, dass kein anderer PXE-Bootserver den gewünschten Client "bedient".

Haben Sie den passenden Kernel für die Architektur Ihrer Hardware gewählt?

Openthinclient unterstützt x86-Hardware mit 32- oder 64-Bit Prozessoren. Sie können eine 64-Bit CPU auch mit einem 32-Bit Kernel betreiben. Das ist aber nicht empfehlenswert. Eine 32Bit-CPU können Sie nur mit einem 32-Bit Kernel betreiben. Bitte wählen Sie den passenden Wert für Ihren Kernel im Hardwaretypen des jeweiligen Thin Clients.

Der als "Standardkernel" bezeichnete ist für 32-Bit Hardware mit PAE-Unterstützung ausgelegt.

Im nächsten Bild sehen Sie die Fehlermeldung, die erscheint, wenn Sie auf einem 32-Bit-System einen 64-Bit Kernel booten.

Sie nutzen ältere 32-Bit Hardware die noch kein PAE unterstützt?

Alte 32-Bit CPUs ohne PAE-Unterstützung müssen Sie mit dem "nicht-PAE Kernel" starten, sonst erhalten Sie folgende Fehlermeldung:

Bitte wählen Sie in diesem Fall den nicht-PAE-Kernel aus.


Der Bootvorgang bleibt stehen?

Der PXE-Boot beginnt, Kernel und initrd werden geladen, aber der weitere Systemstart bleibt hängen? Sehen Sie beim Start des System ein solche Ausgabe,

hat der Client nacht dem Laden des Kernels und der initrd keine IP bekommen. Dies könnte auf ein DHCP-Problem hindeuten, oder darin begründet sein, dass kein Treiber für Ihre Netzwerkkarte verfügbar ist.

Nutzen Sie die Debugshell

Bricht der Bootvorgang ab, sollte Ihnen immer eine Debugshell (siehe Bild vorher) angeboten werden. Diese erreichen Sie nachdem Sie eine beliebige Taste im "Prolog" gedrückt haben. Die Debugshell können Sie mit dem Kommando "DE" oder "FR" auf deutsches oder französisches Keyboardlayout umstellen. Im Standard ist amerikanisches Layout aktiv. Mit TAB wird Ihnen die Liste der verfügbaren Kommandos gezeigt. Es handelt sich um eine größere Auswahl von Werkzeuge aus der aktuellen Busybox.

Sie könnten mit ifconfig zum Beispiel nachschauen, ob Ihre Netzwerkkarte erkannt wurde:

Im obigen Beispiel sind die Karten sehr wohl erkannt worden (es existiert demnach auch ein Treiber), nur hat keine der beiden Karten eine IP bekommen. Man könnte in diesem Beispiel nun mit "udhcpc -i eth0" versuchen eine IP per DHCP zu bekommen und so den vorliegenden Fehler ergründen. Sehen Sie mittels Kommando "ifconfig -a" keine Einträge wie eth0 oder eth1, ist davon auszugehen, dass für Ihre Netzwerkkarte kein Treiber existiert.

Theoretisch lässt sich nach Beheben eines Fehlers (z.B. IP nachträglich bezogen oder manuell gesetzt) der Bootvorgang auch fortsetzen. Beenden Sie die Busybox mit dem Kommando "exit".

Die aktuellen init-Scripts des openthinclient-OS finden Sie zum nachlesen jederzeit auf Bitbucket bzw. direkt in der Busybox. (Dateien: /init und /init_functions).

Debugmodus für einen Client

Neben der Debugshell, besteht weiterhin die Möglichkeit einen Client in den Debugmodus zu versetzen. Dies bewirkt die mehrfache Unterbrechung der Abarbeitung des init-Skriptes an vorgegebenen (benannten) Punkten (ähnlich Breakpoints). An jedem dieser Punkte bleibt das init-Skript stehen und ruft eine Debugshell auf. Mit Komando "exit" kann jeweils fortgesetzt werden.

Versetzen Sie ein  einen Client in den Debugmodus indem Sie in den Client-Eigenschaften unter der Registerkarte Einstellungen den Debugmodus einschalten. Dies bezieht sich dann nur auf diesen spezifischen Client.