Skip to main content

PXE-Auftrag

Aufgabenstellung

Vorbereitung der Geräte

  • Ein Debian Linux-Server wird aufgesetzt, um als TFTP PXE Server zu fungieren. Dieser Server wird für das Netzwerkboot und die Bereitstellung von Betriebssystem-Images für Diskless-Stationen verantwortlich sein.
  • Ein Client-PC (virtuelle Maschine) wird vorbereitet, um als Diskless-Station zu dienen, die über Netzwerk bootet und das Betriebssystem vom PXE-Server lädt.

Einrichtung und Konfiguration des TFTP PXE Servers

  • Installation und Konfiguration des TFTP-Servers auf dem Debian System, der für das Hosting der Boot-Images und des PXE-Boot-Loaders verantwortlich ist.
  • Einrichtung des PXE-Boot-Loaders (z.B. PXELINUX) und Bereitstellung der notwendigen Boot-Images sowie der Konfigurationsdateien, um den Netzwerkboot zu ermöglichen.

Testen und Überprüfung

  • Durchführung eines Boot-Vorgangs auf dem Client-PC (Diskless-Station) über das Netzwerk, um zu überprüfen, ob das Betriebssystem erfolgreich vom TFTP PXE Server geladen und gestartet wird.

image.png

PXE Auftrag.excalidraw

Theorie

Aufbau der Umgebung

Konfiguration des TFTP Servers

Ubuntu Server

TFTP SERVER in Betrieb nehmen

Installation des TFTP-Servers:

Der erste Schritt besteht darin, den TFTP-Server zu installieren. Dies wird erreicht durch den Befehl apt install tftpd-hpa, der den TFTP-Dienst auf Ihrem Ubuntu Server installiert. Dieser Schritt ist notwendig, um die Grundlage für den Dateitransfer über das Netzwerk zu schaffen.

apt install tftpd-hpa
systemctl enable tftpd-hpa

Erstellung des TFTP-Verzeichnisses:

Nach der Installation des TFTP-Servers ist es erforderlich, ein Verzeichnis für die TFTP-Dateiablage zu erstellen. Der Befehl mkdir /srv/tftp erstellt das Verzeichnis /srv/tftp, das als Speicherort für alle Dateien dient, die über TFTP übertragen werden sollen. Dieses Verzeichnis wird vom TFTP-Dienst verwendet, um Boot-Dateien und Konfigurationsdateien für Netzwerkgeräte bereitzustellen.

mkdir /srv/tftp
PXELinux in Betrieb nehmen

Installation von PXELinux und Syslinux:

Für Netzwerk-Boot-Dienste ist die Installation von PXELinux notwendig. Der Befehl apt install pxelinux syslinux-common installiert PXELinux sowie die notwendigen Syslinux-Komponenten auf Ihrem Server. Diese Software ermöglicht es Netzwerkgeräten, über das Netzwerk zu booten, indem sie die erforderlichen Boot-Dateien bereitstellt.

apt install pxelinux syslinux-common

Kopieren der PXELinux Boot-Dateien:

Nach der Installation müssen die PXELinux Boot-Dateien in das TFTP-Verzeichnis kopiert werden. Dies wird durch die Befehle cp /usr/lib/PXELINUX/gpxelinux.lpxelinux.0 /srv/tftp/. und cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/. erreicht. Diese Dateien sind notwendig, um den Boot-Prozess über das Netzwerk zu initiieren.

cp /usr/lib/PXELINUX/lpxelinux.0 /srv/tftp/.
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/.

Erstellung des PXELinux Konfigurationsverzeichnisses:

Mit dem Befehl mkdir /srv/tftp/pxelinux.cfg wird ein Verzeichnis für die PXELinux-Konfigurationsdateien erstellt. In diesem Verzeichnis werden die Boot-Menü-Konfigurationen gespeichert.

mkdir /srv/tftp/pxelinux.cfg

Konfiguration des Boot-Menüs:

In der Konfigurationsdatei default unter /srv/tftp/pxelinux.cfg fügen Sie die notwendigen Einträge für das Booten des Slitaz Betriebssystems hinzu. Dies beinhaltet den Namen der Boot-Option, das zu startende Menü-Label, den Pfad zum Kernel und die Kernel-Optionen, einschließlich der Spezifikation der Initrd-Dateien und Boot-Parameter.

nano /srv/tftp/pxelinux.cfg/default
default slitaz
prompt 0
label slitaz
    menu label Slitaz
    kernel slitaz/bzImage
    append initrd=slitaz/rootfs4.gz,slitaz/rootfs3.gz,slitaz/rootfs2.gz,slitaz/rootfs1.gz rw root=/dev/null vga=normal autologin
Slitaz-Dateien bereitstellen

Kopieren der Slitaz-Dateien:

Die letzten Schritte umfassen das Kopieren der Slitaz-Betriebssystemdateien in das TFTP-Serververzeichnis. Dazu gehören der Kernel (bzImage) und die Initrd-Dateien (rootfs*.gz). Diese Dateien müssen in den entsprechenden Unterverzeichnissen innerhalb des /srv/tftp Verzeichnisses platziert werden, damit sie während des Boot-Prozesses über das Netzwerk zugänglich sind.

cd ~
wget http://mirror.slitaz.org/iso/4.0/slitaz-4.0.iso
mount -o loop slitaz-4.0.iso /mnt
mkdir /srv/tftp/slitaz
cp /mnt/boot/bzImage /mnt/boot/rootfs* /srv/tftp/slitaz/.
umount /mnt

Konfiguration des DHCP Servers

Voraussetzung des folgenden ist das man den DHCP Auftrag bereits erledigt hat: DHCP-Auftrag

Wenn man einen funktionierenden DHCP hat kann man die folgende host Konfiguration hinzufügen (Wichtig ist es die richtige MAC-Adresse zu verwenden)

nano /etc/dhcp/dhcpd.conf
host vogelsrv42012 {
 hardware ethernet 00:50:56:9e:27:5e;
 fixed-address 192.168.1.8;
 next-server 192.168.1.3;
 filename "lpxelinux.0";
}
sudo systemctl restart isc-dhcp-server

Testen des PXE Boots