Zum Hauptinhalt springen

Konfigurieren eines PXE-Servers unter Ubuntu

Das Preboot Execution Environment (PXE) –Tool ist eine Technologie, mit der Computer über ein Netzwerk booten und ein Betriebssystem installieren oder andere Aufgaben ausführen können, ohne ein bootfähiges Gerät wie eine Festplatte oder ein CD/DVD-Laufwerk verwenden zu müssen. Mit dem PXE-Server können Sie die Installation des Betriebssystems auf mehreren Computern gleichzeitig erheblich vereinfachen und automatisieren, was besonders in Netzwerkadministratorumgebungen nützlich ist.

Um einen PXE-Server unter Ubuntu einzurichten, benötigen Sie ein installiertes Ubuntu-Betriebssystem und Internetzugang. Bereiten Sie einen Computer vor, der als PXE-Server ausgeführt wird, und folgen Sie den Anweisungen unten, um die Konfiguration erfolgreich durchzuführen.

Schritt 1: Installieren der erforderlichen Software

Um zu beginnen, installieren Sie die erforderlichen Pakete auf Ihrem Ubuntu-Server. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:

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

Dieser Befehl installiert einen TFTP-Server, einen Syslinux-Server, der die erforderlichen Dateien zum Herunterladen enthält, und einen NFS-Server, der den Zugriff auf Dateien über das Netzwerk ermöglicht.

Schritt 2: Einrichten von TFTP

Bearbeiten Sie nach der Installation die TFTP-Konfigurationsdatei des Servers, um den Pfad zu den Startdateien anzugeben. Öffnen Sie die Datei mit dem folgenden Befehl:

sudo nano /etc/default/tftpd-hpa

Suchen Sie in dieser Datei nach der Zeichenfolge "TFTP_DIRECTORY" und ändern Sie ihren Wert in "/srv/tftp". Suchen Sie dann nach der Zeile "TFTP_OPTIONS" und fügen Sie das Flag "-l" zu den vorhandenen Optionen hinzu. Am Ende sollte die Datei ungefähr so aussehen:

Speichern und schließen Sie die Datei. Die Konfiguration des TFTP-Servers ist abgeschlossen.

Schritt 3: Erstellen Sie die erforderlichen Verzeichnisse

Erstellen Sie Verzeichnisse, die Download-Dateien und Dateien für den Netzwerkzugriff enthalten. Führen Sie die folgenden Befehle aus:

sudo mkdir /srv/tftp

sudo mkdir /srv/nfs

Glückwunsch! Ihr PXE-Server ist jetzt betriebsbereit und kann verwendet werden, um Betriebssysteme auf anderen Computern in Ihrem Netzwerk zu installieren. Anschließend können Sie einen DHCP-Server einrichten und die Startdateien für verschiedene Betriebssysteme hinzufügen.

Installieren und Konfigurieren des PXE Servers

Schritt 1: Installieren des PXE Servers

Bevor Sie mit der Installation und Konfiguration des PXE Servers beginnen, stellen Sie sicher, dass Ihr Ubuntu-Betriebssystem auf dem neuesten Stand ist und über alle erforderlichen Updates verfügt. Führen Sie dann die folgenden Schritte aus:

  1. Öffnen Sie ein Terminal und führen Sie den Befehl aus sudo apt update, um die Paketliste zu aktualisieren.
  2. Führen Sie dann den Befehl aus sudo apt install tftpd-hpa syslinux pxelinux nfs-kernel-server, um die erforderlichen Pakete für den PXE-Server zu installieren.

Schritt 2: Konfigurieren des TFTP-Servers

Nachdem Sie das Paket tftpd-hpa installiert haben, konfigurieren Sie den TFTP-Server wie folgt:

  1. Öffnen Sie die TFTP-Konfigurationsdatei des Servers, indem Sie den folgenden Befehl ausführen sudo nano /etc/default/tftpd-hpa.
  2. Ändern Sie den Wert der Variablen TFTP_OPTIONS in -l -s /var/lib/tftpboot.
  3. Speichern Sie die vorgenommenen Änderungen, und schließen Sie die Datei.
  4. Erstellen Sie dann das Verzeichnis /var/lib/tftpboot mit dem Befehl sudo mkdir /var/lib/tftpboot.
  5. Geben Sie dem TFTP-Server Schreib- und Leseberechtigungen, indem Sie den folgenden Befehl ausführen sudo chmod -R 777 /var/lib/tftpboot.

Schritt 3: Vorbereiten des PXE Servers

Der nächste Schritt besteht darin, die Dateien zum Booten über PXE vorzubereiten:

  1. Kopieren Sie die pxelinux-Datei.0 aus dem syslinux-Paket in das TFTP-Verzeichnis des Servers, indem Sie den folgenden Befehl ausführen sudo cp /usr/lib/PXELINUX/pxelinux.0 /var/lib/tftpboot.
  2. Erstellen Sie das Verzeichnis /var/lib/tftpboot/pxelinux.cfg mit Befehl sudo mkdir /var/lib/tftpboot/pxelinux.cfg.
  3. Erstellen Sie eine Default-Datei im pxelinux-Verzeichnis.cfg durch Ausführen des Befehls sudo nano /var/lib/tftpboot/pxelinux.cfg/default.
  4. Fügen Sie der default-Datei die folgenden Zeilen hinzu:
DEFAULT menu.c32PROMPT 0MENU TITLE PXE Boot MenuTIMEOUT 100LABEL ubuntuMENU LABEL Install UbuntuKERNEL ubuntu-installer/amd64/linuxAPPEND vga=788 initrd=ubuntu-installer/amd64/initrd.gz netboot=nfs nfsroot=your_nfs_server_ip:/path/to/nfsroot

Ersetzen Sie in diesem Beispiel your_nfs_server_ip durch die IP-Adresse Ihres NFS-Servers und /path/to/nfsroot durch den Verzeichnispfad, der als NFS-Stamm verwendet werden soll.

Schritt 4: Konfigurieren des NFS-Servers

Um über das Netzwerk auf das Ubuntu-Dateisystem zuzugreifen, konfigurieren Sie einen NFS-Server:

  1. Öffnen Sie die NFS-Konfigurationsdatei des Servers, indem Sie den folgenden Befehl ausführen sudo nano /etc/exports.
  2. Fügen Sie der Datei die folgende Zeile hinzu und ersetzen Sie /path/to/nfsroot durch den Verzeichnispfad, der als NFS-Stamm verwendet werden soll:
/path/to/nfsroot *(ro,sync,no_subtree_check,no_root_squash)

Speichern Sie die vorgenommenen Änderungen, und schließen Sie die Datei.

Schritt 5: Starten Sie die Dienste neu

Starten Sie den TFTP- und NFS-Server neu, indem Sie die folgenden Befehle ausführen:

  1. Führen Sie den Befehl aus sudo service tftpd-hpa restart, um den TFTP-Server neu zu starten.
  2. Führen Sie den Befehl aus sudo service nfs-kernel-server restart, um den NFS-Server neu zu starten.

Glückwunsch! Sie haben den PXE Server auf Ubuntu installiert und konfiguriert. Jetzt können Sie PXE verwenden, um Ubuntu über das Netzwerk zu installieren.

Schritt 1: Installieren Sie Ubuntu auf dem Server

Der erste Schritt, um einen PXE-Server unter Ubuntu einzurichten, ist das Betriebssystem auf dem Server zu installieren. Befolgen Sie dazu die folgenden Anweisungen:

  1. Laden Sie das Ubuntu-Installations-CD-Image von der offiziellen Ubuntu-Website herunter.
  2. Brennen Sie das Image auf einen USB-Stick oder erstellen Sie eine Installations-CD.
  3. Schließen Sie den USB-Stick an oder legen Sie die Installations-CD in den Server ein.
  4. Starten Sie den Server von einem USB-Stick oder einer Installations-CD.
  5. Wählen Sie die Installationssprache aus und klicken Sie auf Ubuntu installieren.
  6. Wählen Sie die Partition und das Dateisystem aus, um Ubuntu zu installieren.
  7. Geben Sie einen Benutzernamen und ein Kennwort für den Administratorzugriff an.
  8. Warten Sie, bis die Installation abgeschlossen ist, und starten Sie den Server neu.

Nachdem Sie den Server neu gestartet haben, haben Sie das Ubuntu-Betriebssystem installiert, mit dem Sie den PXE-Server konfigurieren können.

Schritt 2: Installieren Sie die erforderlichen Pakete

Bevor Sie mit der Konfiguration des PXE-Servers unter Ubuntu beginnen, müssen Sie mehrere Pakete installieren. In diesem Abschnitt werden wir uns mit der Installation der Pakete befassen, die für den Server erforderlich sind.

Das PaketDie BeschreibungInstallationsbefehl
TFTP-ServerTFTP-Dateiübertragungsserversudo apt-get install tftpd-hpa
DHCP-ServerDHCP-IP-Adressausgabeserversudo apt-get install isc-dhcp-server
Apache ServerServer für den Zugriff auf Dateien über HTTPsudo apt-get install apache2

Nachdem Sie die angegebenen Befehle ausgeführt haben, werden alle erforderlichen Pakete erfolgreich installiert.

Schritt 3: Konfigurieren des DHCP-Servers

1. Öffnen Sie die DHCP-Konfigurationsdatei des Servers in einem Texteditor:

sudo nano /etc/dhcp/dhcpd.conf

2. Fügen Sie die folgende Konfiguration am Ende der Datei hinzu:

option domain-name "example.com";

option domain-name-servers ns1.example.com, ns2.example.com;

option routers 192.168.1.1;

range 192.168.1.100 192.168.1.200;

3. In dieser Konfiguration geben wir die folgenden Parameter an:

  • subnet - Adresse des Subnetzes;
  • netmask - Subnetzmaske;
  • option domain-name - domain-name;
  • option domain-name-servers - Liste der DNS-Server;
  • option routers - Die IP-Adresse des Gateways;
  • range - Der IP-Adressbereich, der an Kunden ausgegeben werden soll;
  • default-lease-time - Die Standardleasezeit;
  • max-lease-time - maximale Leasedauer;
  • next-server - Adresse des TFTP-Servers;
  • filename - Der Name der Datei, die vom Client über TFTP heruntergeladen werden soll.

4. Speichern und schließen Sie die Konfigurationsdatei.

5. Starten Sie den DHCP-Server neu:

sudo systemctl restart isc-dhcp-server

Die Konfiguration des DHCP-Servers für den PXE-Start ist jetzt abgeschlossen und die Clients können die erforderlichen Einstellungen für das Booten über das Netzwerk abrufen.

Schritt 4: Erstellen und Konfigurieren eines TFTP-Servers

Schritt 1: Installieren Sie einen TFTP-Server.

1. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:

sudo apt-get install tftpd-hpa

2. Während der Installation werden Sie möglicherweise aufgefordert, ein Passwort für TFTP einzugeben, das gewünschte Passwort einzugeben und mit der Installation fortzufahren.

Schritt 2: Konfigurieren Sie den TFTP-Server.

1. Öffnen Sie die TFTP-Konfigurationsdatei des Servers mithilfe des folgenden Befehls:

sudo nano /etc/default/tftpd-hpa

2. Suchen Sie die Zeile mit dem Parameter TFTP_OPTIONS und kommentieren Sie es, indem Sie das "#" -Zeichen entfernen.

3. Fügen Sie die folgenden Optionen hinzu:

Mit diesen Optionen können Sie Dateien sicher auf den TFTP-Server schreiben und erstellen.

4. Speichern Sie die Änderungen, und schließen Sie die Datei.

Schritt 3: Starten Sie den TFTP-Server neu.

1. Führen Sie den folgenden Befehl aus, um den TFTP-Server neu zu starten:

sudo systemctl restart tftpd-hpa

Jetzt wurde der TFTP-Server erfolgreich auf Ihrem Ubuntu-Server erstellt und konfiguriert.

Schritt 5: Erstellen und Konfigurieren eines NFS-Servers

Damit PXE-Serverclients über das Netzwerk auf den Dateispeicher zugreifen können, müssen Sie einen NFS-Server konfigurieren.

In Ubuntu installieren wir die erforderlichen Pakete:

sudo apt-get install nfs-kernel-server

Nach der Installation des Pakets bearbeiten Sie die Konfigurationsdatei:

sudo nano /etc/exports

Fügen Sie die folgenden Zeilen hinzu, um Clients den Zugriff auf das PXE-Verzeichnis des Servers zu ermöglichen:

/srv/tftp 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)

Speichern Sie die Änderungen, und starten Sie den NFS-Server neu:

sudo systemctl restart nfs-kernel-server

Jetzt ist der NFS-Server konfiguriert und kann mit dem PXE-Server verwendet werden. Im nächsten Schritt betrachten wir die Konfiguration des DHCP-Servers.

Schritt 6: Erstellen und Konfigurieren eines FTP-Servers

In Ubuntu können wir das vsftpd-Paket verwenden, um einen FTP-Server einzurichten. Zuerst installieren wir das Paket mit dem Befehl:

sudo apt-get install vsftpd

Nachdem Sie das Paket installiert haben, öffnen Sie die Einstellungsdatei mit dem Befehl:

sudo nano /etc/vsftpd.conf

Betrachten wir einige Einstellungen, die wir benötigen:

anonymous_enable=YES

(erlauben Sie anonymen Benutzern den Zugriff)

local_enable=YES

(zugriff für lokale Benutzer zulassen)

write_enable=YES

(dateien auf den Server schreiben lassen)

local_umask=022

(stellen Sie die Zugriffsberechtigungs-Maske für lokale Benutzer ein)

dirmessage_enable=YES

xferlog_enable=YES

(protokollierung von Dateiübertragungsvorgängen aktivieren)

connect_from_port_20=YES

(verbindung zu Port 20 für den aktiven Datenübertragungsmodus zulassen)

Speichern Sie die Konfigurationsdatei, und starten Sie den FTP-Server mit dem Befehl neu:

sudo service vsftpd restart

Der FTP-Server ist betriebsbereit. Jetzt können Sie Dateien mithilfe eines FTP-Clients auf einen PXE-Server kopieren.

Schritt 7: Erstellen und Konfigurieren eines HTTP-Servers

Verwenden Sie die folgenden Befehle, um einen HTTP-Server unter Ubuntu zu installieren und zu konfigurieren:

1. Apache HTTP Server installieren:

sudo apt update

sudo apt install apache2

2. Verzeichnis einrichten:

Öffnen Sie die Apache-Konfigurationsdatei:

sudo nano /etc/apache2/apache2.conf

Suchen Sie die Zeile DocumentRoot und ändere es zu:

Speichern Sie die Datei, und schließen Sie den Editor.

3. Zugriff auf ein Verzeichnis zulassen:

Öffnen Sie die Apache-Konfigurationsdatei:

sudo nano /etc/apache2/apache2.conf

Fügen Sie am Ende der Datei den folgenden Codeblock hinzu:

Options Indexes FollowSymLinks

Require all granted

Speichern Sie die Datei, und schließen Sie den Editor.

4. Überprüfen der Konfiguration:

Führen Sie den Befehl aus, um die Apache-Konfiguration zu überprüfen:

sudo apache2ctl configtest

5. Neustart des Apache-Servers:

Führen Sie den Befehl aus, um den Apache-Server neu zu starten:

sudo systemctl restart apache2

Jetzt ist Ihr HTTP-Server konfiguriert und einsatzbereit.

Schritt 8: Erstellen und Konfigurieren des PXE-Menüs

Nachdem Sie den PXE-Server unter Ubuntu erfolgreich konfiguriert haben, ist es an der Zeit, ein Menü zu erstellen und zu konfigurieren, das beim Booten über das Netzwerk auf dem Clientcomputer angezeigt wird.

Um ein PXE-Menü zu erstellen und zu konfigurieren, müssen Sie die Default-Konfigurationsdatei des TFTP-Servers bearbeiten. Öffnen Sie die Datei /var/lib/tftpboot/pxelinux.cfg/default mit einem Texteditor:

  1. sudo nano /var/lib/tftpboot/pxelinux.cfg/default

In der geöffneten Datei finden Sie ein Beispiel für ein einfaches PXE-Menü:

  • default menu.c32
  • prompt 0
  • timeout 100
  • menu title PXE Boot Menu
  • label local
  • menu label Boot from local disk
  • localboot 0

Dieses Beispielmenü ermöglicht es dem Benutzer, vom lokalen Laufwerk des Computers zu booten. In unserem Fall möchten wir das PXE-Menü konfigurieren, um das Linux-Betriebssystem zu installieren.

Dazu können wir verschiedene Linux-Distributionen wie Ubuntu, Fedora, CentOS und andere verwenden.

Im Folgenden finden Sie ein Beispiel für die Konfiguration des PXE-Menüs für die Installation von Ubuntu:

  • default menu.c32
  • prompt 0
  • timeout 100
  • menu title PXE Boot Menu
  • label ubuntu
  • menu label Install Ubuntu
  • kernel ubuntu-installer/amd64/linux
  • append vga=normal initrd=ubuntu-installer/amd64/initrd.gz --quiet

Im obigen Beispiel erstellen wir einen Menüpunkt mit dem Namen "Ubuntu installieren". Dann geben Sie den Pfad zum Linux-Kernel und den Ubuntu Installer-Initrd-Dateien an, die wir zuvor konfiguriert haben.

Nachdem Sie die Änderungen in der Default-Datei gespeichert haben, starten Sie den Clientcomputer neu und stellen Sie sicher, dass das PXE-Menü korrekt angezeigt wird und der ausgewählte Menüpunkt die Ubuntu-Installation startet.

Jetzt wissen Sie, wie Sie ein PXE-Menü auf Ubuntu erstellen und konfigurieren, um das Linux-Betriebssystem über das Netzwerk zu installieren.

Schritt 9: Laden und Testen des PXE-Clients

Nachdem Sie den PXE-Server unter Ubuntu erfolgreich eingerichtet haben, ist es an der Zeit, ihn zu testen. Dazu benötigen wir einen PXE-Client, der über das Netzwerk gestartet wird.

Stellen Sie zunächst sicher, dass der PXE-Client mit demselben Netzwerk wie der PXE-Server verbunden ist. Starten Sie dann den Clientcomputer neu und konfigurieren Sie das BIOS oder das UEFI so, dass das Startgerät auf dem PXE installiert ist. Dadurch kann der Clientcomputer nach Startdateien auf dem PXE-Server suchen.

Nachdem Sie den Client neu gestartet haben, sollten Sie den Startvorgang vom PXE-Server sehen. Auf dem Bildschirm sollten verschiedene Startmeldungen angezeigt werden, einschließlich Informationen zur DHCP-Anforderung und zum Booten des Kernels und des Dateisystems über TFTP.

Wenn der Startvorgang erfolgreich war, sollten Sie die grafische Benutzeroberfläche des Betriebssystems sehen, das Sie für die Installation über PXE konfiguriert haben. Wenn Sie einen Ubuntu-Server installiert haben, wird der Ubuntu-Installationsbildschirm angezeigt.

Jetzt können Sie alle Funktionen des PXE-Servers testen, z. B. die automatische Installation des Betriebssystems, Softwareupdates und andere Funktionen, die Sie in den vorherigen Schritten konfiguriert haben.

Beachten Sie, dass es beim Testen des PXE-Clients wichtig ist, sicherzustellen, dass das Netzwerk und der Server alle Anforderungen verarbeiten und bedienen können. Wenn Sie Probleme beim Herunterladen oder Installieren haben, überprüfen Sie die Netzwerkeinstellungen und die Konfiguration des PXE-Servers.

Schritt 10: Mögliche Probleme lösen

Das Problem: Der Fehler "TFTP open timeout" tritt auf, wenn versucht wird, den Clientcomputer über das Netzwerk zu starten.

Mögliche Lösung:

1. Überprüfen Sie, ob der TFTP-Server läuft und auf Port 69 hört. Führen Sie den folgenden Befehl aus:

sudo netstat -tulpn | grep :69

Wenn Port 69 nicht angehört wird, führen Sie den folgenden Befehl aus, um den Server zu starten:

sudo systemctl start tftpd-hpa

2. Stellen Sie sicher, dass sich die Dateien, die der Clientcomputer zu laden versucht, im richtigen TFTP-Verzeichnis des Servers befinden. Stellen Sie sicher, dass sie über die richtigen Zugriffsberechtigungen und die Zugehörigkeit zu dem Benutzer verfügen, unter dem der TFTP-Server ausgeführt wird.

Das Problem: Der Clientcomputer kann den DHCP-Server nicht finden.

Mögliche Lösung:

1. Überprüfen Sie, ob der DHCP-Server funktioniert und auf Port 67 lauscht. Führen Sie den folgenden Befehl aus:

sudo netstat -tulpn | grep :67

Wenn Port 67 nicht angehört wird, führen Sie den folgenden Befehl aus, um den Server zu starten:

sudo systemctl start isc-dhcp-server

2. Stellen Sie sicher, dass die DHCP-Konfigurationsdatei des Servers die richtigen Netzwerkeinstellungen enthält, z. B. das Subnetz und das Standardgateway. Überprüfen Sie, ob die Datei /etc/dhcp/dhcpd.conf entspricht Ihren Anforderungen.

Das Problem: Der PXE-Client kann das Betriebssystemabbild nicht laden.

Mögliche Lösung:

1. Stellen Sie sicher, dass das Betriebssystemabbild über den TFTP-Server heruntergeladen werden kann. Stellen Sie sicher, dass es sich im richtigen Verzeichnis befindet, das in der TFTP-Konfigurationsdatei angegeben ist.

2. Überprüfen Sie, ob die PXE-Konfigurationsdatei des Servers (/var/lib/tftpboot/pxelinux.cfg/default) enthält die richtigen Einstellungen zum Laden des Betriebssystemabbilds. Stellen Sie sicher, dass die Dateipfade und Kernel-Einstellungen korrekt sind.

3. Stellen Sie sicher, dass der Clientcomputer über die richtigen Netzwerkeinstellungen verfügt, z. B. über die IP-Adresse, das Subnetz und das Standardgateway. Stellen Sie sicher, dass sie mit den Einstellungen in der DHCP-Konfigurationsdatei des Servers übereinstimmen.