PXE - Preboot Execution Environment (Raspberry Pi 4): Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
Zeile 189: Zeile 189:
Alternativ können die Konfigurationsdateien auch nach der IP-Adresse in Hexadezimal-Schreibweise mit '''Großbuchstaben''' benannt werden.
Alternativ können die Konfigurationsdateien auch nach der IP-Adresse in Hexadezimal-Schreibweise mit '''Großbuchstaben''' benannt werden.


Z.B. ''192.168.2.105'' ergibt in Hexzahlen ''C0.A8.02.69'' bzw. ''0xC0A80269'' und dann als Dateinamen eben ''C0A80269''.
Z.B. ''192.168.2.105'' ergibt in Hexzahlen ''C0.A8.02.69'' bzw. ''0xC0A80269'' und dann als Dateinamen eben ''C0A80269'' (auch abgekürzt für Netzbereiche möglich - z.B.: ''C0A80'').
 
(auch abgekürzt für Netzbereiche möglich - z.B.: ''C0A80'')


IP zu Hexadecimal-Konverter: [https://www.browserling.com/tools/ip-to-hex https://www.browserling.com/tools/ip-to-hex].
IP zu Hexadecimal-Konverter: [https://www.browserling.com/tools/ip-to-hex https://www.browserling.com/tools/ip-to-hex].

Version vom 29. September 2020, 18:36 Uhr

Client

Bootlader

Update

Zuerst das System auf den neuesten Stand bringen:

sudo apt-get update && sudo apt-get full-upgrade
sudo reboot

Mit folgenden Befehl kann man überprüfen, ob es eine neuere Bootlader-Version gibt:

sudo rpi-eeprom-update

Mit der Option -a kann die neueste Version intalliert werden:

sudo rpi-eeprom-update -a
sudo reboot
Links

https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md

https://github.com/raspberrypi/rpi-eeprom/

Bootreihenfolge anpassen

Nach einem full-upgrade befindet sich die neueste Bootlader-Version in /lib/firmware/raspberrypi/bootloader/stable/. Diese wird in lokales Verzeichnis kopiert und die Konfiguration exportiert:

cd ~/temp
cp /lib/firmware/raspberrypi/bootloader/stable/pieeprom-2020-09-03.bin pieeprom.bin
sudo rpi-eeprom-config pieeprom.bin > bootconf.txt

Die Datei

vi bootconf.txt

bearbeiten und den Eintrag BOOT_ORDER auf 0x21 (zuerst von SD-Karte, dann vom Netzwerk) setzen:

BOOT_ORDER=0x21

Danach aus dem usrprünglichen Bootloader und der geänderten Konfiguration einen neuen erstellen:

sudo rpi-eeprom-config --out pieeprom-new.bin --config bootconf.txt pieeprom.bin

Zum Abschluss den Bootloader aktualisieren und das System neu starten:

sudo rpi-eeprom-update -d -f ./pieeprom-new.bin
sudo reboot

Nach dem Neustart kann die Konfiguration mittels

vcgencmd bootloader_config

kontrolliert werden.

Links

https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md

Server

DHCP-Server

Installation und Grundkonfiguration siehe ISC-DHCPD

PXE-Boot aktivieren

Die Datei

sudo vi /etc/dhcp/dhcpd.conf

bearbeiten und folgenden Zeilen hinzfügen

allow booting;
allow bootp;

group {
  # IP address of the TFTP server
  next-server 192.168.2.1;

  host tftpclient {
    # ethernet address of the client
    hardware ethernet  DC:A6:32:BE:D1:7D;
    # static ip address (optional)
    fixed-address 192.168.2.105;
    filename "pxelinux.0";
  }
}

Dabei ist group optional und dient nur dazu, gewisse Parameter (hier die IP-Adresse des TFTP-Servers) für mehrere host's gemeinsam zu definieren.

Links

https://wiki.syslinux.org/wiki/index.php?title=PXELINUX

https://kb.isc.org/docs/isc-dhcp-41-manual-pages-dhcpdconf

TFTP Server

Siehe dazu tftpd-hpa

NFS Server

Installation und Grundkonfiguration NFS Server


Um das Root-Verzeichnis /srv/tftp des TFTP-Server und alle Unververzeichnisse lesend für NFS-Clients freizugeben die Datei

sudo vi /etc/exports

editieren und folgende Zeile hinzufügen:

/srv/tftp 192.168.2.0/255.255.255.0(ro,sync,no_wdelay,insecure_locks,insecure,no_root_squash,no_subtree_check)

Beschreibung der Parameter siehe NFS Server#Konfiguration

Testen siehe NAS Laufwerk einbinden#OHNE_Eintrag in /etc/fstab

Bootdateien

PXE-Bootdateien

Damit das Booten über PXE funktioniert, müssen die Pakete

sudo apt-get install pxelinux syslinux-common 

installiert und daraus folgende Dateien ins TFTP-Wurzelverzeichnis kopiert werden:

sudo cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/
sudo cp -v /usr/lib/syslinux/modules/bios/{ldlinux.c32,libcom32.c32,libutil.c32,vesamenu.c32} /srv/tftp/

Konfigurationsdateien

Die Konfigurationsdateien werden im Verzeichnis /pxelinux.cfg/ unterhalb des TFTP-Wurzelverzeichnisses angelegt:

sudo mkdir /srv/tftp/pxelinux.cfg/

Es muss eine Konfigurationsdatei mit dem Namen default geben, falls keine client-spezifische Konfigurationsdatei gefunden werden kann:

sudo vi /srv/tftp/pxelinux.cfg/default

Und optional client-spezifische Konfigurationen anhand der MAC-Adresse in Kleinbuchstaben mit vorangestellten 01-:

z.B. ergibt die MAC-Adresse DC:A6:32:BE:D1:7D die Konfigurationsdatei 01-dc-a6-32-be-d1-7d.

sudo vi /srv/tftp/pxelinux.cfg/01-dc-a6-32-be-d1-7d

Alternativ können die Konfigurationsdateien auch nach der IP-Adresse in Hexadezimal-Schreibweise mit Großbuchstaben benannt werden.

Z.B. 192.168.2.105 ergibt in Hexzahlen C0.A8.02.69 bzw. 0xC0A80269 und dann als Dateinamen eben C0A80269 (auch abgekürzt für Netzbereiche möglich - z.B.: C0A80).

IP zu Hexadecimal-Konverter: https://www.browserling.com/tools/ip-to-hex.

Links

https://wiki.syslinux.org/wiki/index.php?title=PXELINUX

https://wiki.ubuntuusers.de/PXE-Boot/

Betriebssystem

??
Links

https://wiki.ubuntuusers.de/PXE-Boot/

Links

https://hackaday.com/2019/11/11/network-booting-the-pi-4/

https://www.debian.org/releases/jessie/i386/ch04s05.html.de

https://wiki.ubuntuusers.de/PXE-Boot/

https://www.virtuallyghetto.com/2020/07/two-methods-to-network-boot-raspberry-pi-4.html


Zurück zu PXE - Preboot Execution Environment