Konfiguration des Bootloaders

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:AMD64/Installation/Bootloader and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎čeština • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
AMD64 Handbuch
Installation
Über die Installation
Auswahl des Mediums
Konfiguration des Netzwerks
Vorbereiten der Festplatte(n)
Installation des Stage Archivs
Installation des Basissystems
Konfiguration des Kernels
Konfiguration des Systems
Installation der Tools
Konfiguration des Bootloaders
Abschluss
Arbeiten mit Gentoo
Portage-Einführung
USE-Flags
Portage-Features
Initskript-System
Umgebungsvariablen
Arbeiten mit Portage
Dateien und Verzeichnisse
Variablen
Mischen von Softwarezweigen
Zusätzliche Tools
Eigener Portage-Tree
Erweiterte Portage-Features
Netzwerk-Konfiguration
Zu Beginn
Fortgeschrittene Konfiguration
Modulare Vernetzung
Drahtlose Netzwerke
Funktionalität hinzufügen
Dynamisches Management



Einen Bootloader auswählen

Nachdem der Linux Kernel konfiguriert ist, die System Tools installiert sind und die wichtigsten System Konfigurationsdateien angepasst sind, ist es nun an der Zeit, den letzten wichtigen Teil eines Linux-Systems zu installieren: den Bootloader.

Der Bootloader ist beim Booten dafür zuständig, den Linux Kernel zu starten. Ohne ihn würde das System nach dem Druck auf den Power-Knopf nicht wissen, wie es weiter vorgehen soll.

Wir zeigen für die amd64 Architektur, wie man entweder GRUB2 oder LILO für BIOS basierte Systeme, oder GRUB2 oder efibootmgr für UEFI Systeme konfiguriert.

In diesem Abschnitt des Handbuchs wird unterschieden zwischen dem "Emerge" eines Bootloader-Pakets und dem "Installieren" des Bootloaders auf die System-Festplatte. Der Ausdruck "emerge" wird verwendet, wenn Portage aufgerufen wird, um eine Software auf dem System verfügbar zu machen. Der Ausdruck "installieren" wird verwendet, wenn der Bootloader Dateien in spezielle Bereiche der System-Festplatte kopiert oder dort Daten verändert, um den Bootloader so zu aktivieren, dass er beim nächsten Systemstart gestartet wird.

Standard: GRUB2

Früher verwendete Gentoo Linux GRUB 0.9x als Bootloader. Diese Version wird nicht mehr aktiv gepflegt und wird heute als GRUB Legacy bezeichnet. Heutzutage kann unter Gentoo Linux GRUB 2.x (oder auch: GRUB2) als Bootloader verwendet werden. Weitere Informationen über GRUB Legacy finden Sie in dem GRUB (Legacy) Artikel im Gentoo Wiki.

Die Mehrzahl der Gentoo Linux Systeme verwendet heutzutage GRUB2 als Bootloader. GRUB2 (Paket sys-boot/grub) ist der direkte Nachfolger von GRUB Legacy. Ohne weitere Konfiguration unterstützt GRUB2 ältere BIOS ("pc") Systeme. Mit zusätzlicher Konfiguration unterstützt GRUB2 mehr als ein halbes Dutzend anderer Plattformen. Details finden Sie in dem Abschnitt Prerequisites section des GRUB2 Artikels im Gentoo Wiki.

Emerge

Wenn ein älteres BIOS System verwendet wird, das nur MBR Partitions-Tabellen unterstützt, sind keine Konfigurationsarbeiten erforderlich, um GRUB zu "emergen":

root #emerge --ask --verbose sys-boot/grub:2

Für UEFI Systeme: die Ausführung des obigen Kommandos zeigt vor dem "emerge" die aktivierten GRUB_PLATFORMS Werte an. Wenn UEFI Systeme verwendet werden, müssen Anwender sicherstellen, dass GRUB_PLATFORMS="efi-64" aktiviert ist (was standardmäßig der Fall sein sollte). Wenn es nicht der Fall ist, muss GRUB_PLATFORMS="efi-64" zu der Datei /etc/portage/make.conf hinzugefügt werden, bevor das Emerge-Kommando für GRUB2 ausgeführt wird. Ansonsten wird GRUB2 EFI nicht unterstützen.

root #echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
root #emerge --ask sys-boot/grub:2
Wenn GRUB2 ohne aktiviertes GRUB_PLATFORMS="efi-64" "emerged" wurde, kann die Zeile (wie oben gezeigt) zu make.conf hinzugefügt werden. Danach kann GRUB2 mit Support für die neue Plattform "emerged" werden durch Aufruf von emerge mit den Optionen --update --newuse:
root #emerge --ask --update --newuse --verbose sys-boot/grub:2

Die GRUB2 Software wurde nun zu dem System hinzugefügt. Sie ist aber noch nicht installiert.

Installation

Als nächstes werden die erforderlichen GRUB2 Dateien in das /boot/grub/ Verzeichnis installiert. Hierfür kann das grub-install Kommando verwendet werden. Unter der Annahme, dass die erste Festplatte (diejenige von der das System bootet) /dev/sda ist, kann einer der folgenden Befehle verwenden werden:

  • Wenn ein BIOS-System verwendet wird:
root #grub-install /dev/sda
  • Wenn ein UEFI-System verwendet wird:
Wichtig
Stellen Sie sicher, dass die EFI System-Partition (ESP) eingehängt wurde, bevor Sie grub-install ausführen. Wenn die EFI System-Partition nicht eingehängt wurde, wird grub-install die Installation trotzdem durchführen. Die GRUB EFI-Datei (grubx64.efi) wird dann in das falsche Verzeichnis installiert. Dabei werden Sie nicht informiert oder gewarnt.
root #grub-install --target=x86_64-efi --efi-directory=/boot
Notiz
Setzen Sie die --efi-directory Option auf das Verzeichnis der EFI System-Partition (ESP). Dies ist erforderlich, wenn die /boot Partition nicht mit dem Dateisystem-Typ "FAT-Variante" formatiert wurde.
Wichtig
Wenn grub_install einen Fehler wie Could not prepare Boot variable: Read-only file system meldet, ist es möglicherweise erforderlich, einen Mount-Parameter des efivars-Dateisystems auf "read-write" zu ändern:
root #mount -o remount,rw /sys/firmware/efi/efivars
Einige Hersteller von Mainboards scheinen nur das Verzeichnis /efi/boot/ für die .EFI-Datei in der EFI System Partition (ESP) zu unterstützen. Der GRUB Installer unterstützt diese Arbeitsweise mit der Option --removable. Stellen Sie sicher, dass die ESP eingehängt wurde, bevor Sie die folgenden Kommandos ausführen. Vorausgesetzt, dass die ESP eingehängt ist unter /boot (wie früher vorgeschlagen), können Sie folgende Kommandos ausführen:
root #grub-install --target=x86_64-efi --efi-directory=/boot --removable
Dies erzeugt das von der UEFI Spezifikation definierte Standard-Verzeichnis und kopiert dann die grubx64.efi-Datei zu dem "Standard"-Ort der EFI-Datei, der in der gleichen Spezifikation definiert wurde.

Konfiguration

Im nächsten Schritt erzeugen wir auf Grundlage der Benutzereinstellungen, die in der Datei /etc/default/grub und den Skripten im Verzeichnis /etc/grub.d angegeben sind, die GRUB2 Konfiguration. In den meisten Fällen ist keine Konfiguration durch den Benutzer erforderlich, weil GRUB2 automatisch erkennen wird, welcher Kernel zu booten ist (den höchsten verfügbaren in /boot/) und was das Root Dateisystem ist. Mit Hilfe der GRUB_CMDLINE_LINUX Variable ist auch möglich, Kernel-Parameter in /etc/default/grub zu definieren.

Zum Generieren der endgültigen GRUB2 Konfiguration führen Sie den Befehl grub-mkconfig aus:

root #grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-4.9.16-gentoo
Found initrd image: /boot/initramfs-genkernel-amd64-4.9.16-gentoo
done

Die Ausgabe des Befehls muss erwähnen, dass mindestens ein Linux Image gefunden wurde, da dieses zum Booten des Systems erforderlich sind. Wenn ein initramfs verwendet wird, oder der Kernel mit Hilfe von genkernel erzeugt wurde, sollte das korrekte initrd Image ebenfalls erkannt werden. Falls dies nicht der Fall ist, überprüfen Sie das Verzeichnis /boot/ mit dem Befehl ls auf dessen Inhalt. Wenn die Dateien in der Tat fehlen sollten, gehen Sie zurück zur Kernel-Konfiguration und der dortigen Installationsanleitung.

Tip
Die os-prober Utility kann in Verbindung mit GRUB2 verwendet werden, um andere Betriebssysteme auf angeschlossenen Festplatten zu erkennen. Windows 7, 8.1, 10 und andere Linux Distributionen werden erkannt. Diejenigen, die ein Dual-Boot System wünschen, sollten das sys-boot/os-prober Paket "emergen" und dann das grub-mkconfig Kommando erneut ausführen (wie oben beschrieben). Falls Erkennungsprobleme auftreten, lesen Sie bitte den GRUB2 Artikel vollständig, bevor Sie die Gentoo Community um Hilfe bitten.

Alternative 1: LILO

Emerge

LILO, der LInuxLOader, ist das erprobte und wahre Arbeitstier unter den Linux Bootloadern. Allerdings fehlen ihm gegenüber GRUB einige Funktionen. LILO wird auch heute noch verwendet, weil GRUB auf einigen Systemen nicht funktioniert, aber LILO schon. Natürlich wird er ebenfalls verwendet, weil ihn einige Leute kennen und bei LILO bleiben wollen. So oder so, Gentoo unterstützt beide Bootloader.

Das "Emergen" von LILO ist ein Kinderspiel.

root #emerge --ask sys-boot/lilo

Konfiguration

Um LILO zu konfigurieren, erstellen Sie zunächst die Datei /etc/lilo.conf:

root #nano -w /etc/lilo.conf

In der Konfigurationstatei werden Abschnitte verwendet, um die bootfähigen Kernel zu referenzieren. Stellen Sie sicher, dass die Kernel-Dateien (mit Kernelversion) und die initramfs Dateien bekannt sind, da auf sie in dieser Konfigurationsdatei Bezug genommen werden muss.

Notiz
Wenn als Root-Dateisystem JFS verwendet wird, fügen Sie bitte eine append="ro" Zeile nach jedem Booteintrag hinzu, weil JFS sein Log erst auslesen muss, bevor es ein Einhängen im Lese- und Schreibmodus erlaubt.
DATEI /etc/lilo.confLILO Beispiel-Konfiguration
boot=/dev/sda             # Install LILO in the MBR
prompt                    # Give the user the chance to select another section
timeout=50                # Wait 5 (five) seconds before booting the default section
default=gentoo            # When the timeout has passed, boot the "gentoo" section
compact                   # This drastically reduces load time and keeps the map file smaller; may fail on some systems
  
image=/boot/vmlinuz-4.9.16-gentoo
  label=gentoo            # Name we give to this section
  read-only               # Start with a read-only root. Do not alter!
  root=/dev/sda4          # Location of the root filesystem
  
image=/boot/vmlinuz-4.9.16-gentoo
  label=gentoo.rescue     # Name we give to this section
  read-only               # Start with a read-only root. Do not alter!
  root=/dev/sda4          # Location of the root filesystem
  append="init=/bin/bb"   # Launch the Gentoo static rescue shell
  
# The next two lines are for dual booting with a Windows system.
# In this example, Windows is hosted on /dev/sda6.
other=/dev/sda6
  label=windows
Notiz
Wenn Sie ein anderes Partitionierungs-Schema und/oder Kernel-Abbild verwenden, passen Sie die Datei bitte entsprechend an.

Wenn ein initramfs notwendig ist, dann ändern Sie die Konfiguration, indem sie auf die initramfs Datei verweisen und dieser mitteilen, an welcher Stelle sich das echte Root-Device befindet:

DATEI /etc/lilo.confBoot-Eintrag mit initramfs Informationen
image=/boot/vmlinuz-4.9.16-gentoo
  label=gentoo
  read-only
  append="root=/dev/sda4"
  initrd=/boot/initramfs-genkernel-amd64-4.9.16-gentoo

Wenn zusätzliche Optionen an den Kernel übergeben werden müssen, verwenden Sie die append Anweisung. Um beispielsweise die video Anweisung zur Aktivierung des Framebuffers hinzuzufügen:

DATEI /etc/lilo.confBoot-Optionen mit Video-Parametern
image=/boot/vmlinuz-4.9.16-gentoo
  label=gentoo
  read-only
  root=/dev/sda4
  append="video=uvesafb:mtrr,ywrap,1024x768-32@85"

Benutzer, die genkernel verwenden, sollten wissen, dass ihr Kernel die gleichen Bootoptionen verwendet, wie die Installations-CD. Wenn Sie beispielsweise SCSI Support benötigen, fügen sie doscsi als Kernel-Option hinzu.

Speichern Sie nun die Datei und beenden Sie den Editor.

Installation

Zum Abschluss führen Sie bitte das Programm /sbin/lilo aus, damit LILO die Einstellungen aus /etc/lilo.conf auf das System anwenden kann (das heißt: sich selbst auf die Festplatte installieren kann). Beachten Sie, dass /sbin/lilo jedes Mal erneut ausgeführt werden muss, wenn ein Kernel installiert, oder eine Veränderung an lilo.conf vorgenommen wurde.

root #/sbin/lilo

Alternative 2: efibootmgr

Auf UEFI basierten Systemen kann die UEFI Firmware auf dem System selbst (mit anderen Worten: der primäre Bootloader) dazu gebracht werden, dass sie selbst nach UEFI Boot-Einträgen sucht. Solche Systeme benötigen keine (sekundären) Bootloader wie GRUB2, um das System zu booten. Auf solchen Systemen werden Bootloader wie GRUB2 genutzt, weil sie erweiterte Funktionalität bieten. efibootmgr ist für diejenigen gedacht, die ihr System auf direktem (und evtl. rigidem) Weg booten wollen. GRUB2 ist einfacher für die Mehrzahl der Anwender, weil es beim Booten von UEFI Systemen mehr Flexibilität bietet.

Vergessen Sie nicht, dass die sys-boot/efibootmgr Anwendung kein Bootloader ist, sondern ein Werkzeug, um mit der UEFI-Firmware zu interagieren und deren Einstellungen zu aktualisieren. Auf diese Weise kann ein Kernel, der früher installiert wurde, mit zusätzlichen Optionen gebootet werden (falls nötig). Des Weiteren lassen sich dadurch mehrere Booteinträge realisieren. Diese Interaktion erfolgt durch EFI Variablen (daher die Notwendigkeit für die Kernel-Unterstützung für EFI Variablen).

Bitte lesen Sie den EFI stub kernel Artikel, bevor Sie fortfahren. Im Linux Kernel müssen bestimmte Optionen aktiviert sein, damit er direkt von der UEFI Firmware gebootet werden kann. Es kann notwendig sein, den Kernel erneut zu kompilieren. Es könnte auch hilfreich sein, den efibootmgr Artikel zu lesen.

Notiz
Zur Wiederholung: efibootmgr ist keine Voraussetzung, um ein UEFI System zu booten. Der Linux-Kernel selbst kann direkt gebootet werden. Zusätzliche Kernel Bootparameter können in den Linux-Kernel einkompiliert werden (es gibt eine Kernel-Konfigurations-Option, die dem Benutzer erlaubt, die Bootparameter zu spezifizieren). Sogar ein initramfs kann in den Kernels einkompiliert werden.

Diejenigen, die diesen Weg gehen wollen, müssen zuerst die Software installieren:

root #emerge --ask sys-boot/efibootmgr

Erzeugen Sie das Verzeichnis /boot/efi/boot/ und kopieren Sie den Kernel dorthin. Ändern Sie dabei seinen Namen nach bootx64.efi.

root #mkdir -p /boot/efi/boot
root #cp /boot/vmlinuz-* /boot/efi/boot/bootx64.efi

Als Nächstes sagen Sie der UEFI Firmware, dass ein Booteintrag mit dem Namen "Gentoo" zu erstellen ist, der den frisch kompilierten EFI stub Kernel bootet:

root #efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\bootx64.efi"

Falls ein Ausgangsdateisystem im Arbeitsspeicher (Initial RAM Filesystem = initramfs) verwendet wird, fügen Sie die passenden Bootoptionen hinzu:

root #efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l "\efi\boot\bootx64.efi" initrd='\initramfs-genkernel-amd64-4.9.16-gentoo'
Notiz
Die Verwendung von \ als Verzeichnistrenner ist in UEFI Definitionen Pflicht.

Nach diesen Änderungen wird bei einem Neustart das Systems ein Booteintrag mit der Bezeichnung "Gentoo" verfügbar sein.

Alternative 3: Syslinux

Syslinux ist eine weitere Bootloader-Alternative für die amd64 Architektur. Syslinux unterstützt MBR und - seit Version 6.0.0 - auch EFI. Weiterhin werden PXE (netboot) und weitere, weniger bekannte Optionen unterstützt. Obwohl Syslinux bei vielen Anwendern beliebt ist, wird es nicht in diesem Handbuch beschrieben. Es gibt jedoch einen Syslinux Artikel im Gentoo Wiki, in dem die Installation beschrieben wird.


Neustart des Systems

Verlassen Sie die chroot-Umgebung und hängen Sie alle gemounteten Partitionen aus. Geben Sie dann den magischen Befehl ein, der den alles entscheidenden Test einleitet - reboot.

root #exit
cdimage ~#cd
cdimage ~#umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~#umount -R /mnt/gentoo
cdimage ~#reboot

Vergessen Sie nicht, das Installations-Medium zu entfernen. Andernfalls könnte erneut das Installations-Medium anstelle des neuen Gentoo Systems gebootet werden.

Nach dem Neustart in die neu installierte Gentoo Umgebung können Sie Ihre Installation mit dem Kapitel Abschluss der Gentoo Installation fertigstellen.