Sysresccd-manual-de Netzwerkstart per PXE |
History |
Contents |
Information
Das PXE-Verfahren erlaubt das Booten eines Computers mit der SystemRescueCd selbst wenn dieser nicht über Disketten/CD-Laufwerk oder USB-Schnittstellen verfügt. Es erlaubt das Starten des Systems über das Netzwerk. Dadurch ist das Beseitigen von Problemen schneller, wenn einmal ein PXE-Boot-Server eingerichtet wurde. Es ist auch nützlich, wenn man einen Computer ohne optisches Laufwerk (CD oder DVD) hat, oder einen entfernten Computer warten möchte, auf den gerade kein physischer Zugriff möglich ist. Im Augenblick unterstützt SystemRescueCd booten via PXE nur auf x86 Architekturen (PCs).
Die SystemRescueCd implementiert den Netzwerk Bootprozess mittels HTTP (sattt NFS), weil HTTP einfacher zu konfigurieren ist (nur ein Port für HTTP im Netzwerk, NFS zu konfigurieren ist speziell für Firewalls sehr komplex) und HTTP basiert auf dem zuverlässigen TCP-Protokoll, die Daten können nicht beschädigt werden.
Voraussetzungen
- Ein Computer der von CD/USB booten kann um als PXE-Server zu fungieren. Man kann eine einfache virtuelle VMWare-Maschine nehmen, wenn kein physischer PC für diese Aufgabe zur Verfügung steht.
- Einen Client-Computer mit mindestens 300MB Arbeitsspeicher und einer Netzwerkkarte, die PXE unterstützt
- SystemRescueCd Version 1.0.0 oder neuer für die Nutzung dieser Funktion, da die älteren Versionen Fehler hatten.
Wie der PXE Bootvorgang funktioniert
Der PXE Boot-Server
Der PXE Boot-Server besteht aus drei Teilen:
- DHCP Server der eine IP-Adresse an den Client zuweist
- TFTP Server der die ersten Boot-Dateien (Bootloader + Kernel) an den Client (ver)schickt
- HTTP Server der das Root-Dateisystem an den Client schickt (siehe: HTTP ist nicht mehr zwingend erforderlich (englisch))
Diese drei Teile können entweder auf einer einzelnen Maschine installiert sein, oder auf verschiedenen Computern. SystemRescueCd stellt einen vollständigen PXE Boot-Server "out of the box" zur Verfügung, der auf einem einzelnen Computer läuft. Der pxebootsrv Dienst verwaltet diese drei Dienste für Sie.
Der PXE Bootvorgang
Sie sollten verstehen, was abläuft, wenn Sie die SystemRescueCd über das Netzwerk booten. Sie benötigen dieses Wissen zur Fehlerbeseitigung bei auftretenden Problemen. Nachfolgend die wichtigsten Schritte innerhalb des PXE Bootprozesses:
- Wenn der Client versucht per PXE zu booten, sendet er zuerst eine DHCP-Anfrage in das Netzwerk, um eine IP-Adresse zu erhalten.
- Dann antwortet ein DHCP-Server mit einer neuen (unbenutzten) IP-Adresse sowie einigen spezifischen Optionen (DNS, Standard-Route) und der IP-Adresse des TFTP-Servers
- Der Client empfängt diese Antwort und akzepiert sie. Er verbindet sich zum TFTP-Server (dessen IP-Adresse er mit der Antwort des DHCP-Servers erhalten hat), um die Bootloader-Dateien zu erhalten.
- Der TFTP-Server sendet die Bootloader-Dateien (
pxelinux) und die Textdateien, welche vonpxelinuxauf dem Schirm angezeigt werden. - Der Client zeigt die pxelinux-Befehlszeile an und der Anwender kann die Boot-Optionen wählen. Dann fragt er beim TFTP-Server die benötigten Kernel- und initramfs-Dateien an, um das System zu booten
- Der TFTP-Server schickt die Kernel- und initramfs-Dateien (
rescuecd+rescuecd.igz) an den Client - Der Client bootet diesen Kernel und führt die
linuxrc-Skripte aus, die mit initramfs geliefert werden. - Während der Initialisierung führt der Kernel wegen des
ip=dhcpKernel Boot-Parameters nochmals eine DHCP-Anfrage aus. Tatsächlich "weiss" der Kernel nichts von der IP-Adresse, welche vom Client während der pxelinux-Phase verwendet wurde. - Der Client lädt die Datei
sysrcd.datvon einem HTTP-Server in den Arbeitsspeicher. Die IP-Adresse dieses Web-Servers wurde dem Client vom TFTP-Server zusammen mit den Kernel Bootoptionen geschickt. Die Dateisysrcd.datist recht gross (etwa 120MB) und beinhaltet alle Systeme der SystemRescueCd mit Ausnahme des Kernels. - Der Client hängt die Datei
sysrcd.datein und kann jetzt den Bootvorgang abschliessen. - Zu diesem Zeitpunkt verfügt der Client über alle Dateien (im Speicher) und benötigt keinen Boot-Server mehr
Der pxebootsrv-Dienst
SystemRescueCd erledigt das PXE-Server Setup mit einem einzelnen Dienst namens pxebootsrv. Dieser Dienst sorgt für die Vorbereitung der Server-Konfiguration und startet die drei in den PXE-Bootprozess involvierten Dienste. Wenn pxebootsrv mit /etc/init.d/pxebootsrv start gestartet wird, untersucht er seine Konfigurationseinstellungen unter /etc/conf.d/pxebootsrv, bereitet die Konfigurationsdateien der anderen Dienste und die Dateien in /tftpboot vor und startet diese Dienste anschliessend.
Der pxebootsrv-Dienst wurde geschrieben, um den PXE-Bootvorgang einfacher nutzbar zu machen. Der Anwender muss nur noch pxebootsrv konfigurieren, statt drei unterschiedliche Dienste. Sollten Sie mit dieser Vorgehensweise nicht glücklich werden, können selbstverständlich die Dienste DHCPD/TFTPD/THTTP auch direkt gestartet werden.
Aufsetzen eines Standard PXE Boot-Servers
Über
Dieser Abschnitt erklärt, wie ein SystemRescueCd PXE Boot-Server mit allen Diensten auf einer einzelnen Maschine aufgesetzt wird. Das bedeutet, der DHCP-, TFTP- und HTTP-Server laufen auf einer einzigen Maschine im Netzwerk. Wenn Sie die Dienste auf verschiedenen Rechnern haben wollen, lesen Sie bitte den Abschnitt "Aufsetzen eines benutzerdefinierten PXE Boot-Servers".
Übersicht
Man muss lediglich die SystemRescueCd von CD/USB/HDD starten und als PXE Boot-Server im Netzwerk konfigurieren. Die Einrichtung ist sehr einfach, da man die gewünschten Einstellungen einfach nur in eine Konfigurationsdatei schreiben und dann den pxebootsrv-Dienst starten muss. Danach kann man andere Computer mit mindesten 280 MB Arbeitsspeicher über das Netzwerk mit PXE starten.
Konfigurationsschritte für PXE auf dem Server
- Booten der SystemRescueCd von CD/USB/HDD auf einem Computer
- Netzwerk: Einrichtung und Programme mit
ipconfigundroute. Hier ein typisches Beispiel:ifconfig eth0 192.168.1.5/24route add default gw 192.168.1.254
- Bearbeiten Sie die PXE/Netzwerk Einstellungen in
/etc/conf.d/pxebootsrv - Starten Sie den Dienst mit
/etc/init.d/pxebootsrv start. Bei auftretenden Fehlern, prüfen Sie die Datei/var/log/messagesfür nähere Informationen. - Der Computer sollte für die Nutzung als PXE Boot-Server ausgelegt sein
Nachfolgend eine typische /etc/conf.d/pxebootsrv Konfigurationsdatei:
# ------------------------ CONFIGURATION -------------------------------
# By default the current systems acts as DHCP and TFTP and HTTP server
# If you want another machine of you network to act as one of those
# you will have to turn the appropriate option yo "no"
# Set to "yes" if you want this machine to act as a DHCP server
PXEBOOTSRV_DODHCPD="yes"
# Set to "yes" if you want this machine to act as a TFTP server
PXEBOOTSRV_DOTFTPD="yes"
# Set to "yes" if you want this machine to act as an HTTP server
PXEBOOTSRV_DOHTTPD="yes"
# Here is a typical PXE-Boot configuration --> update with your settings
PXEBOOTSRV_SUBNET="192.168.1.0"
PXEBOOTSRV_NETMASK="255.255.255.0"
PXEBOOTSRV_DEFROUTE="192.168.1.254"
PXEBOOTSRV_DNS="192.168.1.254"
PXEBOOTSRV_DHCPRANGE="192.168.1.100 192.168.1.150"
PXEBOOTSRV_LOCALIP="192.168.1.5"
# Keep these values to $PXEBOOTSRV_LOCALIP if the current computer
# acts as TFTP server and HTTP server as well as DHCP server
PXEBOOTSRV_TFTPSERVER="$PXEBOOTSRV_LOCALIP" # IP address of the TFTP server
PXEBOOTSRV_HTTPSERVER="http://$PXEBOOTSRV_LOCALIP/sysrcd.dat" # download URL
Aufsetzen eines benutzerdefinierten PXE Boot-Servers
Über
In diesem Abschnitt lernen wir, wie eine PXE Bootumgebung mit den drei Diensten (DHCP, TFTP, HTTP) auf verschiedenen Maschinen aufgesetzt wird. Lesen (und verstehen) Sie Wie der PXE Bootvorgang funktioniert bevor Sie einen PXE Boot-Server mit einer abweichenden Konfiguration aufsetzen.
Einrichtung des pxebootsrv Dienstes
Sie können den pxebootsrv Dienst an Ihre Bedürfnisse anpassen. Wenn Sie beispielsweise schon einen DHCP-Server im Netzwerk haben, brauchen Sie natürlich keinen weiteren. In diesem Fall kann SystemRescueCd pxebootsrv auch nur als TFTP/HTTP Server eingestellt werden. Sie müssen nur die PXEBOOTSRV_DODHCPD-Option in /etc/conf.d/pxebootsrv ausschalten:
# ------------------------ CONFIGURATION -------------------------------
# By default the current systems acts as DHCP and TFTP and HTTP server
# If you want another machine of you network to act as one of those
# you will have to turn the appropriate option yo "no"
# Set to "yes" if you want this machine to act as a DHCP server
PXEBOOTSRV_DODHCPD="no"
# Set to "yes" if you want this machine to act as a TFTP server
PXEBOOTSRV_DOTFTPD="yes"
# Set to "yes" if you want this machine to act as an HTTP server
PXEBOOTSRV_DOHTTPD="yes"
Wenn Sie einen anderen DHCP-Server benutzen, müssen Sie die Option next-server in den DHCP-Einstellungen ändern um sicherzustellen, daß der DCHP-Dienst die IP-Adresse des TFTP-Servers an den Client schickt. Nachfolgend ein Beispiel, wie diese option mit dem ISC DHCPD Server genutzt wird:
next-server 192.168.1.5; # IP addr of the TFTP server
Schritte zum Booten des Client mit PXE
- Stellen Sie sicher, daß der PXE Boot-Server auf Anfragen der Clients antworet
- Stellen Sie sicher, daß der Client mindestens über 280 MB Arbeitsspeicher verfügt
- Stellen Sie das BIOS des Clients darauf eine, vom Netzwerk via PXE zu booten
- Stellen Sie sicher, daß der Client sich im selben Netzwerksegment wie der Server befindet
- Booten Sie den Client und es sollte funktionieren
Reparieren Sie eine entfernte Maschine mit PXE
SystemRescueCd liefert eine Reihe von Boot-Optionen, welche das Netzwerk automatisch beim Booten einrichten. Es ist sehr bequem, die rootpass und Netzwerk Boot Optionen (englisch) zu nutzen, das bedeutet, Sie können SystemRescueCd aus der Ferne booten und sie benutzen um Remote-Server (englisch) mit ssh zu verwenden. Das ist sehr nützlich bei Servern eines Datacenters.
- dodhcp: Nutzen Sie
dodhcpwenn ein DHCP-Server im Netzwerk existiert und Sie dem System beim Booten eine dynamische IP zuweisen wollen. - ethx=ipaddr: Setzt eine feste IP-Adresse für alle im System gefundenen Ethernet-Schnittstellen. Wenn Sie beispielsweise
ethx=192.168.0.1bei einer Maschine mit zwei Netzwerkkarten verwenden, wird die IP-Adresse192.168.0.1aneth0undeth1zugewiesen. Es kann auch die Notationethx=10.0.0.1/24verwendet werden. - dns=ipaddr: Setzt die feste IP-Adresse des DNS-Nameservers der für die Namensauflösung verwendet werden soll. So bedeutet
dns=192.168.0.254beispielsweise, daß der Rechner unter192.168.0.254als DNS-Server genutzt werden soll. - gateway=ipaddr: Setzt die feste IP-Adresse der Standard-Route im Netzwerk. So bedeutet
gateway=192.168.0.254beispielsweise, daß der Computer über192.168.0.254mit anderen Computern ausserhalb des eigenen Netzwerkes kommunizieren soll. - rootpass=1234: Setzt das Root-Passwort des Systems mit der Live-CD auf
1234. Auf diese Weise kann man sich über das Netzwerk und ssh mit dem System der Livecd verbinden und1234als Root-Passwort angeben.
