Forgot your password?

Forgot your username?

All about IT, Web and Development.
By users for users.

PXE Boot Server unter Ubuntu einrichten



Mit einem PXE (=Preboot Execution Environment) Server ist es möglich ein Endgerät über die Netzwerkschnittstelle booten zu lassen. Vor allem für Thin Clients ist dies interessant.



Voraussetzungen


DHCP Server


Zunächst muss ein vollwertiger DHCP Server aufgesetzt werden. Die in den herkömmlichen Routern eingebauten DHCP Server lassen sich leider nicht um die PXE Option erweitern.

Aus diesem Grund empfiehlt es sich den DHCP Server des Routers zu deaktivieren. Befindet sich ein DHCP auf der Basis von Windows Server im Einsatz muss zunächst die PXE Bootfunktion aktiviert werden.


Client


Die entsprechenden Clients müssen über eine PXE fähige Netzwerkschnittstelle verfügen. Hier ist es wichtig die PXE Netzwerk Boot Funktion auch im BIOS zu aktivieren. Ein Booten über die WLAN Schnittstelle ist nicht möglich.


Installation


Am Anfang werden die benötigten Pakete für den PXE Server unter Ubuntu mittels apt-get installiert.

sudo apt-get install tftpd-hpa nfs-kernel-server syslinux


Serverdienste


Bevor der PXE Server getestet werden kann, werden die einzelnen benötigten Dienste wie DHCP und NFS eingerichtet.


TFTP Server


Der TFTP Server wird zur Bereitstellung der Daten an die PXE Clients benötigt.
Vorerst wird der TFTP Server als Dämon gestartet. Hierzu die Datei /etc/default/tftp-hpa bearbeiten.
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="192.168.1.121:69"
TFTP_OPTIONS="-l --secure"


Zum Abschluss wird der TFTP Server neugestartet.

sudo service tftpd-hpa restart


NFS Server konfigurieren


Das tftpboot Verzeichnis in welchem sich später alle wichtigen Dateien befinden haben wir bereits erstellt.

Nun wird das Verzeichnis noch im NFS Server hinterlegt. Hierzu wird die Konfigurationsdatei /etc/exports angepasst. Alternativ kann man hier auch ein anderes Verzeichnis (z.B. /nfsroot) wählen.

/var/lib/tftpboot 192.168.1.0/255.255.255.0(rw,no_root_squash,no_subtree_check,async)

Wir gehen hierbei davon aus, dass sich alle Rechner mit Netzwerk 192.168.1.0 mit der Subnetzmaske 255.255.255.0 befinden. Diesen wird dadurch Schreibzugriff auf das Verzeichnis /srv/net gegeben.

Abschließend werden die Freigaben neu eingelesen.

sudo exportfs -ra


Konfiguration


DHCP


Im DHCP Server hinterlegen wir nun den Pfad zum PXE Server. Unter Linux wird dies auf dem Server in der Datei /etc/dhcp/dhcpd.conf festgelegt.

...
allow booting;
allow bootp;

next-server 192.168.1.121;
filename "/pxelinux.0";
...


Bei next-server wird die IP Adresse des PXE Servers eingegeben.


Dateien kopieren


Jetzt werden die notwendigen Dateien in das tftpboot Verzeichnis kopiert

sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot
sudo cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot


und ein Unterverzeichnis für die PXE Dateien erstellt.

sudo mkdir /var/lib/tftpboot/pxelinux.cfg 


Boot Konfiguration


Als Beispiel binden wir einen einfachen memtest ein.

mkdir /var/lib/tftpboot/memtest && cd /var/lib/tftpboot/memtest
wget http://www.memtest.org/download/5.01/memtest86+-5.01.bin.gz
gunzip memtest86+-5.01.bin.gz
mv memtest86+-5.01.bin memtest86


Die Standard Boot Konfiguration wird im Verzeichnis /var/lib/tftpboot/pxelinux.cfg als Datei default abgelegt.

DEFAULT menu.c32
ALLOWOPTIONS 0
PROMPT 0
TIMEOUT 0

MENU TITLE Server PXE Boot Server

LABEL      memtest
MENU LABEL ^Memtest86+
KERNEL     memtest/memtest86


Test


Zum Testen empfiehlt es sich einen Rechner über PXE booten zu lassen. Alternativ kann man natürlich auch Virtualbox zum Testen verwenden. Hierzu muss die virtuelle Netzwerkkarte auf Brücke stehen und direkt beim Start der VM ESC gedrückt werden. Über die Taste l kann dann vom Netzwerk gebootet werden.




Fazit


Die Konfiguration eines PXE Boot Server unter Ubuntu gestaltet sich zwar recht umfangreich ist aber dennoch überschaubar.

Gerade für häufig benötigte Tools wie z.B. GParted, Knoppix, etc. ist ein PXE Server äußerst praktisch.

Michael Kostka

Fachinformatiker / Systemintegration
Ich schreibe hier regelmäßig zu den Themen Android, Web, Linux und Hardware.

Raspberry Pi Starter Kit
DataCloud

Leave a comment

I have read the privacy policy and agree to electronically store and process my input data to answer the request.