SDB:Netzwerkinstallation von SuSE Linux über PXE-Boot
aus openSUSE, der freien Wissensdatenbank
Inhaltsverzeichnis |
Anliegen
Sie möchten den SuSE Linux Enterprise Server 8 oder die SuSE Linux Version 8.1/8.2 auf einen über PXE bootfähigen Rechner über das Netzwerk installieren.
Hintergrund
Das sogenannte Preboot Execution Environment (kurz PXE) ist ein Protokoll, welches das Booten eines Computers über das Netzwerk ermöglicht. Das PXE ist im ROM neuerer Netzwerkkarten gespeichert und wird, je nach konfigurierter Bootreihenfolge im BIOS des entsprechenden Rechners, nach dem Einschalten des Computers in den Speicher geladen und ausgeführt. Nach erfolgtem Start wird ein Bootmenü angezeigt, welches die jeweiligen verschiedenen Bootoptionen anzeigt.
Technische Hintergrundinformationen sowie die vollständige Spezifikation von PXE finden Sie hier: ftp://download.intel.com/labs/manage/wfm/download/pxespec.pdf
Voraussetzungen dafür sind:
- ein DHCP-Server für die automatische Vergabe einer IP-Adresse an den PXE-Client.
- ein nfs- oder ftp-Server für die Bereitstellung der Installationsquelle (Installationsrepository)
- ein tftp-Server für die Bereitstellung des Kernelbootimages zum Starten des PXE-Clients.
Diese drei Serverdienste können auf unterschiedlichen Rechnern konfiguriert werden. In dem hier beschriebenen Artikel werden diese jedoch auf einem Rechner zusammengefaßt. Ferner bezieht sich dieser Artikel nur auf die Bereitstellung des Installationsrepositorys über NFS - auf die Konfiguration eines ftp-Servers als Installationsquelle wird an dieser Stelle verzichtet. Es wird darüberhinaus nur auf die zusätzlich zu einer bestehenden DHCP-Server Konfiguration notwendigen Konfigurationsoptionen eingegangen. Alle hier beschriebenen Konfigurationen des "Installationsservers" beziehen sich auf eine Standardinstallation des SuSE Linux Enterprise Server 8, können jedoch auch mit SuSE Linux ab der Version 8.1 (und gegebenenfalls notwendigen Anpassungen) vollzogen werden.
Vorgehen
Konfiguration des DHCP Servers
Konfigurieren Sie Ihren DHCP Server entsprechend den Anforderungen Ihres
Netzwerkes. Wenn Sie abschließend getestet haben, daß die automatische
Adressvergabe für die Clients korrekt und zuverlässig funktioniert, editieren
Sie die Datei /etc/dhcpd.conf
und fügen die folgenden Zeilen am
Ende an:
group { # PXE related stuff ... # # "next-server" defines the tftp server which will serve the pxelinux image to the PXE clients. next-server 192.168.100.1; # # "filename" specifies the pxelinux image on the tftp server which will be served to the PXE clients. # The configured tftp server on 192.168.100.1 runs in a "change-root jail" to /srv/tftpboot filename "pxelinux.0"; host Zert120 { hardware ethernet 00:10:dc:95:d7:b7; } }
next-server
(hier192.168.100.1
) spezifiziert die IP-Adresse des tftp Servers, der sowohl den Bootloader pxelinux, als auch das zu bootende Bootimage und die initrd für die PXE-Clients bereitstellt.filename
gibt das zu bootende pxelinux Bootloader Image an, welches für die PXE-Clients bereitgestellt wird.host
spezifiziert den Hostnamen, sowie die Hardwareadresse der Netzwerkkarte eines PXE-Clients, für den die vorherigen beiden Optionen gültig sein sollen. An dieser Stelle müssen Sie die jeweilige Hardwareadresse (hier00:10:dc:95:d7:b7
) sowie den gewünschten Hostnamen des Clients (hierZert120
) eintragen. Die Angabe mehrerer hosts Zeilen ermöglicht an dieser Stelle das Booten von mehreren Clients von dem tftp Server.
Starten Sie abschließend den DHCP Server durch die Eingabe von rcdhcpd
restart
neu.
Eine ausführliche Erklärung der beschriebenen Optionen erhalten Sie in der
Manual Page von dhcpd.conf die Sie mit man 5 dhcpd.conf
aufrufen
können.
Einrichtung des Installationsrepositorys und Konfiguration des nfs-Servers
Zum Einrichten eines SuSE Linux Enterprise Server 8 Installationsrepositorys gehen Sie gemäß dem SDB Artikel SDB:NFS Quelle für SLES 8 Installation vor.
- Ein Installationsrepository für SuSE Linux 8.1 bzw. 8.2 wird wie folgt
eingerichtet:
- Kopieren Sie die Installations-CDs in ein Verzeichnis Ihrer Wahl (z.B.
/usr/local/dist/SuSE82
) - Wechseln Sie in das entsprechende Verzeichnis, und führen Sie folgende Befehlszeile aus:
- Kopieren Sie die Installations-CDs in ein Verzeichnis Ihrer Wahl (z.B.
perl -pi -e 's/InstPath:\t0[2|3|4|5|6|7]/InstPath:\t01/' common.pkd
Die Zeile:
/usr/local/dist/SLES8 192.168.100.0/255.255.255.0(ro,no_root_squash,sync)
in der Datei /etc/exports
exportiert nach einem Neustart des
NFS-Servers durch rcnfsserver restart
abschließend das
Installationsrepository (hier das Verzeichnis:
/usr/local/dist/SLES8
) für das Netzwerk 192.168.100.0. Dieser
Eintrag muß abhängig von Ihrer Netzwerkkonfiguration und dem Verzeichnis Ihres
Installationsrepositorys geändert werden.
Eine ausführliche Erklärung der für den nfs Server möglichen Optionen
erhalten Sie in der Manual Page von exports die Sie mit man 5
exports
aufrufen können.
Konfiguration des tftp Servers
- Erstellen Sie (falls es noch nicht existiert) das Verzeichnis
/srv/tftpboot
und/srv/tftpboot/pxelinux.cfg
- Wechseln Sie in das Verzeichnis Ihres Installationsrepositorys und kopieren Sie durch die Eingabe von:
cp -a boot/loader/linux boot/loader/initrd boot/loader/message boot/loader/memtest /srv/tftpboot die Dateienlinux initrd message memtest
in das Verzeichnis/srv/tftpboot
.
- Installieren Sie das Paket
syslinux
.- Ist auf dem Installationsserver der SuSE Linux Enterprise Server 8 installiert, so laden Sie sich das Paket von: ftp.suse.com/pub/suse/i386/8.2/suse/i586/syslinux-1.62-375.i586.rpm herunter, und installieren es mit:
rpm -Uhv syslinux-1.62-375.i586.rpm
-
- Ist auf dem Installationsserver eine SuSE Linux Version 8.1 oder 8.2 installiert, so installieren Sie das Paket mit YaST2 direkt von Ihren Installations-CDs.
- Kopieren Sie die Datei
/usr/share/syslinux/pxelinux.0
durch die Eingabe von:
cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot
in das Verzeichnis /srv/tftpboot
.
- Wechseln Sie in das Verzeichnis Ihres Installationsrepositorys und kopieren Sie durch die Eingabe von:
cp -a boot/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default die Dateiisolinux.cfg
nach/srv/tftpboot/pxelinux.cfg/default
- Editieren Sie die Datei
/srv/tftpboot/pxelinux.cfg/default
und entfernen Sie die Zeilen die mit:gfxboot
readinfo
framebuffer
beginnen.
- Fügen Sie in den
append
Zeilen der Labeldefault failsafe
undapic
die folgenden Einträge an:insmod=e100
Dieser Eintrag bewirkt, daß auf dem PXE-Client das Kernelmodul für eine Intel 100MBit/s Netzwerkkarte geladen wird. Dieser Eintrag ist abhängig von der Hardware Ihres Clients, und muß entsprechend geändert werden. Bei einer Broadcom GigaBit Netzwerkkarte würde dieser Eintraginsmod=bcm5700
lauten.netdevice=eth0
Dieser Eintrag spezifiziert das Netzwerkinterface des Clients, welches für die Netzwerkinstallation benutzt werden soll, und ist nur dann notwendig, wenn mehrere Netzwerkkarten in den Clients verbaut sind. Dieser Eintrag muß dann entsprechend angepaßt werden. Bei nur einer Netzwerkkarte kann dieser Eintrag komplett entfallen.install=nfs://192.168.100.1/usr/local/dist/SLES8
Dieser Eintrag legt den nfs Server und die Installationsquelle für die Installation der Clients fest, und muß gegebenenfalls angepaßt werden.- Eine, für die SuSE Linux Enterprise Server 8 - Netzwerkinstallation,
angepaßte
/srv/tftpboot/pxelinux.cfg/default
finden Sie hier:
default linux # default label linux kernel linux append initrd=initrd ramdisk_size=65536 insmod=e100 install=nfs://192.168.100.1/usr/local/dist/SLES8 # failsafe label failsafe kernel linux append initrd=initrd ramdisk_size=65536 ide=nodma apm=off acpi=off insmod=e100 install=nfs://192.168.100.1/usr/local/dist/SLES8 # apic label apic kernel linux append initrd=initrd ramdisk_size=65536 apic insmod=e100 install=nfs://192.168.100.1/usr/local/dist/SLES8 # manual label manual kernel linux append initrd=initrd ramdisk_size=65536 manual=1 # rescue label rescue kernel linux append initrd=initrd ramdisk_size=65536 rescue=1 # memory test label memtest kernel memtest # hard disk label harddisk kernel linux append SLX=0x202 implicit 0 display message prompt 1 timeout 100
- Editieren Sie die Datei
/etc/inetd.conf
und entfernen Sie das#
in der Zeile:
# tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
- Ändern Sie die Zeile wie folgt ab:
tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /srv/tftpboot -r blksize
und starten Sie den inetd durch die Eingabe von rcinetd restart
neu.
Wird nun ein PXE-Client im Netzwerk gebootet, so bekommt er vom DHCP Server
eine IP Adresse. Daraufhin fordert der Client einen PXE Bootloader
(pxelinux.0
) an, der auf dem Client zur Ausführung kommt. Dieser
wertet die IP Adresse des Clients aus, und wandelt diese in HEX um. Nun wird auf
dem Server (im Verzeichnis /srv/tftpboot/pxelinux.cfg
) eine
Konfigurationsdatei gesucht, die genauso heißt wie der eben ermittelte HEX Wert.
Wird diese nicht gefunden wird von diesem Wert eine Stelle abgezogen und erneut
gesucht. Wird keine passende Konfigurationsdatei gefunden, so wird am Ende die
Konfigurationsdatei default
gesucht und entsprechend ausgewertet.
In dem oben gezeigten Beispiel wird für alle PXE-Clients das Installationsmenu
des SuSE Linux Enterprise Servers 8 im Textmodus angezeigt. Durch diesen
Mechanismus ist es möglich für verschiedene Clients unterschiedliche
Bootkonfigurationen zu erstellen. Informationen dazu finden Sie in dem Paket
syslinux
unter
/usr/share/doc/packages/syslinux/pxelinux.doc
und
/usr/share/doc/packages/syslinux/syslinux.doc
. Die nach Auswahl
eines Menüeintrages startende Installation kann wie im Handbuch beschrieben
durchgeführt werden.
SDB:NFS Quelle für SLES 8 Installation
Keywords: Installation | Netzwerk | PXE | SLES | 81 | 82 | Enterprise | i386