Booten über das Netzwerk mit Linux – PXE

Dieser Artikel ist insofern mit dem vorhergehenden verwandt, als er sich mit dem Booten und der Installation von Linux über das Netzwerk befasst, sei es lokal oder nicht. Diesmal geht es um die Installation von Linux ohne optische Datenträger, Disketten oder andere Wechselmedien, nur über das LAN. Es wird erwartet, dass Sie mindestens zwei Computer in Ihrem Netzwerk haben, und der Client benötigt eine Netzwerkkarte und ein BIOS, das PXE verwenden kann. Wir werden Sie von Anfang bis Ende anleiten, aber einige grundlegende Netzwerk- und Linux-Konfigurationskenntnisse sowie die Verwendung eines Editors Ihrer Wahl sind erforderlich. Sie werden lernen, was PXE ist, wie man einen DHCP-Server konfiguriert, wie man einen TFTP-Server konfiguriert, damit der Client auf die Dateien zugreifen kann, und wie immer viele interessante Dinge.

PXE

PXE (ausgesprochen „pixie“) steht für Preboot eXecution Environment und wurde 1999 von Intel und Systemsoft eingeführt. Kurz gesagt handelt es sich um eine Funktion, über die die meisten modernen Netzwerkkarten und BIOS verfügen, die es dem System ermöglicht, vom LAN zu booten, genau wie von der Festplatte oder CD-ROM. Die PXE-Unterstützung muss in der Firmware der Netzwerkkarte vorhanden sein, die, wenn sie im BIOS entsprechend eingestellt ist, eine IP-Adresse vom PXE-Server erhält und die erforderlichen Boot-Images herunterlädt. Damit eine IP-Adresse verfügbar ist, muss der Server DHCP anbieten. Nachdem eine IP-Adresse geleast wurde, gibt der TFTP-Server (der die gleiche Box wie der DHCP-Server sein kann) die erforderlichen Dateien an den Client aus, damit dieser sie nach dem Laden booten kann.

Installation der notwendigen Werkzeuge und Einrichtung

Bevor wir beginnen, ist es wichtig zu verstehen, wie das Netzwerk, in dem wir dies getestet haben, aufgebaut ist. Der Server ist ein Debian-Rechner mit zwei Netzwerkkarten, und die Distribution, die wir installieren werden, ist ebenfalls Debian, nämlich Squeeze, amd64. Sie können jede andere Distribution verwenden, aber wahrscheinlich werden sich die Speicherorte einiger Konfigurationsdateien unterscheiden. Dieser Artikel befasst sich nicht damit, wie Sie die Softwarequellen für die eigentliche Installation einrichten werden. Wir werden Sie nur zu einem funktionierenden Debian-Installer führen und das war es dann auch schon. Sie werden viele Anleitungen finden, wie man ein lokales Debian-Repository einrichtet oder wie man ein Gateway unter Linux konfiguriert.

So, die Checkliste: wir brauchen einen DHCP-Server, einen TFTP-Server und die initrd und das Kernel-Image, das auf den Client übertragen werden soll. Wir haben einen eher ungewöhnlichen Ansatz gewählt, und Sie werden sehen, warum.

 Outside world ------> Router ------> Switch ------>(eth0) Server(eth1) ------> Client

Der Router vergibt also DHCP-Adressen (kleiner Heimrouter) in Form von 192.168.0.x . Der Server, der ebenfalls DHCP-Adressen vergibt, hat seinen Außenanschluss über eth0 und den Innenanschluss für den Client über eth1. Der Client hat die einzige Ethernet-Verbindung direkt zum PXE-Server, aber das bedeutet nicht, dass Sie den Server nicht als Gateway für netinstall konfigurieren oder dem Client eine weitere Netzwerkkarte für den Zugriff von außen hinzufügen können. Es gibt viele Möglichkeiten, wichtig ist nur das Booten über PXE. Beginnen wir mit der Installation des TFTP-Servers.

SUBSCRIBE NEWSLETTER & RSS
Abonnieren Sie RSS und NEWSLETTER und erhalten Sie aktuelle Linux-Nachrichten, Jobs, Karrieretipps und Tutorials.

TFTP

TFTP steht für Trivial File Transfer Protocol und ist de facto die „Sprache“, wenn es um die Übertragung von Dateien zur Verwendung mit PXE geht. Unter Debian installieren wir es wie folgt:

 # aptitude install tftpd-hpa

Jetzt müssen wir es richtig konfigurieren. In unserem Beispiel werden wir tftpd eigenständig laufen lassen, d.h. wir werden xinetd nicht verwenden. Die Konfiguration wird anders aussehen, wenn Sie xinetd verwenden wollen, und wir empfehlen das auch nicht. Jetzt müssen wir nur noch /etc/default/tftpd-hpa editieren:

#make sure these lines are presentRUN_DAEMON=yesTFTP_OPTIONS="-l -s /var/lib/tftpboot"

Stellen wir sicher, dass das obige Verzeichnis existiert und starten wir den Daemon:

 # mkdir -p /var/lib/tftpboot # /etc/init.d/tftpboot-hpa start

DHCP

Wir müssen dem Client eine Adresse anbieten, bevor wir mit der Installation über das Netzwerk beginnen, und das geschieht mit Hilfe des Dynamic Host Configuration Protocol. Der DHCP-Server hat einen Pool von Adressen, aus dem er auf Anfrage IPs anbietet. Man installiert den Serverteil mit

 # aptitude install dhcp3-server

Nun müssen wir die Netzwerkinformationen von eth1 einstellen, die sich in /etc/network/interfaces befinden:

allow-hotplug eth1iface eth1 inet staticaddress 192.168.1.2netmask 255.255.255.0

Starten Sie das Netzwerk neu und wir sind fast fertig:

 # ifdown eth1 # ifup eth1

PXE konfigurieren

Wir müssen nun die Datei konfigurieren, die der Client anfordert, eine Datei, in der wir ihm sagen, wie er findet, was er braucht. Legen wir also das Verzeichnis pxelinux.cfg an:

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

und erstellen eine Datei mit dem Namen „default“, die folgenden Inhalt hat:

Sie sehen einen Verweis auf die Datei boot.txt , also erstellen Sie sie in /var/lib/tftpboot und fügen Sie die Zeile „squeeze_amd64_install“ hinzu.

Nun kopieren Sie die notwendigen Dateien irgendwohin, wo sie vom Client gefunden werden können:

Jetzt können Sie, in der Hoffnung, dass alles in Ordnung ist, Ihren Client booten und seine BIOS-Einstellungen für den Netzwerkstart ändern. Bevor wir zum Schluss kommen, schulden wir Ihnen eine Erklärung für die von uns gewählte Netzwerkkonfiguration. Wir hätten es wahrscheinlich einfacher machen können, z. B. indem wir direkt die Verbindung unseres ISP nutzen und auch auf das Netzwerk (Internet) zugreifen können. Die Idee ist, dass der PXE-Server in unserem Szenario seine IP-Adresse (eth0) nicht über DHCP beziehen kann, da dieses Setup nicht funktioniert: Wenn Sie nicht das Zwei-NIC-Szenario auf dem Server verwenden, wie wir es getan haben, benötigen Sie eine Art feste IP-Adresse. Die Möglichkeiten wären also: Direkte ISP-Verbindung, Router so einstellen, dass er nur statische IPs vergibt, den PXE/DHCP/TFTP-Server auch als Gateway verwenden oder ein lokales Repository einrichten. Wir haben uns für Letzteres entschieden, weil es am besten zu unserer Topologie und unseren Zwecken passt und eigentlich nur die Einrichtung eines Webservers im LAN erfordert. Wenn wir alle Möglichkeiten, einschließlich iptables für ein Gateway oder Apache für einen HTTP-Server, erläutert hätten, wäre dieser Artikel sehr umfangreich geworden. Stattdessen haben wir es vorgezogen, uns an den Titel zu halten und Ihnen genau das zu geben: Netzwerkbooten mit Linux.

Denken Sie daran, dass dies nur ein Beispiel ist: wie bei NetbootCD können Sie so viele Distributionen hinzufügen, wie Sie wollen, vorausgesetzt, Sie haben den nötigen Platz auf dem Server.

Abschließende Gedanken

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.