Dies ist eine alte Version des Dokuments!


bwLehrpool unterstützt seit Satellitenserver WS20/21 nur noch iPXE, nicht mehr PXELINUX

Bootmenü verwalten

Ein Menü setzt sich aus einem oder mehreren Booteinträgen oder Verweise auf andere Bootmenüs zusammen. Seien Sie vorsichtig, wenn Sie einen der Standardeinträge verändern. Für Experimente bietet es sich an, den „Kopieren“-Button in der Liste der Menüeinträge zu nutzen, damit der originale Eintrag erhalten bleibt.

Eine Einführung zu Bootmenüs mit iPXE finden Sie unter iPXE Bootmenü.

Vorteile von iPXE

Für bwLehrpool ergeben sich durch iPXE eine ganze Reihe von Vorteilen gegenüber den alten PXELINUX Menüs:

  • Es können unterschiedliche Booteinträge über die Weboberfläche angelegt und zu Bootmenüs zusammengefasst werden
  • Bootmenüs lassen sich an bestimmte Räume ausliefern (z.B. dort wo statt bwLehrpool standardmäßig von HDD gebootet werden soll mit verändertem Default-Eintrag)
  • Deutlich mehr Konfigurationsmöglichkeiten über die Weboberfläche
  • Unterstützung für reinen UEFI Boot (falls der Rechner kein Legacy-PXE unterstützt)

Vor allem der letzte Punkt, PXE Boot von UEFI, wird zunehmend kritischer. Der bwPC 5 (ESPRIMO Q958 (FUJITSU)) unterstützt kein Legacy-PXE (BIOS-Mode/Legacy-Mode/CSM). Um diese Rechner mit bwLehrpool zu verwenden, müssen Sie daher zwingend auf iPXE wechseln.

Unter Umständen gibt es Hardware, die mit iPXE Probleme hat. Wir haben im Voraus bereits möglichst viele Modelle auf Kompatibilität getestet. Falls Sie dennoch Probleme mit bestimmten Modellen feststellen, geben Sie uns bitte Bescheid.

Wir führen eine Liste an Modellen mit bekannten Problemen und wenn bekannt entsprechenden Work-arounds.

Von uns mit iPXE erfolgreich getestete Modelle: (TODO: BIOS/EFI Mode?)

  • D34010WYK (Intel Corporation)
  • NUC5i3RYB (Intel Corporation)
  • NUC5i5RYB (Intel Corporation)
  • ESPRIMO P420 (FUJITSU)
  • ESPRIMO P910 (FUJITSU)
  • ESPRIMO P920 (FUJITSU)
  • ESPRIMO Q956 (FUJITSU)
  • ESPRIMO Q957 (FUJITSU)
  • ESPRIMO Q958 (FUJITSU)
  • ESPRIMO P958 (FUJITSU)
  • CELSIUS_W550power (FUJITSU)
  • LIFEBOOK U749 (FUJITSU CLIENT COMPUTING LIMITED)
  • HP Compaq dc5750 Microtower (Hewlett-Packard)
  • HP Compaq 6200 Pro SFF PC (Hewlett-Packard)
  • HP Compaq Pro 6300 SFF (Hewlett-Packard)
  • HP Compaq 8000 Elite CMT PC (Hewlett-Packard)
  • HP Compaq 8200 Elite CMT PC (Hewlett-Packard)
  • HP Compaq 8200 Elite SFF PC (Hewlett-Packard)
  • HP EliteDesk 800 G5 TWR (HP)
  • HP EliteDesk 800 G5 Desktop Mini (HP)
  • HP EliteDesk 800 G6 Tower PC (HP)
  • HP Z240 Tower Workstation (HP)
  • HP Z400 Workstation (Hewlett-Packard)
  • HP Z420 Workstation (Hewlett-Packard)
  • HP Z440 Workstation (Hewlett-Packard)
  • HP Z4 Workstation (Hewlett-Packard)
  • OptiPlex 390 (Dell Inc.)
  • OptiPlex 755 (Dell Inc.)
  • OptiPlex 3010 (Dell Inc.)
  • OptiPlex 5050 (Dell Inc.)
  • OptiPlex 9020M (Dell Inc.)
  • OptiPlex 9020 (Dell Inc.)
  • Latitude E4300 (Dell Inc.)
  • 10ABA040GE (LENOVO)
  • 10AEA0EWGE (LENOVO)
  • 30CY0026GE (LENOVO)
  • 20BWS1RR00 (LENOVO)
  • P9X79 WS (ASUSTeK COMPUTER INC.)
  • ECO 44 G7 (TAROX AG)

Geben Sie uns gerne Bescheid, wenn Sie weitere Modelle mit oder ohne Erfolg getestet haben, damit wir die Liste vervollständigen können.

Nachteile von iPXE

Prinzipiell gibt es nur Vorteile bei der Verwendung von iPXE. Es kann jedoch einzelne Rechnermodelle bzw. BIOS-Implementierungen geben, die mit iPXE nicht klarkommen. In diesem Fall kann ein Wechsel des Bootfiles Abhilfe schaffen.

UEFI

Bisher unterstützen die meisten Rechner noch einen Legacy-PXE-Boot. Es gibt allerdings bereits erste Systeme, die sich ausschließlich über EFI starten lassen. Hier sind Anpassungen am DHCP-Server notwendig. Bitte beachten Sie außerdem, dass Secure Boot bei Verwendung von UEFI deaktiviert werden muss, da bwLehrpool Binaries nicht von den standardmäßig im UEFI hinterlegten Schlüsseln signiert worden sind.

BIOS und UEFI unterscheiden sich grundlegend voneinander. Auch die über den DHCP-Server ausgelieferte PXE-Binary muss daher auf die jeweilige Architektur passen. Der Satellitenserver enthält Binaries für beide Architekturen, jedoch muss das jeweils richtige Bootfile an die Clients ausgeliefert werden.

Für normalen BIOS-PXE Boot muss der DHCP als Bootfile wie bisher ipxelinux.0 oder eine andere BIOS-Variante (unidonly.kpxe.0, ipxe.pxe.0) ausliefern. Für Clients die über EFI booten lautet das Bootfile ipxe.efi oder snponly.efi.

In der Regel lässt sich die Architektur über die DHCP Option 60 (Vendor class identifier)1) bzw. 93 (Client System Architecture)2) erkennen und das Verhalten entsprechend steuern. Vergleichen Sie dazu auch die beiden nebenstehenden Screenshots.

Je nach verwendetem DHCP-Server unterscheidet sich die Konfiguration, weswegen wir hier nur Beispiele bzw. weiterführende Informationen angeben können.

DHCP-Beispielkonfiguration

Sie können die Konfiguration zunächst erst mal ohne Unterscheidung der Client-Architektur fest für einen einzelnen Test-Rechner setzen. Somit können Sie gefahrlos prüfen, ob UEFI-Boot mit bwLehrpool generell funktioniert. Sind alle Rechner eines Subnetzes auf EFI oder BIOS gestellt, ist es evtl. ebenfalls ausreichend, das Bootfile Netzweit zu setzen.

Einzelner Rechner (Bsp. isc-dhcpd)

Damit nicht jeder Client mit UEFI einzeln eingetragen werden muss, sollten Sie jedoch über den „vendor-class-identifier“ unterscheiden, ob ein Client per BIOS oder UEFI bootet und das entsprechende Bootfile ausliefern. Somit lassen sich leicht ganze Subnetze konfigurieren.

Unterscheidung mittels "vendor-class-identifier" (Bsp. isc-dhcpd)


Unseres Wissens unterstützt Windows Server 2008R2 die Unterscheidung anhand des „vendor-class-identifier“ nicht. Sie haben in diesem Fall daher drei Möglichkeiten:

  • Wechsel auf einen anderen DHCP (z.B. Windows Server 2012)
  • Festes Eintragen für einzelne Rechner bzw. IP-Ranges wenn alle Rechner in einer Range gleicher Architektur sind
  • Nutzen eines ProxyDHCP wie z.B. dnsmasq


Weitere Konfigurationsbeispiele:

BIOS-Client - DHCP Discover
UEFI-Client - DHCP Discover

DHCP - MAC/UUID

DHCP-Server vergeben IP-Adressen für ein bestimmtes Zeitfenster (Lease). Wenn derselbe Rechner mehrmals bootet bzw. mehrfach Anfragen an einen DHCP-Server stellt, sollte dieser (im Rahmen der Lease oder einer statisch hinterlegten Regel) immer die gleiche IP erhalten. Ist dies nicht der Fall, kann es irgendwann passieren, dass keine freien IPs mehr zur Verfügung stehen und ein Client keine IP erhält. Außerdem gibt es voraussichtlich Probleme mit der Raumzuordnung von Clients innerhalb von bwLehrpool.

Im Fall von bwLehrpool werden beim Boot systembedingt zwei DHCP-Anfragen gestellt. Die Erste vom PXE-ROM, die Zweite vom MiniLinux. Manche PXE-Implementierungen senden die Option 61 (Abschnitt 9.14. Client-identifier) obwohl diese eigentlich nicht mehr verwendet werden sollte (Compatibility Issues). Wird diese Option vom Client bzw. PXE-ROM gesetzt, unterscheidet sich die Anfrage von der zweiten Anfrage des MiniLinux, welches die Option standardmäßig nicht setzt.

Normalerweise erkennt der DHCP-Server Rechner einfach anhand der MAC-Adresse - dann sollte es keine Probleme geben. Manche DHCP-Server prüfen jedoch den oben erwähnten Client Identifier (Option 61). Der DHCP-Server erkennt durch die dann zwei unterschiedlichen Anfragen, fälschlicherweise zwei unterschiedliche Clients und vergibt daher zwei IP-Adressen an den selben Client.

Um dieses Verhalten zu ändern, kann per Kernel Command Line (KCL) die Option 'dhcpuuid' gesetzt werden. Ist die Option gesetzt, setzt das MiniLinux in seinen DHCP-Anfragen die Option 61 auf die System-UUID. Bearbeiten Sie dazu den entsprechenden Bootmenü-Eintrag für bwLehrpool und fügen dhcpuuid hinzu. Somit sollten beide Anfragen wieder identisch und das Problem behoben sein.

Menüeintrag Beispiel (bwlp-default + dhcpuuid):

imgfree ||
set slxextra initrd=logo ||
initrd /boot/default/initramfs-stage31 || goto fail
initrd –name logo /tftp/bwlp.cpio || clear slxextra
boot -a -r /boot/default/kernel initrd=initramfs-stage31 ${slxextra} slxbase=boot/default quiet splash loglevel=5 rd.systemd.show_status=auto intel_iommu=igfx_off dhcpuuid ${ipappend1} ${ipappend2} || goto fail

Drucken/exportieren