9 Vorbereitung des Bootvorgangs für das Zielsystem #
Für die Installation von SUSE Linux Enterprise Server stehen zahlreiche Verfahren zur Auswahl. Abgesehen von der normalen Medieninstallation, die in Kapitel 6, Installation mit YaST beschrieben wird, können Sie aus mehreren netzwerkbasierten Ansätzen auswählen oder eine vollautomatische Installation von SUSE Linux Enterprise Server ausführen.
In den Beispielen fungiert NFS als Server für die Installationsdaten. Weitere Informationen zu FTP, SMB oder HTTP als Server finden Sie unter Kapitel 8, Einrichten des Servers, auf dem sich die Installationsquellen befinden.
In den folgenden Abschnitten wird das System, auf dem Ihre neue SUSE Linux Enterprise Server-Installation ausgeführt wird, als Zielsystem oder Installationsziel bezeichnet. Der Begriff Repository (früher „Installationsquelle“ genannt) wird für alle Quellen der Installationsdaten verwendet. Dazu gehören physische Medien, z. B. CD und DVD, sowie Netzwerkserver, die die Installationsdaten im Netzwerk verteilen.
In diesem Abschnitt werden die für komplexe Boot-Szenarien erforderlichen Konfigurationsschritte beschrieben. Er enthält zudem Konfigurationsbeispiele für DHCP, PXE-Boot, TFTP und Wake-on-LAN.
In den Beispielen wird vorausgesetzt, dass sich der DHCP-, TFTP- und NFS-Server auf demselben Computer mit der IP-Adresse 192.168.1.1
befinden. Alle Dienste können sich jedoch problemlos auf verschiedenen Computern befinden. Ändern Sie die IP-Adressen in jedem Fall entsprechend.
9.1 Einrichten eines DHCP-Servers #
Neben automatischer Adresszuweisung für Netzwerk-Clients kündigt der DHCP-Server die IP-Adresse des TFTP-Servers und der Datei an, die von den Installationsvorgängen auf dem Zielcomputer abgerufen werden müssen. Die zu ladende Datei ist abhängig vom Zielcomputer sowie von der Frage, ob Legacy-BIOS oder UEFI-Boot verwendet wird.
Melden Sie sich als
root
auf dem Computer an, der den DHCP-Server bereitstellt.Aktivieren Sie den DHCP-Server mit
systemctl enable dhcpd
.Fügen Sie einer Subnetzkonfiguration in der Konfigurationsdatei des DHCP-Servers, die sich unter
/etc/dhcpd.conf
befindet, folgende Zeilen hinzu:# The following lines are optional option domain-name "my.lab"; option domain-name-servers 192.168.1.1; option routers 192.168.1.1; option ntp-servers 192.168.1.1; ddns-update-style none; default-lease-time 3600; # The following lines are required option arch code 93 = unsigned integer 16; # RFC4578 subnet 192.168.1.0 netmask 255.255.255.0 { next-server 192.168.1.1; range 192.168.1.100 192.168.1.199; default-lease-time 3600; max-lease-time 3600; if option arch = 00:07 or option arch = 00:09 { filename "/EFI/x86/grub.efi"; } else if option arch = 00:0b { filename "/EFI/aarch64/bootaa64.efi"; } else { filename "/BIOS/x86/pxelinux.0"; } }
In diesem Konfigurationsbeispiel wird das Subnetz
192.168.1.0/24
verwendet, wobei sich der DHCP, der DNS und der Gateway auf dem Server mit der IP-Adresse192.168.1.1
befinden. Ändern Sie alle angegebenen IP-Adressen in jedem Fall gemäß dem Layout Ihres Netzwerks. Weitere Informationen zu den indhcpd.conf
verfügbaren Optionen finden Sie auf der man-Seitedhcpd.conf
.Starten Sie den DHCP-Server mit
systemctl restart dhcpd
neu.
Wenn Sie SSH für die Fernsteuerung einer PXE- und Wake-on-LAN-Installation verwenden möchten, geben Sie die IP-Adresse an, die der DHCP-Server dem Installationsziel zur Verfügung stellen soll. Ändern Sie hierzu die oben erwähnte DHCP-Konfiguration gemäß dem folgenden Beispiel:
group { host test { hardware ethernet MAC_ADDRESS; fixed-address IP_ADDRESS; } }
Die Host-Anweisung gibt den Hostnamen des Installationsziels an. Um den Hostnamen und die IP-Adresse an einen bestimmten Host zu binden, müssen Sie die Hardware-Adresse (MAC) des Systems kennen und angeben. Ersetzen Sie alle in diesem Beispiel verwendeten Variablen durch die in Ihrer Umgebung verwendeten Werte.
Nach dem Neustart weist der DHCP-Server dem angegebenen Host eine statische IP-Adresse zu, damit Sie über SSH eine Verbindung zum System herstellen können.
9.2 Einrichten eines TFTP-Servers #
Während einer SUSE-basierten Installation können Sie zur Einrichtung eines TFTP-Servers YaST verwenden. Alternativ können Sie diesen Server aber auch manuell einrichten. Der TFTP-Server übergibt das Boot-Image an das Zielsystem, sobald dieses gebootet ist und eine entsprechende Anforderung sendet.
9.2.1 Einrichten eines TFTP-Servers mit YaST #
Melden Sie sich als
root
-Benutzer an.Starten Sie
› ›Klicken Sie auf
, um sicherzustellen, dass der Server gestartet und in die Boot-Routine aufgenommen wird. Ihrerseits sind hierbei keine weiteren Aktionen erforderlich. tftpd wird zur Boot-Zeit von xinetd gestartet.Klicken Sie auf
, um den entsprechenden Port in der Firewall zu öffnen, die auf dem Computer aktiv ist. Diese Option ist nur verfügbar, wenn auf dem Server eine Firewall installiert ist.Klicken Sie auf
, um nach dem Verzeichnis mit dem Boot-Image zu suchen. Das Standardverzeichnis/srv/tftpboot
wird erstellt und automatisch ausgewählt.Klicken Sie auf
, um die Einstellungen zu übernehmen und den Server zu starten.
9.2.2 Manuelles Einrichten eines TFTP-Servers #
Melden Sie sich als
root
an und installieren Sie die Paketetftp
undxinetd
.Ändern Sie die Konfiguration von xinetd, die sich unter
/etc/xinetd.d/
befindet, um sicherzustellen, dass der TFTP-Server beim Booten gestartet wird:Erstellen Sie, sofern noch nicht vorhanden, in diesem Verzeichnis eine Datei namens
tftp
, indem Sietouch tftp
eingeben. Führen Sie anschließend folgenden Befehl aus:chmod 755 tftp
.Öffnen Sie die Datei
tftp
und fügen Sie die folgenden Zeilen hinzu:service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /srv/tftpboot disable = no }
Speichern Sie die Datei und starten Sie xinetd mit
systemctl restart xinetd
neu.
9.3 Installieren von Dateien auf einem TFTP-Server #
In den nachfolgenden Verfahren wird die Vorbereitung des Servers auf Zielcomputer mit UEFI und BIOS auf x86-Architekturen mit 32 und 64 Bit beschrieben. Die vorbereitete Struktur kann außerdem AArch64-Systeme aufnehmen.
9.3.1 Vorbereiten der Struktur #
Ersetzen Sie OS_VERSION und SP_VERSION durch die tatsächliche Betriebssystem- und Service-Pack-Version. Geben Sie also beispielsweise sles12
und sp5
an.
Legen Sie eine Struktur unter
/srv/tftpboot
an, die die verschiedenen Optionen unterstützen soll.root #
mkdir -p /srv/tftpboot/BIOS/x86root #
mkdir -p /srv/tftpboot/EFI/x86/bootroot #
mkdir -p /srv/tftpboot/EFI/aarch64/bootroot #
mkdir -p /srv/install/x86/OS_VERSION/SP_VERSION/cd1root #
mkdir -p /srv/install/aarch64/OS_VERSION/SP_VERSION/cd1Laden Sie die DVD-ISO-Images für SUSE Linux Enterprise Server 12 SP5 für alle benötigten Architekturen von der SUSE-Website herunter.
Hängen Sie die ISO-Dateien gemäß den Anweisungen in Abschnitt 8.6, „Verwenden von ISO-Images der Installationsmedien auf dem Server“ ein. Legen Sie einen Eintrag in
/etc/fstab
an, damit die Dateien nach dem Neustart zur Verfügung stehen. Für die Standardinstallation ist lediglich DVD 1 erforderlich.root #
mount -o loop PATH_TO_ISO /srv/install/ARCH/OS_VERSION/SP_VERSION/cd1/Wiederholen Sie diesen Schritt für alle gewünschten Architekturen und ersetzen Sie ARCH durch
x86
oderaarch64
und PATH_TO_ISO durch den Pfad zur entsprechenden ISO-Datei.Kopieren Sie die erforderlichen
kernel
-,initrd
- undmessage
-Dateien für x86 BIOS und UEFI-Boot in den entsprechenden Speicherort.root #
cd /srv/install/x86/OS_version/SP_version/cd1/boot/x86_64/loader/root #
cp -a linux initrd message /srv/tftpboot/BIOS/x86/Der Pfad
/srv/install
muss über NFS erreichbar sein. Weitere Informationen finden Sie in Abschnitt 8.2, „Manuelles Einrichten eines NFS-Repositorys“.
9.3.2 BIOS-Dateien für x86 #
Kopieren Sie
pxelinux.0
in den TFTP-Ordner und legen Sie einen Unterordner für die Konfigurationsdatei an.root #
cp /usr/share/syslinux/pxelinux.0 /srv/tftpboot/BIOS/x86/root #
mkdir /srv/tftpboot/BIOS/x86/pxelinux.cfgErstellen Sie die Datei
/srv/tftpboot/BIOS/x86/pxelinux.cfg/default
und fügen Sie die folgenden Zeilen hinzu:default install # hard disk label harddisk localboot -2 # install label install kernel linux append initrd=initrd install=nfs://192.168.1.1:/srv/install/x86/OS_version/SP_version/cd1 display message implicit 0 prompt 1 timeout 5
Bearbeiten Sie die Datei
/srv/tftpboot/BIOS/x86/message
so, dass diese die Änderungen an der soeben bearbeitetendefault
-Datei widergibt.Welcome to the Installer Environment! To start the installation enter 'install' and press <return>. Available boot options: harddisk - Boot from Hard Disk (this is default) install - Installation
9.3.3 UEFI-Dateien für x86 #
Ersetzen Sie OS_version und SP_version mit der tatsächlichen Betriebssystem- und Service Pack-Version. Geben Sie also beispielsweise sles12
und sp5
an.
Kopieren Sie alle erforderlichen grub2 -Dateien für den UEFI-Bootvorgang.
root #
cd /srv/install/x86/OS_version/SP_version/cd1/EFI/BOOTroot #
cp -a bootx64.efi grub.efi MokManager.efi /srv/tftpboot/EFI/x86/Kopieren Sie die Kernel- und initrd-Dateien in die Verzeichnisstruktur.
root #
cd /srv/install/x86/OS_version/SP_version/cd1/boot/x86_64/loader/root #
cp -a linux initrd /srv/tftpboot/EFI/x86/bootErstellen Sie die Datei
/srv/tftpboot/EFI/x86/grub.cfg
mit dem folgenden Mindestinhalt:set timeout=5 menuentry 'Install OS_version SP_version for x86_64' { linuxefi /EFI/x86/boot/linux \ install=nfs://192.168.1.1/srv/install/x86/OS_version/SP_version/cd1 initrdefi /EFI/x86/boot/initrd }
9.3.4 UEFI-Dateien für AArch64 #
Ersetzen Sie OS_version und SP_version mit der tatsächlichen Betriebssystem- und Service Pack-Version. Geben Sie also beispielsweise sles12
und sp5
an.
Dieser Vorgang läuft nahezu identisch wie in der x86_64-EFI-Umgebung ab. Kopieren Sie zunächst die erforderlichen Dateien für den UEFI-Bootvorgang einer grub2-efi-Umgebung.
root #
cd /srv/install/aarch64/OS_version/SP_version/cd1/EFI/BOOTroot #
cp -a bootaa64.efi /srv/tftpboot/EFI/aarch64/Kopieren Sie die Kernel- und initrd-Dateien in die Verzeichnisstruktur..
root #
cd /srv/install/aarch64/OS_version/SP_version/cd1/boot/aarch64root #
cp -a linux initrd /srv/tftpboot/EFI/aarch64/bootErstellen Sie nun die Datei
/srv/tftpboot/EFI/grub.cfg
und tragen Sie den folgenden Inhalt ein:menuentry 'Install OS_version SP_version' { linux /EFI/aarch64/boot/linux network=1 usessh=1 sshpassword="suse" \ install=nfs://192.168.1.1:/srv/install/aarch64/OS_version/SP_version/cd1 \ console=ttyAMA0,115200n8 initrd /EFI/aarch64/boot/initrd }
Diese Ergänzung der Konfigurationsdatei bietet einige weitere Optionen, mit denen die serielle Konsole aktiviert wird und die Installation über SSH erfolgen kann, was insbesondere bei Systemen ohne standardmäßige KVM-Konsolenschnittstelle von Nutzen ist. Sie werden feststellen, dass sie für eine bestimmte ARM-Plattform eingerichtet wurde.
9.4 PXELINUX-Konfigurationsoptionen #
Die hier aufgeführten Optionen sind eine Teilmenge der für die PXELINUX-Konfigurationsdatei verfügbaren Optionen.
APPEND OPTIONEN
Fügt der Kernel-Kommandozeile eine oder mehrere Optionen hinzu. Diese werden sowohl bei automatischen als auch bei manuellen Bootvorgängen hinzugefügt. Die Optionen werden an den Beginn der Kernel-Kommandozeile gesetzt und ermöglichen, dass explizit eingegebene Kernel-Optionen sie überschreiben können.
APPEND -
Es wird nichts angehängt.
APPEND
mit einem Bindestrich als Argument in einemLABEL
-Abschnitt kann zum Überschreiben einer globalenAPPEND
-Option verwendet werden.DEFAULT KERNEL_OPTIONEN...
Legt die standardmäßige Kernel-Kommandozeile fest. Wenn PXELINUX automatisch gebootet wird, agiert es, als wären die Einträge nach DEFAULT in der Booteingabeaufforderung eingegeben worden, außer, dass die Option für das automatische Booten (boot) automatisch hinzugefügt wird.
Wenn keine Konfigurationsdatei vorhanden oder der DEFAULT-Eintrag in der Konfigurationsdatei nicht definiert ist, wird standardmäßig der Kernel-Name „linux“ ohne Optionen verwendet.
IFAPPEND FLAG
Fügt eine bestimmte Option in die Kernel-Kommandozeile ein, abhängig vom Wert für FLAG. Die Option
IFAPPEND
ist nur unter PXELINUX verfügbar. Für FLAG ist ein Wert erforderlich, siehe Tabelle 9.1, „Generierte und hinzugefügte Optionen für Kernel-Kommandozeilen vonIFAPPEND
“:Tabelle 9.1: Generierte und hinzugefügte Optionen für Kernel-Kommandozeilen vonIFAPPEND
#Argument
Generierte Kernel-Kommandozeile/Beschreibung
1
ip=CLIENT_IP:BOOT_SERVER_IP:GW_IP:NETMASK
Die Platzhalter werden auf der Grundlage der Eingaben vom DHCP/BOOTP- oder PXE-Boot-Server ersetzt.
Diese Option ist kein Ersatz für das Ausführen eines DHCP-Clients im gebooteten System. Ohne regelmäßige Verlängerung läuft die vom PXE BIOS erworbene Lease ab, sodass die IP-Adresse zur erneuten Verwendung durch den DHCP-Server verfügbar wird.
2
BOOTIF=MAC_ADDRESS_OF_BOOT_INTERFACE
Mit dieser Option lässt sich eine Zeitüberschreitung vermeiden, wenn der Installationsserver die LAN-Schnittstellen einzeln nacheinander abfragt, bis er eine Antwort von einem DHCP-Server erhält. Ein initrd-Programm kann dabei ermitteln, von welcher Schnittstelle das System gebootet wurde. linuxrc liest diese Option aus und verwendet die erkannte Netzwerkschnittstelle.
4
SYSUUID=SYSTEM_UUID
Fügt UUIDs im Hexadezimalformat mit Kleinbuchstaben hinzu, siehe
/usr/share/doc/packages/syslinux/pxelinux.txt
LABEL KENNUNG KERNEL IMAGE APPEND OPTIONEN...
Gibt an, dass, wenn LABEL als zu bootender Kernel eingegeben wird, PXELINUX stattdessen IMAGE booten soll und die angegebenen
APPEND
-Optionen anstelle der im globalen Abschnitt der Datei (vor dem erstenLABEL
-Befehl) angegebenen Optionen verwendet werden sollen. Die Vorgabe für IMAGE ist dieselbe wie für KENNUNG und wenn keineAPPEND
-Optionen angegeben sind, wird standardmäßig der globale Eintrag verwendet (sofern vorhanden). Es sind bis zu 128LABEL
-Einträge zulässig.PXELINUX verwendet die folgende Syntax:
label MYLABEL kernel MYKERNEL append MYOPTIONS
Kennungen werden wie Dateinamen umgesetzt und müssen nach der Umsetzung (sogenanntes Mangling) eindeutig sein. Die beiden Kennungen „v2.6.30“ und „v2.6.31“ wären beispielsweise unter PXELINUX nicht unterscheidbar, da beide auf denselben DOS-Dateinamen umgesetzt würden.
Der Kernel muss kein Linux-Kernel sein. Auch ein Bootsektor oder eine COMBOOT-Datei ist möglich.
LOCALBOOT TYP
Wenn Sie unter PXELINUX
LOCALBOOT 0
an Stelle einerKERNEL
-Option angeben, bedeutet dies, dass diese bestimmte Kennung aufgerufen und die lokale Festplatte an Stelle eines Kernels gebootet wird.Argument
Beschreibung
0
Führt einen normalen Bootvorgang aus
4
Führt einen lokalen Bootvorgang mit dem noch im Arbeitsspeicher vorhandenen UNDI-Treiber (Universal Network Driver Interface) aus
5
Führt einen lokalen Bootvorgang mit dem gesamten PXE-Stack, einschließlich des UNDI-Treibers aus, der sich im Arbeitsspeicher befindet
Alle anderen Werte sind nicht definiert. Wenn Sie die Werte für die UNDI- oder PXE-Stacks nicht wissen, geben Sie
0
an.TIMEOUT ZEITLIMIT
Gibt in Einheiten von 1/10 Sekunde an, wie lange die Booteingabeaufforderung angezeigt werden soll, bevor der Bootvorgang automatisch gestartet wird. Das Zeitlimit wird aufgehoben, sobald der Benutzer eine Eingabe über die Tastatur vornimmt, da angenommen wird, dass der Benutzer die Eingabe des Kommandos abschließt. Mit einem Zeitlimit von Null wird das Zeitüberschreitungsoption deaktiviert (dies ist die Vorgabe). Der größtmögliche Wert für das Zeitlimit ist 35996 (etwas weniger als eine Stunde).
PROMPT flag_val
Wenn
flag_val
auf 0 gesetzt ist, wird die Booteingabeaufforderung nur angezeigt, wenn die Taste Umschalttaste oder Alt gedrückt wird oder die Feststelltaste oder die Taste Rollen gesetzt ist (dies ist die Standardeinstellung). Wennflag_val
1 ist, wird die Booteingabeaufforderung immer angezeigt.F2 FILENAME F1 FILENAME ..etc... F9 FILENAME F10 FILENAME
Zeigt die angegebene Datei auf dem Bildschirm an, wenn an der Booteingabeaufforderung eine Funktionstaste gedrückt wird. Mithilfe dieser Option kann auch die Preboot-Online-Hilfe implementiert werden (für die Kernel-Kommandozeilenoptionen). Aus Gründen der Kompabilität mit früheren Versionen kann F10 auch als
F0
verwendet werden. Beachten Sie, dass derzeit keine Möglichkeit besteht, Dateinamen an F11 und F12 zu binden.
9.5 Vorbereiten des Zielsystems für PXE-Boot #
Bereiten Sie das System-BIOS für PXE-Boot vor, indem Sie die PXE-Option in die BIOS-Boot-Reihenfolge aufnehmen.
Die PXE-Option darf im BIOS nicht vor der Boot-Option für die Festplatte stehen. Andernfalls würde dieses System versuchen, sich selbst bei jedem Booten neu zu installieren.
9.6 Vorbereiten des Zielsystems für Wake-on-LAN #
Wake-on-LAN (WOL) erfordert, dass die entsprechende BIOS-Option vor der Installation aktiviert wird. Außerdem müssen Sie sich die MAC-Adresse des Zielsystems notieren. Diese Daten sind für das Initiieren von Wake-on-LAN erforderlich.
9.7 Wake-on-LAN #
Mit Wake-on-LAN kann ein Computer über ein spezielles Netzwerkpaket, das die MAC-Adresse des Computers enthält, gestartet werden. Da jeder Computer einen eindeutigen MAC-Bezeichner hat, ist es nicht möglich, dass versehentlich ein falscher Computer gestartet wird.
Wenn sich der Steuercomputer nicht im selben Netzwerksegment wie das zu startende Installationsziel befindet, konfigurieren Sie die WOL-Anforderungen entweder so, dass sie als Multicasts verteilt werden, oder steuern Sie einen Computer in diesem Netzwerksegment per entfernten Zugriff so, dass er als Absender dieser Anforderungen agiert.
Benutzer von SUSE Linux Enterprise können zur einfachen Konfiguration von Wake-on-LAN ein YaST-Modul namens WOL verwenden. Die Benutzer anderer Betriebssysteme mit der Basis SUSE Linux können ein Kommandozeilenwerkzeug verwenden.
9.8 Wake-on-LAN mit YaST #
Melden Sie sich als
root
-Benutzer an.Starten Sie
› › .Klicken Sie auf
, und geben Sie den Hostnamen und die MAC-Adresse des Zielsystems ein.Wählen Sie zum Einschalten dieser Maschine den entsprechenden Eintrag und klicken Sie auf
(Aufwachen).
9.9 Booten von einer CD oder einem USB-Laufwerk statt über PXE #
Sie können auch von einer CD, einer DVD oder einem USB-Laufwerk mit einem kleinen System-Image statt über PXE booten. Die erforderlichen Dateien werden über NFS geladen, sobald der Kernel und initrd geladen wurden. Mit mksusecd
können Sie ein bootfähiges Image erstellen. Dies ist beispielsweise dann von Nutzen, wenn der Zielcomputer keine Unterstützung für den PXE-Bootvorgang bietet.
Nehmen Sie die Installation mit sudo zypper in mksusecd
vor. Mit dem folgenden Befehl erstellen Sie ein bootfähiges ISO-Image:
tux >
mksusecd
--create image.iso \ --net=nfs://192.168.1.1:/srv/install/ARCH/OS_VERSION/SP_VERSION/cd1 \ /srv/tftpboot/EFI/ARCH/boot
Ersetzen Sie ARCH durch den entsprechenden Ordner für die Zielsystemarchitektur. Ersetzen Sie außerdem OS_version und SP_version durch die Pfade in Abschnitt 9.3, „Installieren von Dateien auf einem TFTP-Server“.
Anstelle eines NFS-Servers für die Option --net
können Sie auch ein HTTP-Repository heranziehen, beispielsweise das openSUSE-Repository:
tux >
mksusecd
--create image.iso \ --net=http://download.opensuse.org/tumbleweed/repo/oss/suse \ /srv/tftpboot/EFI/ARCH/boot
Die Datei image.iso
kann auf DVD oder CD bzw. mit dd
auf einem USB-Stick gespeichert werden:
root #
dd
if=image.iso of=/dev/USB_DEVICE
Ersetzen Sie USB_DEVICE durch den Gerätenamen des USB-Sticks. Überprüfen Sie den Gerätenamen sorgfältig, damit nicht unbeabsichtigt Daten auf einem anderen Laufwerk zerstört werden.