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 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management



Einen Bootloader auswählen

Nachdem der Linux Kernel konfiguriert, System Tools installiert und deren Konfigurationsdateien bearbeitet sind, ist es nun an der Zeit das letzte wichtige Teil einer Linux Installation zuspielen: den Bootloader.

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

Für amd64 zeigen wir, wie man entweder GRUB2 oder LILO für BIOS basierte Systeme und efibootmgr für UEFI Systeme konfiguriert.

In this section of the Handbook a delineation has been made between emerging the boot loader's package and installing a boot loader to a system disk. Here the term emerge will be used to ask Portage to make the software package available to the system. The term install will signify the boot loader copying files or physically modifying appropriate sections of the system's disk drive in order to render the boot loader activated and ready to operate on the next power cycle.

Standard: GRUB2

Früher verwendete Gentoo Linux das als empfohlenen Bootloader, was jetzt GRUB Legacy genannt wird. Wie der Name vermuten lässt, wird das ältere GRUB Paket nicht mehr länger aktiv gepflegt und wurde durch GRUB2 abgelöst. Für weitere Informationen über GRUB Legacy schauen Sie Sich bitte den GRUB Artikel im Gentoo Wiki an.

By default, the majority of Gentoo systems now rely upon GRUB2 (found in the sys-boot/grub package), which is the direct successor to GRUB Legacy. With no additional configuration, GRUB2 gladly supports older BIOS ("pc") systems. With a small amount of configuration, necessary before build time, GRUB2 can support more than a half a dozen additional platforms. For more information, consult the Prerequisites section of the GRUB2 article.

GRUB2 installieren

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

A note for UEFI users: running the above command will output the enabled GRUB_PLATFORMS values before emerging. When using UEFI capable systems, users will need to ensure GRUB_PLATFORMS="efi-64" is enabled (as it is the case by default). If that is not the case for the setup, GRUB_PLATFORMS="efi-64" will need to be added to the /etc/portage/make.conf file before emerging GRUB2 so that the package will be built with EFI functionality:

root #echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
root #emerge --ask sys-boot/grub:2
If GRUB2 was somehow emerged without enabling GRUB_PLATFORMS="efi-64", the line (as shown above) can be added to make.conf then and dependencies for the world package set re-calculated by passing the --update --newuse options to emerge:
root #emerge --ask --update --newuse --verbose sys-boot/grub:2

Die GRUB2 Software ist nun auf dem System installiert, aber noch nicht aktiviert.

GRUB2 konfigurieren

Als Nächstes installieren Sie die erforderlichen GRUB2 Dateien in /boot/grub/. Wenn wir davon ausgehen, dass die erste Festplatte (diejenige von der das System bootet) /dev/sda ist, macht das der folgende Befehl:

root #grub2-install /dev/sda
  • When using UEFI:
Wichtig
Make sure the EFI system partition has been mounted before running grub-install. It is possible for grub-install to install the GRUB EFI file (grubx64.efi) into the wrong directory without providing any indication the wrong directory was used.
root #grub-install --target=x86_64-efi --efi-directory=/boot
Notiz
Modify the --efi-directory option to the root of the EFI System Partition. This is necessary if the /boot partition was not formatted as a FAT variant.
Wichtig
If grub_install returns an error like Could not prepare Boot variable: Read-only file system, it may be necessary to remount the efivars special mount as read-write in order to succeed:
root #mount -o remount,rw /sys/firmware/efi/efivars

Some motherboard manufacturers seem to only support the /efi/boot/ directory location for the .EFI file in the EFI System Partition (ESP). The GRUB installer can perform this operation automatically with the --removable option. Verify the ESP is mounted before running the following commands. Presuming the ESP is mounted at /boot (as suggested earlier), execute:

root #grub-install --target=x86_64-efi --efi-directory=/boot --removable

This creates the default directory defined by the UEFI specification, and then copies the grubx64.efi file to the 'default' EFI file location defined by the same specification.

Configure

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.

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

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

In der Ausgabe des Befehls muss erwähnen sein, dass mindestens ein Linux Image gefunden wurde, da diese zum Booten des Systems erforderlich sind. Wenn ein initramfs verwendet wird, oder der Kernel mit Hilfe von genkernel erzeugt wurde, sollte das korrekte initrd Abbild 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, gehen Sie zurück zur Kernel-Konfiguration und zur Installationsanleitung.

Tip
The os-prober utility can be used in conjunction with GRUB2 to detect other operating systems from attached drives. Windows 7, 8.1, 10, and other distributions of Linux are detectable. Those desiring dual boot systems should emerge the sys-boot/os-prober package then re-run the grub-mkconfig command (as seen above). If detection problems are encountered be sure to read the GRUB2 article in its entirety before asking the Gentoo community for support.

Alternative: LILO

LILO installieren

LILO, der LInuxLOader, ist das erprobte und wahre Arbeitstier unter den Linux Bootloadern. Allerdings fehlen ihm einige Funktionen, die GRUB besitzt. Der Grund warum LILO immer noch verwendet wird ist, dass auf einigen Systemen GRUB nicht funktioniert aber LILO schon. Natürlich wird er ebenfalls verwendet, weil ihn einige Leute kennen und bei LILO bleiben wollen. So oder so, Genoo unterstützt beide.

Die Installation von LILO ist ein Kinderspiel. Verwenden Sie einfach emerge.

root #emerge --ask sys-boot/lilo

LILO konfigurieren

Um LILO zu konfigurieren, erstellen Sie zunächst /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.confBeispiel LILO 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
  
image=/boot/vmlinuz-3.16.5-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-3.16.5-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 only if you dualboot with a Windows system.
# In this example, Windows is hosted on /dev/sda6.
other=/dev/sda6
  label=windows
Notiz
Wenn Sie ein anderes Partitionierungsschema 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 Laufwerk befindet:

DATEI /etc/lilo.confBooteintrag mit initramfs Informationen
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo
  read-only
  append="real_root=/dev/sda4"
  initrd=/boot/initramfs-genkernel-amd64-3.16.5-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.confBootoptionen mit Videoparametern
image=/boot/vmlinuz-3.16.5-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 Kerneloption hinzu.

Speichern Sie nun die Datei und beenden Sie den Editor.

Install

Zum Abschluss führen Sie bitte /sbin/lilo aus, damit LILO die Einstellungen aus /etc/lilo.conf auf das System anwenden kann (z.B. sich selbst auf die Festplatte installieren). 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: efibootmgr

Auf UEFI basierten Systemen ist der Bootloader selbst die UEFI Firmware des Systems. Solche Systeme benötigen keine zusätzlichen Bootloader um beim Systemstart zu helfen, obwohl es EFI Basierte Bootloader gibt, um die Funktionalität von UEFI Systemen während der Bootens zu erweitern.

Die sys-boot/efibootmgr Anwendung ist kein Bootloader, sondern ein Werkzeug um mit der UEFI-Firmware zu interagieren und deren Einstellungen zu aktualisieren. Auf diese Weise kann ein Kernel der zuvor installiert war 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 der EFI Variablenunterstützung in der Vergangenheit).

Be sure to read through the EFI stub kernel article before continuing. The kernel must have specific options enabled to be directly bootable by the system's UEFI firmware. It might be necessary to recompile the kernel. It is also a good idea to take a look at the efibootmgr article.

Notiz
efibootmgr ist keine Voraussetzung um von einem UEFI System zu booten. Der Linux Kernel selbst kann (und wird) direkt gebootet. Zusätzliche Bootoptionen können zu Teilen des Linux Kernels selbst gemacht werden (es gibt eine Kernelkonfiguration die dem Benutzer erlaubt die Bootparameter zu spezifizieren). Sogar ein initramfs kann zum Teil eines Kernels selbst gemacht werden.

Installieren Sie zuerst die Software:

root #emerge --ask sys-boot/efibootmgr

Then, create the /boot/efi/boot/ location, and then copy the kernel into this location, calling it 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 installierten Linux 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-3.16.5-gentoo'
Notiz
Die Verwendung von \ als Verzeichnistrenner ist in UEFI Definitionen Pflicht.

Beim Neustart das Systems wird nach diesen Änderungen ein Booteintrag mit der Bezeichnung "Gentoo" verfügbar sein.

Alternative 3: Syslinux

Syslinux is yet another bootloader alternative for the amd64 architecture. It supports MBR and, as of version 6.00, it supports EFI boot. PXE (network) boot and lesser-known options are also supported. Although Syslinux is a popular bootloader for many it is unsupported by the Handbook. Readers can find information on emerging and then installing this bootloader in the Syslinux article.


Neustart des Systems

Exit the chrooted environment and unmount all mounted partitions. Then type in that one magical command that initiates the final, true test: reboot.

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

Vergessen Sie nicht die bootfähige CD zu entfernen, andernfalls könnte die CD anstelle des neuen Gentoo Systems erneut gebootet werden.

Nach dem Neustart in die neu installierte Gentoo Umgebung stellen sie Ihre Arbeit mit Abschluss der Gentoo Installation fertig.