PXE - Preboot Execution Environment (Raspberry Pi 4)

Aus Tutorials
Zur Navigation springen Zur Suche springen

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

Betriebssystem

??

Links

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

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