SliTaz GNU/Linux official and community documentation wiki.
.png
Translations of this page:

PXE

Preboot eXecution Environment (oder PXE, englisch ausgesprochen “pixie”) steht für das Laden eines Systems über eine Netzwerk-Verbindung. Dies ist vergleichbar dem Laden von einem Direktstart-Datenträger in einem fernen optischen Laufwerk.

Für das Laden über das Netzwerk wird benötigt:

  • ein Server, der Dateien speichern kann und auf dem DHCP und TFTP laufen (dies können auch separate Rechner sein)
  • ein Klient mit einem PXE-Urlader in der BIOS-Firmware. Dieser braucht keine Platte oder SSD.


PXE-Server Einrichtung

Ein PXE-Server besteht aus:

  • einem DHCP-Server, der Verbindungsanforderungen annimmt
  • einer DHCP-Urladerdatei zum Konfigurieren
  • einem TFTP-Server, der ein Betriebssystem transferiert

Schnelleinstieg mit Direktstart-Datenträger

Der SliTaz-Direktstart-Datenträger kann als ein PXE-Server eingesetzt werden. Dazu wird nach dem Systemladen über das Menü Systemwerkzeuge die Netbox-Anwendung gestartet.

Seit SliTaz 3.0 ist die Netbox-Anwendung aufgeteilt in Netbox and Serverbox. Wenn Sie eine aktuelle SliTaz-Version einsetzen, lesen Sie im folgenden bitte Serverbox-Anwendung statt Server-Reiter

  • In dem Reiter Statische IP-Adresse auf Start klicken.
    • Dieser Rechner wird dann der DHCP-Server. Er kann DHCP nicht benutzen, um IP-Adressinformationen zu ermitteln!
  • Wählen Sie im Server-Reiter den Unter-Reiter INETD und stellen Sie sicher, dass die Zeile tftpd in /etc/initd.conf nicht auskommentiert ist. Dies ist die Standardeinstellung. Klicken Sie auf Start.
    • Damit wird der TFTP-Server gestartet, der den SliTaz-Direktstart-Datenträger über das Netzwerk transferiert.
  • Wählen Sie im Server-Reiter den Unter-Reiter PXE.
  • Fügen Sie in der Konfiguration Ihre Urlade-Optionen hinzu.
    • Damit wird auch die DHCP-Server-Konfiguration automatisch aktualisiert.
  • Wählen Sie im Server-Reiter den Unter-Reiter DHCP. Prüfen Sie, ob die Konfiguration zu Ihrem Netzwerk passt. Im vorherigen Schritt wurden die Zeilen boot_file und siaddr eingefügt. Klicken Sie auf Start.
    • Damit wird der DHCP-Server gestartet. Wenn Klienten keine IP-Adresse erhalten, muss diese Konfiguration geprüft werden.
  • Stellen Sie sicher, dass die Dateien bzImage und rootfs.gz sich im Verzeichnis /boot des Direkstart-Datenträgers befinden.

Anpassung Ihres PXE-Servers

  • Es kann mehrere PXE-Konfigurationen für verschiedene Gruppen von Klienten geben. Siehe PXElinux wiki.
  • Das Verzeichnis /home kann sich nur auf einem lokalen Speichermedium des Klienten befinden (wie auch bei tazusb). Daher ist beispielsweise in /etc/fstab einzufügen:
/dev/hda1    /home   ext3    defaults   0  0
  • Seit SliTaz 3.0 kann auf einigen Klienten eine hybride Installation durchgeführt werden. Auf diesen Klienten ist SliTaz mit einigen großen Paketen wie libreoffice installiert. Die Systeme werden mit PXE geladen und der größte Teil des Systems befindet sich im Arbeitsspeicher, wohingegen die große Software sich auf Platte befindet; dabei kann es sich auch um ein Netzlaufwerk handeln. Daher ist beispielsweise in /etc/init.d/local.sh einzufügen:
mount -t nfs -o ro bootserver:/slitaz  /media/slitaz
tazpkg link libre-office /media/slitaz
  • Seit SliTaz 3.0 können mehrere initramfs in der pxelinux-Konfigurationsdatei angegeben werden. Auf diese Art kann SliTaz unter Beibehaltung von Einstellungen leicht aktualisiert werden. Zum Beispiel:
label slitaz
  kernel /boot/bzImage
  append initrd=/boot/rootfs.gz,/boot/configs/extra-packages.gz,/boot/configs/special-configuration.gz rw root=/dev/null vga=normal autologin


Testen des PXE-Servers mit QEMU

  • Installieren Sie qemu:
    # tazpkg get-install qemu
  • Starten Sie eine virtuelle Maschine:
    qemu -boot n -bootp /pxelinux.0 -tftp /boot


Einrichten des PXE-Klienten

Die meisten neueren Rechner mit Ethernet-Anschluss haben ein PXE-fähiges BIOS oder UEFI. Suchen Sie die PXE-Funktion in den BIOS-Menüs und im BIOS-Urlade-Menü und aktivieren Sie sie. Möglicherweise müssen Sie dazu während des Urlade-Prozesses eine Taste drücken, z.B. F12.

Wenn Ihr Rechner Urladen mit PXE nicht unterstützt, können Sie stattdessen SliTaz als Klienten verwenden. Erzeugen Sie einen urladefähigen optischen Datenträger oder eine Diskette über das Menü Systemwerkzeuge Unterpunkt Boot Floppy/CDROM.

In dem Reiter PXE-Netzwerk klicken Sie Write floppy. Verwenden Sie diesen Datenträger zum Laden des Klienten-Rechners.

Wenn Ihre Ethernet-Schnittstelle nicht erkannt wird, schauen Sie bei ROM-O-Matic


Urladen über das Netzwerk

Der SliTaz-Direktstart-Datenträger enthält Konfigurationseinstellungen zum Urladen über das Internet. Damit ist es möglich, von einem älteren Speichermedium eine neuere SliTaz-Version zu laden.

Dies geht automatisch, wenn Sie in dem Startbildschirm des SliTaz-Direktstart-Datenträgers eingeben:

  web

Das ist alles!

Mehr Informationen über das Laden von SliTaz über das Internet finden Sie bei SliTaz „Web Boot“.

Um eine IP-Adresse, eine Netzmaske und die Adresse eines Netzkopplers („gateway“) zu erhalten, wird wie bei einer normalen Netzwerk-Verbindung, ein DHCP-Server benötigt; dies sollte Ihr Standard-Vermittlungsknoten („router“) leisten.


Urladen mit PXE ohne DHCP-Server: Urladen über das Netzwerk per Anweisungen

Wenn kein Gerät vorhanden ist, das als DHCP-Server dienen kann, ist eine IP-Adresse mitsamt Netzmaske, die Adresse eines Netzkopplers und optional eine DNS-Adresse anzugeben:

title Slitaz Web
  kernel /boot/gpxe ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 url=http://mirror.slitaz.org/pxe/pxelinux.0

Der URL kann auch folgendermaßen angegeben werden:

title Slitaz Web
  kernel /boot/gpxe ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 ip=192.168.0.12/24 gw=192.168.0.1
  dns=192.168.0.1 url=http://mirror.slitaz.org/pxe/pxelinux.0

Nur die folgenden Schlüsselwörter werden erkannt:

  • ip=
  • gw=
  • dns=
  • url=
  • nodhcp (zum Vermeiden von Zeitablauffehlern bei DHCP)


Erweiterte Konfiguration zum Urladen über das Netzwerk

Das Verfahren zum Urladen über das Netzwerk kann in Vermittlungsknoten („router“) und andere Geräte integriert werden und individuell angepasst werden.


Eingebettetes Urladen über Netzwerk mit PXE vom PROM (PXE-Weiterleitung)

Richten Sie einen PXE-Server ein mit der Urladedatei http://download.tuxfamily.org/slitaz/boot/gpxe.pxe, einem 42 KiB großen Urlader zweiter Stufe. Dies wurde erfolgreich auf einem OpenWRT-Vermittlungsknoten getestet:

  • installieren Sie http://mirror.slitaz.org/boot/mips/tftpd (Mips-Version) in /jffs/usr/sbin
  • installieren Sie gpxe.exe in /jffs/boot
  • fügen Sie eine Option dhcp-boot in die Konfigurationsdatei von dnsmasq ein:
      # echo "dhcp-boot=gpxe.pxe" >> /tmp/dnsmasq.conf
  • Starten Sie den tftp-Server für Ihr LAN (etwa 192.168.0.1/24)
  # /jffs/usr/sbin/tftpd 192.168.0.1 /jffs/boot

Die Installation des tftp-Servers ist nicht erforderlich, wenn Sie direkt den SliTaz-tftp-Server verwenden:

      # echo "dhcp-boot=gpxe.pxe,mirror.slitaz.org" >> /tmp/dnsmasq.conf


Änderung des Standard-URL für GPXE-Urladen

Der URL steht in der Datei gpxe ab Byte 519 in einer Länge von maximal 255 Byte.

  • Anzeige des URL in der Datei gpxe mit:
    $ dd bs=1 skip=519 count=255 if=gpxe 2> /dev/null | strings
  • Ändern des URL mit:
    $ echo -n "http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe
  • Ändern des URL und der IP-Konfiguration mit:
  $ echo -n "ip=192.168.0.10/24 gw=192.168.0.1 dns=192.168.0.1 url=http://myurl.org/myboot" | cat - /dev/zero | dd
  conv=notrunc bs=1 seek=519 count=255 of=gpxe
  • Entfernen des URL, um normales GPXE-Verhalten zu erreichen:
  $ dd if=/dev/zero conv=notrunc bs=1 seek=519 count=255 of=gpxe


Änderung des Standard-URL in der Datei gpxe.pxe

Der URL steht in der Datei gpxe.pxe ab Byte 5 in einer Länge von maximal 255 Byte.

Anzeige des URL in der Datei gpxe.pxe mit:

  $ dd bs=1 skip=5 count=255 if=gpxe.pxe 2> /dev/null | strings

Ändern des URL mit:

  $ echo -n "http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=5 count=255 of=gpxe.pxe

Entfernen des URL, um normales gpxe.pxe-Verhalten zu erreichen:

  $ dd if=/dev/zero conv=notrunc bs=1 seek=5 count=255 of=gpxe.pxe


Redundante Server für das Urladen über das Netzwerk nutzen

Es kann eine, durch Kommata getrennte Liste von URLs angegeben werden.

Der PXE-Klient versucht zunächst, vom ersten URL zu laden. Wenn das Urladen scheitert, wird der nächste URL versucht, und so weiter.

Hier ein Beispiel mit den aktuellen Servern zum Urladen von Slitaz über das Netzwerk:

  $ echo -n "http://mirror.slitaz.org/pxe/pxelinux.0,http://mirror.switch.ch/ftp/mirror/pxe/pxelinux.0,http:
  download.tuxfamily.org/slitaz/pxe/pxelinux.0" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe

Warum PXE verwenden? Das VNC-Beispiel

Nehmen wir an, Ihre Firma verarbeitet einige äußerst schutzwürdige Daten. Es soll verhindert werden, dass jemand irgendetwas davon auf Wechseldatenträger kopiert. Nur wenige Benutzer sollen Zugriff auf diese Daten haben.

  • PXELINUX wählt über die MAC-Adresse in pxelinux.cfg/client-mac-address eine spezielle Konfiguration
  • Es prüft das md5- (oder sha256-) Kennwort des Benutzer-Urlade-Eintrags mit menu.c32
  • Es sendet einen Linux-Kern und ein initramfs mit einem fbvnc-Paket erzeugt von http://tiny.slitaz.org/ (Gesamtgröße < 1,44 MB)
  • Das Klient-System wird in 1 bis 5 Sekunden mit einem VNC-„framebuffer client“ geladen
  • Der VNC-Server kann jeden beliebigen Bildschirm senden
  • Der Klient hat keinen Datenträgerzugriff und kann 20 Jahre alte Hardware verwenden (mindert das Diebstahlrisiko)
  • Das Zielsystem kann in einer virtuellen Maschine laufen: dies ist leichter zu skalieren und zu warten als mehrere Arbeitsplatzrechner
  • Auf dem Klienten-Rechner werden keine Daten gespeichert. Er kommt ohne Platte aus. Er benötigt lediglich einen Ethernet-Anschluss
  • Selbstverständlich muss für die Sitzungen auf dem Zielsystem Benutzername und Kennwort abgefragt werden und ein Verbindungszeitablauf definiert sein…

Zur Erhöhung der Sicherheit

VNC wartet auf Verbindungsaufbau aus dem Netzwerk ohne ein Kennwort (fbvnc unterstützt keine Authentifizierung) und der VNC-Verkehr über das Netzwerk wird nicht verschlüsselt.

  • Erzeugen Sie ein initramfs mit dem Paket fbvnc-ssh bei http://tiny.slitaz.org/
  • Auf dem Server sollte VNC nur auf Verbindungen von localhost warten
  • Der öffentliche SSH-Schlüssel des Klienten befindet sich in $HOME/.ssh/authorized_keys auf dem VNC-Server
  • Der VNC-Verkehr kann im SSH-Tunnel komprimiert werden (fbvnc unterstützt nur „raw frames“)

Eine schnelle Demonstration

Über das Menü Tiny SliTazTiny VNC von SliTaz „Web Boot“ wird der VNC-Klient ohne SSH gestartet (es wird ein VNC-Server in Ihrem Netzwerk benötigt…).

Sie können den Linux-Kern und das initramfs direkt transferieren und in Ihrem Netzwerk testen oder mit qemu

Um den bestem VESA-Modus (z.B. vga=0x33B) zu finden, geben Sie als Argument zunächst vga=ask an



Qualitätsbericht
Qualität gut
Überprüfung Kleinere Aktualisierungen
Priorität mittel
Problemeungültige Verweise: http://rom-o-matic.net/ http://mirror.slitaz.org/boot/mips/tftpd
Verbesserungsvorschläge Lesbarkeit verbessern



 
de/guides/pxe.txt · Last modified: 2020/09/20 16:57 by hgt