Debian 9 (Stretch) über PXE Network Boot Server installieren

In diesem Tutorial werden wir Sie anleiten, wie Sie die neueste Version des Debian 9-Servers über einen PXE-Server mit internetbasierten HTTP-Spiegel-Quellen installieren, die von Debian-Archivspiegeln angeboten werden. Der DHCP-Server, den wir in diesem Tutorial zum Einrichten der PXE-Umgebung verwenden werden, ist der ISC-DHCP-Server und die netboot-Debian-Dateien werden im lokalen Netzwerk vom TFTPD-HPA-Server bereitgestellt. Die Installation eines Systems über PXE kann die Installationsgeschwindigkeit verbessern und im Falle der Bereitstellung mehrerer Debian-Installationen in kurzer Zeit oder in Fällen, in denen die Maschinen nicht mit einer CD/DVD-ROM-Einheit ausgestattet sind.

Anforderungen

  • Debian 9 wurde auf einem Bare-Metal-Rechner oder auf einem virtuellen Rechner installiert.
  • Eine Netzwerkschnittstelle, die mit einer statischen IP-Adresse für das Netzwerksegment konfiguriert ist, die zur dynamischen Zuweisung von IP-Adressen und anderen zugehörigen DHCP- und PXE-Einstellungen verwendet wird.
  • Ein lokales oder ein Remote-Konto mit Root-Rechten für den Debian-Server oder direkter Zugriff auf das Root-Konto über die Serverkonsole oder Remote-Zugriff über SSH.
  • Eine Internetverbindung, die für die Installation von Debian über das Netzwerk benötigt wird.

Erstkonfiguration

Im ersten Schritt müssen Sie sicherstellen, dass das Debian-System, das wir zur Installation neuer Server verwenden werden, über die Netzwerkschnittstelle verfügt, die zur Verbindung mit einem DHCP-Server verwendet wird, der mit einer statischen IP-Adresse konfiguriert ist.

Um Ihre Netzwerkschnittstellenkarte manuell zu konfigurieren, öffnen Sie die Datei Netzwerk-Schnittstellen und bearbeiten Sie die folgenden Zeilen mit Ihrem bevorzugten Texteditor, z.B. Nano. Ersetzen Sie die nachfolgend beschriebenen IP-Einstellungszeilen, um Ihre eigenen Netzwerkkonfigurationen anzupassen.

sudo nano /etc/network/interfaces

Schnittstellen Dateiauszug:

auto ens33
iface ens33 inet static
  address 192.168.1.102
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.1
  dns-nameservers 192.168.1.2 8.8.4.4
  dns-search debian.local

Debian-Netzwerk-Konfiguration

Nachdem Sie die Datei mit den Netzwerkschnittstellen bearbeitet haben, speichern und schließen Sie die Datei und öffnen Sie die Netzwerkschnittstelle, dann wieder nach oben, um die Einstellungen anzuwenden, indem Sie die folgenden Befehle ausführen. Unter der Annahme, dass Ihre Netzwerkschnittstellenkarte den Namen ens33 trägt, führen Sie die folgenden Befehle aus, um das NIC zu deaktivieren und zu aktivieren.

ifdown ens33
ifup ens33

Um zu überprüfen, ob die neue IP-Adresse für die Netzwerkschnittstelle konfiguriert wurde, geben Sie den folgenden Befehl ein.

ip a

Netzwerkkonfiguration angewendet

Manchmal werden die IP-Einstellungen nicht übernommen, indem der Netzwerkdämon einfach neu gestartet oder die Schnittstelle deaktiviert und aktiviert wird. In diesem Fall sollten Sie das System mit dem folgenden Befehl neu starten.

init 6

Oder

systemctl reboot

Sie sollten auch ein vollständiges System-Update durchführen, indem Sie die folgenden Befehle ausführen:

apt update
apt upgrade

Führen Sie im nächsten Schritt den folgenden Befehl aus, um einige erforderliche Dienstprogramme zu installieren, die zur weiteren Verwaltung Ihres Systems von der Befehlszeile aus verwendet werden.

apt install wget bash-completion unzip

Installation und Konfiguration des ISC-DHCP-Servers

Um einen DHCP-Server und eine PXE-Konfiguration einzurichten, melden Sie sich mit dem Root-Konto oder einem Konto mit Root-Rechten am System an und installieren Sie Folgendes isc-dhcp-server Paket, das vom Debian 9-Repository bereitgestellt wird, indem der folgende Befehl ausgeführt wird.

apt install isc-dhcp-server

Sichern Sie nun die Hauptkonfigurationsdatei des ISC-DHCP-Servers und bearbeiten Sie die Konfigurationsdatei des dhcpc-Servers, um die folgenden Einstellungen zu erhalten.

mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
nano /etc/dhcp/dhcpd.conf

dhcpcd.conf Dateiauszug:

ddns-update-style none;
       option option-128 code 128 = string;
       option option-129 code 129 = text;
authoritative;
log-facility local7;
option arch code 93 = unsigned integer 16;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.100;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option ntp-servers 192.168.1.102;
option time-servers 192.168.1.102;

option domain-name „debian.local“;
option domain-name-servers 192.168.1.1, 192.168.1.2;
allow booting;
allow bootp;
if option arch = 00:07 or option arch = 00:09 {
filename „bootnetx64.efi“;
} else {
filename „pxelinux.0“;
}
next-server 192.168.1.102;

#default lease 4H, max lease 8H
default-lease-time 14400;
max-lease-time 28800;

}

host nas {
hardware ethernet 00:17:a4:f6:b2:2e;
fixed-address 192.168.1.105;
}

Ersetzen Sie in der obigen Konfigurationsdatei die folgenden Zeilen entsprechend.

subnet {..
range 192.168.1.50 192.168.1.100;

So definieren Sie Ihren eigenen Netzwerkbereich für DHCP, um diesem Netzwerksegment IPs zuzuweisen.

optionale Router = richten Sie Ihre Gateway-IP ein.

Option Broadcast-Adresse = Richten Sie Ihre Netzwerk-Broadcast-Adresse ein.

option subnet-mask = Setup Ihrer Netzwerk-Subnetzmaske Adresse

option ntp-server

Option Zeitserver = Richten Sie die IP-Adresse Ihres NTP-Servers im Netzwerk ein.

Option Domain-Name = Richten Sie Ihren Netzwerkdomänennamen ein, falls vorhanden.

Option Domain-Namensserver = Einrichten der IP-Adressen Ihres Netzwerk-DNS-Servers

wenn Option Bogen = 00:07 oder Option Bogen = 00:09 = Wenn es sich bei dem Endgerät um eine UEFI-basierte Maschine handelt, starten Sie das Gerät mit dem Befehl bootnetx64.efi Datei oder Boot-Up auf allen anderen Maschinen, die nicht UEFI-basiert sind, mit der Option pxelinux.0 Datei. Diese Maschinen sind in der Regel ältere BIOS-Systeme.

nächster Server 192.168.1.102 = Dies ist die IP-Adresse des TFTP-Servers, auf dem die Datei pxelinux.0 oder bootnetx64.efi finden Sie in Ihrem Netzwerk. In diesem Fall befindet sich der TFTP-Server auf demselben Rechner.

Standardmietzeit = Standardzeit in Sekunden, die einer IP-Adresse gewährt wird, bevor sie abläuft.

maximale Mietzeit = maximale Zeit in Sekunden, die einer IP-Adresse gewährt wird, bevor sie abläuft.

host nas {
  hardware ethernet 00:17:a4:f6:b2:2e;
  fixed-address 192.168.1.105;
}

Auf diese Weise wird eine statische IP-Adresse im DHCP-Server deklariert. Das Gerät mit der MAC-Adresse, die definiert ist durch Hardware-Ethernet Anweisung erhält immer die gleiche IP-Adresse. Der angegebene Hostname hat keine Bedeutung. Sie können jede beliebige Zeichenkette für den Hostnamen verwenden.

Dann öffnen Sie isc-dhcp-server Datei in der Datei/etc/default/default/ Verzeichnis zur Bearbeitung, navigieren Sie zum Ende der Datei und fügen Sie Ihre Netzwerkschnittstellenkarte, die mit einer statischen IP-Adresse konfiguriert ist, zur IPv4-Schnittstellenleitung hinzu, wie im folgenden Beispiel beschrieben. Achten Sie darauf, dass Sie den entsprechenden Namen für die Netzwerkkarte angeben. Verwendung ip oder ifconfig Befehle, um Ihre Maschinennetzwerk-Schnittstellen aufzulisten und den richtigen Namen zu finden.

nano /etc/default/isc-dhcp-server

isc-dhcp-server Standard-Dateiauszug:

INTERFACESv4=”ens33”

Name der Netzwerkschnittstelle festlegen

Starten Sie schließlich den DHCP-Daemon neu, um die Änderungen zu übernehmen. Überprüfen Sie den DHCP-Dienststatus, indem Sie den folgenden Befehl ausführen, um zu überprüfen, ob der Dienst gestartet wurde.

systemctl restart isc-dhcp-server.service
systemctl status isc-dhcp-server.service

DHCP-Dienst neu starten

Führen Sie auch ss oder netstat Befehl, um alle offenen Sockets vom DHCP-Server aufzulisten.

netstat –tulpn
ss –tulpn

Netzwerkstatus

Wenn netstat Dienstprogramm nicht in Ihrem System installiert ist, geben Sie den folgenden Befehl aus, um es zu installieren.

apt install net-tools

TFTP-Server installieren

Um die Netboot-Dateien bereitzustellen, die von den Clients benötigt werden, um Debian über PXE und TFTP aus der Ferne zu starten, müssen Sie auch einen TFTP-Server in Ihrem System installieren. Einer der gängigsten und sichersten TFTP-Server, die für LANs verfügbar sind, ist der tftpd-hpa Server. Die TFTP-HPA-Pakete können aus den offiziellen Repositories von Debian 9 installiert werden. Führen Sie den folgenden Befehl aus, um den tftpd-hpa-Server unter Debian 9 zu installieren.

apt install tftpd-hpa

Nachdem das Paket installiert wurde, öffnen Sie die Standardkonfigurationsdatei TFTPD-HPA und stellen Sie sicher, dass die Datei den folgenden Inhalt hat.

nano /etc/default/tftpd-hpa

tftpd-hpa Dateiauszug:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

TFTP-Server-Konfiguration

Wenn die Zeile TFTP_OPTIONEN den folgenden Inhalt hat, stellen Sie sicher, dass Sie die Datei –create Flag, um den TFTP-Server zu sichern.

TFTP_OPTIONS="--secure --create"

Die erstellen Flag erlaubt es entfernten Clients, Dateien auf den tftp-Server hochzuladen. Diese Option ist gefährlich, da beliebige Benutzer Dateien aus dem Root-Pfad des TFTP-Servers hochladen oder löschen können.

Schließlich aktivieren Sie den Dienst systemweit und starten Sie den TFTP-Server und überprüfen Sie den Status des Tftp-Daemons, indem Sie die folgende Befehlsreihe ausführen:

systemctl enable tftpd-hpa
systemctl start tftpd-hpa
systemctl status tftpd-hpa

TFTP-Server neu starten

Sie sollten auch Folgendes ausführen netstat oder ss Befehl, um alle offenen Netzwerk-Sockets im Abhörzustand in Ihrem System aufzulisten. Die folgenden UDP-Ports, die von DHCP- und TFTP-Servern benötigt werden, sollten in Ihrem Netzwerkstapel geöffnet sein: 67 und 69. Sie sollten diese Ports in Ihrer Firewall öffnen, indem Sie die folgenden Befehle ausführen:

ufw allow 67/udp
ufw allow 69/udp

Wenn du mit iptables rohe Regeln zur Verwaltung der Firewall-Richtlinien in Ihrem Debian-Server, fügen Sie die folgenden Regeln hinzu, damit die Ports 67 und 69 UDP-Eingangsverkehr die Firewall passieren kann, so dass Clients auf die DHCP- und TFTP-Server zugreifen können.

apt-get install iptables-persistent
iptables -A INPUT -p udp --dport 67 -j ACCEPT
iptables -A INPUT -p udp --dport 69 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

Im nächsten Schritt installieren wir die Syslinux-Bootloader-Dienstprogramme, indem wir den folgenden Befehl ausführen.

apt install syslinux-utils syslinux

Debian 9 Netboot-Dateien bereitstellen

Als nächstes gehen Sie zur Debian-Netzwerkinstallations-Webseite unter der folgenden Adresse https://www.debian.org/distrib/netinst und laden Sie die neueste Version von Debian netboot archive tarball mit dem Kommandozeilenprogramm wget herunter.

wget http://ftp.nl.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz

Debian-Netboot-Image herunterladen

Nachdem Debian netinstall tarball heruntergeladen wurde, extrahieren Sie den Archivinhalt direkt in den TFTP-Rootpfad, indem Sie den folgenden Befehl ausführen.

tar xfz netboot.tar.gz -C /srv/tftp/

Kopieren Sie auch die Memdisk-Datei des Syslinux-Pakets in den TFTP-Stammpfad und listen Sie den Inhalt des TFTP-Verzeichnisses auf, indem Sie die folgenden Befehle ausführen. Das Verzeichnis /srv/tftp sollte den Inhalt haben, wie im folgenden Screenshot dargestellt.

cp /usr/lib/syslinux/memdisk /srv/tftp/
ls /srv/tftp/

Memdisk-Image kopieren

Als nächstes erstellen Sie einen Symlink für die UEFI-Bootloader-Datei, die vom Debian-Netinstallationspaket bereitgestellt wird, zum TFTP-Stammverzeichnis, indem Sie den folgenden Befehl ausführen. Führen Sie auch eine lange Liste des TFTP-Verzeichnisses durch, um zu sehen, ob der Softlink korrekt auf die UEFI-Netboot-Datei zeigt.

ln -s /srv/tftp/debian-installer/amd64/bootnetx64.efi /srv/tftp/
ls -l /srv/tftp/

Dateiliste

Der PXE-Server liest und führt Konfigurationsdateien aus, die sich in der Datei pxelinux.cfg Verzeichnis aus dem TFTP-Stammpfad in dieser Reihenfolge: GUID-Dateien, MAC-Dateien und Standarddateien. Das Verzeichnis pxelinux.cfg wurde bereits erstellt und mit der erforderlichen PXE-Standardkonfigurationsdatei gefüllt, da wir zuvor die erforderlichen Netboot-Dateien aus dem Debian-Netinstallarchiv in das Verzeichnis /srv/tftp extrahiert haben. Es ist nicht notwendig, die PXE-Standardkonfigurationsdatei aus dem Verzeichnis pxelinux.cfg weiter zu ändern. Die Datei, die tatsächlich das anfängliche Bootmenü für Debian steuert, trägt jedoch den Namen txt.cfg und befindet sich in /srv/tftp/debian-installer/amd64/boot-screens/ Verzeichnis. Die Standard-Pxe-Konfigurationsdatei von pxelinux.cfg Verzeichnis ist eigentlich ein Softlink, der auf die Datei txt.cfg zeigt. Um andere Optionen zu ändern oder hinzuzufügen, die während des Netzwerk-Boot-Prozesses an den Kernel übergeben werden sollen, oder um andere Einträge hinzuzufügen oder andere Linux-Distributionen über den PXE-Server zu booten, sollten Sie die Standard-Konfigurationsdatei txt.cfg PXE mit dem folgenden Befehl öffnen und die entsprechenden Änderungen vornehmen.

 nano /srv/tftp/debian-installer/amd64/boot-screens/txt.cfg

txt.cfg Dateiauszug:

label install
menu label ^Install
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet

Falls Sie den Debian-Rettungsmodus über PXE verwenden möchten, fügen Sie einen Eintrag zu dieser Datei mit den folgenden Konfigurationen hinzu.

label rescue
menu label ^Rescue mode
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz rescue/enable=true --- quiet

Um die Einträge hinzuzufügen, die erforderlich sind, um Debian im Expertenmodus über das Netzwerk zu booten oder den automatischen Installationsmodus zu verwenden, fügen Sie die weiteren Konfigurationen der Datei txt.cfg hinzu, wie in den folgenden Auszügen gezeigt.

Fachkundige Installation:

label expert
menu label ^Expert install
kernel debian-installer/amd64/linux
append priority=low vga=788 initrd=debian-installer/amd64/initrd.gz --- 
include debian-installer/amd64/boot-screens/rqtxt.cfg

Automatisierte Installation:

label auto
menu label ^Automated install
kernel debian-installer/amd64/linux
append auto=true priority=critical vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet 

Wenn Sie sich den Inhalt dieser Datei ansehen, werden Sie auch feststellen, dass die Datei Kernel und initrd.gz Bilder, die nach dem ersten PXE-Menü über das TFTP-Netzwerkprotokoll in den RAM-Speicher des Kunden geladen werden, befinden sich im Verzeichnis /srv/tftp/debian-installer/amd64/ Verzeichnis. Sie können nur diese beiden Dateien für zukünftige Updates des Debian-Kernels und der initrd.gz ändern.

Das ist alles! Jetzt haben Sie die Möglichkeit, einen Client-Rechner über das Netzwerk zu starten, alle Einträge zu verwenden, die normalerweise beim Booten von Debian über das DVD-Image angezeigt werden und Debian 9 über einen PXE-Server zu installieren.

Um DHCP-Protokollnachrichten anzuzeigen, die zwischen den Clients und dem Server in Echtzeit ausgetauscht werden, verwenden Sie die Option Schwanz Befehl gegen die System-Syslog-Datei. Der DHCP-Server verwirft alle seine Protokollmeldungen in der Syslog-Datei. TFTP-Server-Logmeldungen können über die Datei daemon.log beobachtet werden. Die folgenden Screenshots zeigen einen Auszug aus den Protokollmeldungen, die sowohl von DHCP- als auch von TFTP-Servern ausgegeben werden.

tailf /var/log/syslog
tailf /var/log/daemon.log

Debian DHCPD-Protokolldatei

Daemon-Protokolldatei

Sie können auch den folgenden Befehl ausführen, um die vom TFTP-Server erzeugten Protokollnachrichten anzuzeigen.

journalctl -fu tftpd-hpa

Um erweiterte Informationen über die Leasingverträge, die der DHCP-Server seinen Clients gewährt, offenzulegen, zeigen Sie den Inhalt der Datei dhcpd.leases Datei mit dem Befehl cat, wie im folgenden Beispiel gezeigt.

cat /var/lib/dhcp/dhcpd.leases

dhcpd.leases

Das ist alles! Sie haben einen PXE-Server erfolgreich in Ihrem Netzwerk eingesetzt. Sie können nun mit der Installation von Debian über das Netzwerk beginnen, indem Sie den Client-Rechner anweisen, über PXE zu booten. Sie können einen Client-Computer im Netzwerk booten, indem Sie während der Initialisierung von POST eine spezielle Funktionstaste drücken. Lesen Sie die Dokumentation des Herstellers Ihrer Maschinen-Motherboards, um den richtigen Netboot-Schlüssel herauszufinden.

Der Prozess der Installation von Debian über das Netzwerk ist sehr ähnlich (nur wenige kleine Unterschiede) mit dem Prozess der Installation des Systems über ein DVD-ISO-Image oder über einen bootfähigen USB-Stick.

Das könnte dich auch interessieren …