Der Bootloader GRUB

Inhaltsverzeichnis

17.1. Booten mit GRUB
17.2. Konfigurieren des Bootloaders mit YaST
17.3. Deinstallieren des Linux-Bootloaders
17.4. Erstellen von Boot-CDs
17.5. Der grafische SUSE-Bildschirm
17.6. Fehlersuche
17.7. Weiterführende Informationen

Zusammenfassung

In diesem Kapitel wird die Konfiguration von GRUB, dem in openSUSE® verwendeten Bootloader, beschrieben. Zum Konfigurieren der Einstellungen steht ein spezielles YaST-Modul zur Verfügung. Wenn Sie mit dem Bootvorgang unter Linux nicht vertraut sind, lesen Sie die folgenden Abschnitte, um einige Hintergrundinformationen zu erhalten. In diesem Kapitel werden zudem einige der Probleme, die beim Booten mit GRUB auftreten können, sowie deren Lösungen beschrieben.

Dieses Kapitel konzentriert sich auf das Bootmanagement und die Konfiguration des Bootloaders GRUB. Eine Übersicht über den Bootvorgang finden Sie in Kapitel 16, Booten und Konfigurieren eines Linux-Systems. Ein Bootloader stellt die Schnittstelle zwischen dem Computer (BIOS) und dem Betriebssystem (openSUSE) dar. Die Konfiguration des Bootloaders wirkt sich direkt auf das Starten des Betriebssystems aus.

In diesem Kapitel werden folgende Begriffe regelmäßig verwendet und daher ausführlicher beschrieben:

Master Boot Record

Die Struktur des MBR ist durch eine vom Betriebssystem unabhängige Konvention definiert. Die ersten 446 Byte sind für Programmcode reserviert. Sie enthalten typischerweise einen Teil eines Bootloader-Programms oder eine Betriebssystemauswahl. Die nächsten 64 Byte bieten Platz für eine Partitionstabelle mit bis zu vier Einträgen. Die Partitionstabelle enthält Informationen zur Partitionierung der Festplatte und zu Dateisystemtypen. Das Betriebssystem benötigt diese Tabelle für die Verwaltung der Festplatte. Beim konventionellen generischen Code im MBR muss genau eine Partition als aktiv markiert sein. Die letzten beiden Byte müssen eine statische "magische Zahl" (AA55) enthalten. Ein MBR, der dort einen anderen Wert enthält, wird von einigen BIOS als ungültig und daher nicht zum Booten geeignet angesehen.

Bootsektoren

Bootsektoren sind die jeweils ersten Sektoren der Festplattenpartitionen, außer bei der erweiterten Partition, die nur ein "Container" für andere Partitionen ist. Diese Bootsektoren reservieren 512 Byte Speicherplatz für Code, der ein auf dieser Partition befindliches Betriebssystem starten kann. Dies gilt für Bootsektoren formatierter DOS-, Windows- oder OS/2-Partitionen, die zusätzlich noch wichtige Basisdaten des Dateisystems enthalten. Im Gegensatz dazu sind Bootsektoren von Linux-Partitionen nach der Einrichtung eines anderen Dateisystems als XFS zunächst leer. Eine Linux-Partition ist daher nicht durch sich selbst bootfähig, auch wenn sie einen Kernel und ein gültiges root-Dateisystem enthält. Ein Bootsektor mit gültigem Code für den Systemstart trägt in den letzten 2 Byte dieselbe "magische" Zahl wie der MBR (AA55).

Booten mit GRUB

GRUB (Grand Unified Bootloader) besteht aus zwei Stufen. Stufe 1 (stage1) besteht aus 512 Byte und erfüllt lediglich die Aufgabe, die zweite Stufe des Bootloaders zu laden. Anschließend wird Stufe 2 (stage2) geladen. Diese Stufe enthält den Hauptteil des Bootloaders.

In einigen Konfigurationen gibt es eine zusätzliche Zwischenstufe 1.5, die Stufe 2 von einem geeigneten Dateisystem lokalisiert und lädt. Wenn diese Methode zur Verfügung steht, wird sie bei der Installation oder bei der anfänglichen Einrichtung von GRUB mit YaST standardmäßig gewählt.

stage2 kann auf zahlreiche Dateisysteme zugreifen. Derzeit werden Ext2, Ext3, ReiserFS, Minix und das von Windows verwendete DOS FAT-Dateisystem unterstützt. Bis zu einem gewissen Grad werden auch die von BSD-Systemen verwendeten , XFS, UFS und FFS unterstützt. Seit Version 0.95 kann GRUB auch von einer CD oder DVD booten, die das ISO 9660-Standarddateisystem nach der "El Torito"-Spezifikation enthält. GRUB kann noch vor dem Booten auf Dateisysteme unterstützter BIOS-Datenträgerlaufwerke (vom BIOS erkannte Disketten-, Festplatten-, CD- oder DVD-Laufwerke) zugreifen. Daher ist keine Neuinstallation des Bootmanagers nötig, wenn die Konfigurationsdatei von GRUB (menu.lst) geändert wird. Beim Booten des Systems liest GRUB die Menüdatei sowie die aktuellen Pfade und Partitionsdaten zum Kernel oder zur Initial RAM-Disk (initrd) neu ein und findet diese Dateien selbstständig.

Die eigentliche Konfiguration von GRUB basiert auf den im Folgenden beschriebenen vier Dateien:

/boot/grub/menu.lst

Diese Datei enthält alle Informationen zu Partitionen oder Betriebssystemen, die mit GRUB gebootet werden können. Wenn diese Angaben nicht zur Verfügung stehen, muss der Benutzer in der GRUB-Kommandozeile das weitere Vorgehen angeben. Weitere Informationen finden Sie unter Abschnitt 17.1.1.3, „Ändern von Menü-Einträgen während des Bootvorgangs“.

/boot/grub/device.map

Diese Datei übersetzt Gerätenamen aus der GRUB- und BIOS-Notation in Linux-Gerätenamen.

/etc/grub.conf

Diese Datei enthält die Kommandos, Parameter und Optionen, die die GRUB-Shell für das ordnungsgemäße Installieren des Bootloaders benötigt.

/etc/sysconfig/bootloader

Diese Datei wird von der Perl Bootloader-Bibliothek gelesen, die bei der Konfiguration des Bootloaders mit YaST und bei jeder Installation eines neuen Kernels verwendet wird. Sie enthält Konfigurationsoptionen (wie Kernel-Parameter), die standardmäßig zur Bootloader-Konfigurationsdatei hinzugefügt werden.

GRUB kann auf mehrere Weisen gesteuert werden. Booteinträge aus einer vorhandenen Konfiguration können im grafischen Menü (Eröffnungsbildschirm) ausgewählt werden. Die Konfiguration wird aus der Datei menu.lst geladen.

In GRUB können alle Bootparameter vor dem Booten geändert werden. Auf diese Weise können beispielsweise Fehler behoben werden, die beim Bearbeiten der Menüdatei aufgetreten sind. Außerdem können über eine Art Eingabeaufforderung Bootkommandos interaktiv eingegeben werden. Weitere Informationen finden Sie in Abschnitt 17.1.1.3, „Ändern von Menü-Einträgen während des Bootvorgangs“. &GRUB bietet die Möglichkeit, noch vor dem Booten die Position des Kernels und die Position von initrd zu ermitteln. Auf diese Weise können Sie auch ein installiertes Betriebssystem booten, für das in der Konfiguration des Bootloaders noch kein Eintrag vorhanden ist.

GRUB ist in zwei Versionen vorhanden: als Bootloader und als normales Linux-Programm in /usr/sbin/grub. Letzters wird als GRUB-Shell bezeichnet. Es stellt auf dem installierten System eine Emulation von GRUB bereit, die zum Installieren von GRUB oder zum Testen neuer Einstellungen verwendet werden kann. Die Funktionalität, GRUB als Bootloader auf einer Festplatte oder Diskette zu installieren, ist in Form des Kommandos setup in GRUB integriert. Diese Befehle sind in der GRUB-Shell verfügbar, wenn Linux geladen ist.

Die Datei /boot/grub/menu.lst

Der grafische Eröffnungsbildschirm mit dem Bootmenü basiert auf der GRUB-Konfigurationsdatei /boot/grub/menu.lst , die alle Informationen zu allen Partitionen oder Betriebssystemen enthält, die über das Menü gebootet werden können.

Bei jedem Systemstart liest GRUB die Menüdatei vom Dateisystem neu ein. Es besteht also kein Bedarf, GRUB nach jeder Änderung an der Datei neu zu installieren. Mit dem YaST-Bootloader können Sie die GRUB-Konfiguration wie in Abschnitt 17.2, „Konfigurieren des Bootloaders mit YaST“ beschrieben ändern.

Die Menüdatei enthält Befehle. Die Syntax ist sehr einfach. Jede Zeile enthält einen Befehl, gefolgt von optionalen Parametern, die wie bei der Shell durch Leerzeichen getrennt werden. Einige Befehle erlauben aus historischen Gründen ein Gleichheitszeichen (=) vor dem ersten Parameter. Kommentare werden durch ein Rautezeichen (#) eingeleitet.

Zur Erkennung der Menüeinträge in der Menü-Übersicht, müssen Sie für jeden Eintrag einen Namen oder einen title vergeben. Der nach dem Schlüsselwort title stehende Text wird inklusive Leerzeichen im Menü als auswählbare Option angezeigt. Alle Befehle bis zum nächsten title werden nach Auswahl dieses Menüeintrags ausgeführt.

Der einfachste Fall ist die Umleitung zu Bootloadern anderer Betriebssysteme. Der Befehl lautet chainloader und das Argument ist normalerweise der Bootblock einer anderen Partition in der Blocknotation von GRUB. Beispiel:

chainloader (hd0,3)+1

Die Gerätenamen in GRUB werden in Abschnitt 17.1.1.1, „Namenskonventionen für Festplatten und Partitionen“ beschrieben. Dieses Beispiel spezifiziert den ersten Block der vierten Partition auf der ersten Festplatte.

Mit dem Befehl kernel wird ein Kernel-Image angegeben. Das erste Argument ist der Pfad zum Kernel-Image auf einer Partition. Die restlichen Argumente werden dem Kernel in seiner Kommandozeile übergeben.

Wenn der Kernel nicht über die erforderlichen Treiber für den Zugriff auf die root-Partition verfügt oder ein aktuelles Linux-System mit erweiterten Hotplug-Funktionen verwendet wird, muss initrd mit einem separaten GRUB-Befehl angegeben werden, dessen einziges Argument der Pfad zur Datei initrd ist. Da die Ladeadresse von initrd in das geladene Kernel-Image geschrieben wird, muss der Befehl initrd auf den Befehl kernel folgen.

Der Befehl root vereinfacht die Angabe der Kernel- und initrd-Dateien. Das einzige Argument von root ist ein Gerät oder eine Partition. Allen Kernel-, initrd- oder anderen Dateipfaden, für die nicht explizit ein Gerät angegeben ist, wird bis zum nächsten root-Befehl das Gerät vorangestellt.

Am Ende jeden Menüeintrags steht implizit der boot-Befehl, sodass dieser nicht in die Menüdatei geschrieben werden muss. Wenn Sie GRUB jedoch interaktiv zum Booten verwenden, müssen Sie den boot-Befehl am Ende eingeben. Der Befehl selbst hat keine Argumente. Er führt lediglich das geladene Kernel-Image oder den angegebenen Chainloader aus.

Wenn Sie alle Menüeinträge geschrieben haben, müssen Sie einen Eintrag als default festlegen. Anderenfalls wird der erste Eintrag (Eintrag 0) verwendet. Sie haben auch die Möglichkeit, ein Zeitlimit in Sekunden anzugeben, nach dem der default-Eintrag gebootet wird. timeout und default werden den Menüeinträgen in der Regel vorangestellt. Eine Beispieldatei finden Sie in Abschnitt 17.1.1.2, „Beispiel einer Menüdatei“.

Namenskonventionen für Festplatten und Partitionen

Die von GRUB für Festplatten und Partitionen verwendete Namenskonvention unterscheidet sich von der, die für normale Linux-Geräte verwendet wird. Sie sind der einfachen Plattennummerierung, die das BIOS durchführt, sehr ähnlich und die Syntax gleicht derjenigen, die in manchen BSD-Derivaten verwendet wird. In GRUB beginnt die Nummerierung der Partitionen mit null. Daher ist (hd0,0) die erste Partition auf der ersten Festplatte. Auf einem gewöhnlichen Desktop-Computer, bei dem eine Festplatte als Primary Master angeschlossen ist, lautet der entsprechende Linux-Gerätename /dev/sda1.

Die vier möglichen primären Partitionen haben die Partitionsnummern 0 bis 3. Ab 4 werden die logischen Partitionen hochgezählt:

(hd0,0)   first primary partition of the first hard disk
(hd0,1)   second primary partition
(hd0,2)   third primary partition
(hd0,3)   fourth primary partition (usually an extended partition)
(hd0,4)   first logical partition
(hd0,5)   second logical partition

In seiner Abhängigkeit von BIOS-Geräten unterscheidet GRUB nicht zwischen IDE-, SATA-, SCSI- und Hardware RAID-Geräten. Alle Festplatten, die vom BIOS oder anderen Controllern erkannt werden, werden der im BIOS voreingestellten Bootreihenfolge entsprechend nummeriert.

Leider ist eine eindeutige Zuordnung zwischen Linux-Gerätenamen und BIOS-Gerätenamen häufig nicht möglich. Es generiert die Zuordnung mithilfe eines Algorithmus und speichert sie in der Datei device.map, in der sie bei Bedarf bearbeitet werden kann. Informationen zur Datei device.map finden Sie in Abschnitt 17.1.2, „Die Datei "device.map"“.

Ein vollständiger GRUB-Pfad besteht aus einem Gerätenamen, der in Klammern geschrieben wird, und dem Pfad der Datei im Dateisystem auf der angegebenen Partition. Der Pfad beginnt mit einem Schrägstrich. Auf einem System mit einer einzelnen IDE-Festplatte und Linux auf der ersten Partition könnte der bootbare Kernel beispielsweise wie folgt spezifiziert werden:

(hd0,0)/boot/vmlinuz

Beispiel einer Menüdatei

Das folgende Beispiel zeigt die Struktur einer GRUB-Menüdatei. Diese Beispiel-Installation beinhaltet eine Linux-Bootpartition unter /dev/sda5, eine Root-Partition unter /dev/sda7 und eine Windows-Installation unter /dev/sda1.

gfxmenu (hd0,4)/boot/message
color white/blue black/light-gray
default 0
timeout 8

title linux
   root (hd0,4)
   kernel /boot/vmlinuz root=/dev/sda7 vga=791 resume=/dev/sda9
   initrd /boot/initrd

title windows
   rootnoverify (hd0,0)
   chainloader +1

title floppy
   rootnoverify (hd0,0)
   chainloader (fd0)+1

title failsafe
   root (hd0,4)
   kernel /boot/vmlinuz.shipped root=/dev/sda7 ide=nodma \
   apm=off acpi=off vga=normal nosmp maxcpus=0 3 noresume
   initrd /boot/initrd.shipped

Der erste Block definiert die Konfiguration des Eröffnungsbildschirms:

gfxmenu (hd0,4)/message

Das Hintergrundbild message befindet sich im Verzeichnis der obersten Ebene der Partition /dev/sda5.

color white/blue black/light-gray

Farbschema: Weiß (Vordergrund), Blau (Hintergrund), Schwarz (Auswahl) und Hellgrau (Hintergrund der Markierung). Das Farbschema wirkt sich nicht auf den Eröffnungsbildschirm, sondern nur auf das anpassbare GRUB-Menü aus, auf das Sie zugreifen können, wenn Sie den Eröffnungsbildschirm mit Esc beenden.

default 0

Der erste Menüeintrag title linux soll standardmäßig gebootet werden.

timeout 8

Nach acht Sekunden ohne Benutzereingabe bootet GRUB den Standardeintrag automatisch. Um das automatische Booten zu deaktivieren, löschen Sie die Zeile timeout. Wenn Sie timeout 0 einstellen, bootet GRUB den Standardeintrag sofort.

Im zweiten und größten Block sind die verschiedenen bootbaren Betriebssysteme aufgelistet. Die Abschnitte für die einzelnen Betriebssysteme werden durch title eingeleitet.

  • Der erste Eintrag (title linux) ist für das Booten von openSUSE verantwortlich. Der Kernel (vmlinuz) befindet sich in der ersten logischen Partition (die Bootpartition) der ersten Festplatte. Hier werden Kernel-Parameter, z. B. die Root-Partition und der VGA-Modus, angehängt. Die Angabe der root-Partition erfolgt nach der Linux-Namenskonvention (/dev/sda7/), da diese Information für den Kernel bestimmt ist und nichts mit GRUB zu tun hat. Die initrd befindet sich ebenfalls in der ersten logischen Partition der ersten Festplatte.

  • Der zweite Eintrag ist für das Laden von Windows verantwortlich. Windows wird von der ersten Partition der ersten Festplatte aus gebootet (hd0,0). Mit chainloader +1 wird das Auslesen und Ausführen des ersten Sektors der angegebenen Partition gesteuert.

  • Der nächste Eintrag dient dazu, das Booten von Diskette zu ermöglichen, ohne dass dazu die BIOS-Einstellungen geändert werden müssten.

  • Die Bootoption failsafe dient dazu, Linux mit einer bestimmten Auswahl an Kernel-Parametern zu starten, die selbst auf problematischen Systemen ein Hochfahren von Linux ermöglichen.

Die Menüdatei kann jederzeit geändert werden. GRUB verwendet die geänderten Einstellungen anschließend für den nächsten Bootvorgang. Sie können diese Datei mit dem Editor Ihrer Wahl oder mit YaST editieren und dauerhaft speichern. Alternativ können Sie temporäre Änderungen interaktiv über die Bearbeitungsfunktion von GRUB vornehmen. Weitere Informationen hierzu finden Sie unter Abschnitt 17.1.1.3, „Ändern von Menü-Einträgen während des Bootvorgangs“.

Ändern von Menü-Einträgen während des Bootvorgangs

Wählen Sie im grafischen Bootmenü das zu bootende Betriebssystem mit den Pfeiltasten aus. Wenn Sie ein Linux-System wählen, können Sie in der Booteingabeaufforderung zusätzliche Bootparameter eingeben. Um einzelne Menüeinträge direkt zu bearbeiten, drücken Sie die Esc-Taste. Der Eröffnungsbildschirm wird geschlossen und das textbasierte GRUB-Menü aufgerufen. Drücken Sie anschließend die Taste E. Auf diese Weise vorgenommene Änderungen gelten nur für den aktuellen Bootvorgang und können nicht dauerhaft übernommen werden.

[Important]Tastaturbelegung während des Bootvorgangs

Beim Bootvorgang ist nur die amerikanische Tastaturbelegung verfügbar. Weitere Informationen hierzu finden Sie unter Abbildung „US-Tastaturbelegung“ (↑Start).

Durch die Möglichkeit, die Menüeinträge zu bearbeiten, kann ein defektes System, das nicht mehr gebootet werden kann, repariert werden, da die fehlerhafte Konfigurationsdatei des Bootloaders mittels der manuellen Eingabe von Parametern umgangen werden kann. Die manuelle Eingabe vom Parametern während des Bootvorgangs ist zudem hilfreich zum Testen neuer Einstellungen, ohne dass diese sich auf das native System auswirken.

Aktivieren Sie den Bearbeitungsmodus und wählen Sie mithilfe der Pfeiltasten den Menüeintrag aus, dessen Konfiguration sie ändern möchten. Um die Konfiguration zu bearbeiten, drücken Sie die Taste E erneut. Auf diese Weise korrigieren Sie falsche Partitions- oder Pfadangaben, bevor sich diese negativ auf den Bootvorgang auswirken. Drücken Sie die Eingabetaste, um den Bearbeitungsmodus zu verlassen und zum Menü zurückzukehren. Drücken Sie anschließend die Taste B, um diesen Eintrag zu booten. Im Hilfetext am unteren Rand werden weitere mögliche Aktionen angezeigt.

Um die geänderten Bootoptionen dauerhaft zu übernehmen und an den Kernel zu übergeben, öffnen Sie die Datei menu.lst als Benutzer root und hängen Sie die entsprechenden Kernel-Parameter an folgende vorhandene Zeile getrennt durch Leerzeichen an:

title linux
   root(hd0,0)
     kernel /vmlinuz root=/dev/sda3 additional parameter
   initrd /initrd

GRUB übernimmt den neuen Parameter beim nächsten Booten automatisch. Alternativ können Sie diese Änderung auch mit dem YaST-Bootloader-Modul vornehmen. Hängen Sie die neuen Parameter getrennt durch Leerzeichen an die vorhandene Zeile an.

Die Datei "device.map"

Die Datei device.map enthält Zuordnungen zwischen den GRUB- und BIOS-Gerätenamen und den Linux-Gerätenamen. In einem Mischsystem aus IDE- und SCSI-Festplatten muss GRUB anhand eines bestimmten Verfahrens versuchen, die Bootreihenfolge zu ermitteln, da die BIOS-Informationen zur Bootreihenfolge für GRUB unter Umständen nicht zugänglich sind. GRUB speichert das Ergebnis dieser Analyse in der Datei /boot/grub/device.map. Ein Beispiel für device.map-Dateien für ein System, bei dem in der Bootreihenfolge im BIOS zuerst IDE und dann SCSI eingestellt ist:

(fd0)  /dev/fd0
(hd0)  /dev/sda
(hd1)  /dev/sdb

oder

(fd0)  /dev/fd0
(hd0)  /dev/disk-by-id/DISK1 ID
(hd1)  /dev/disk-by-id/DISK2 ID

Da die Reihenfolge von IDE, SCSI und anderen Festplatten abhängig von verschiedenen Faktoren ist und Linux die Zuordnung nicht erkennen kann, besteht die Möglichkeit, die Reihenfolge in der Datei device.map manuell festzulegen. Wenn beim Booten Probleme auftreten sollten, prüfen Sie, ob die Reihenfolge in dieser Datei der BIOS-Reihenfolge entspricht, und ändern Sie sie notfalls temporär mithilfe der GRUB-Eingabeaufforderung. Sobald das Linux-System gebootet ist, können Sie die Datei device.map mithilfe des YaST-Bootloader-Moduls oder eines Editors Ihrer Wahl dauerhaft bearbeiten.

Installieren Sie nach der manuellen Bearbeitung von device.map GRUB über den folgenden Befehl erneut. Dieser Befehl führt dazu, dass die Datei device.map neu geladen wird und die in grub.conf aufgelisteten Befehle ausgeführt werden:

grub --batch < /etc/grub.conf

Die Datei "/etc/grub.conf"

Nach menu.lst und device.map ist /etc/grub.conf die dritte wichtige Konfigurationsdatei von GRUB. Diese Datei enthält die Kommandos, Parameter und Optionen, die die GRUB-Shell für das ordnungsgemäße Installieren des Bootloaders benötigt:

setup --stage2=/boot/grub/stage2 --force-lba (hd0,1) (hd0,1)
   quit

Dieses Kommando weist GRUB an, den Bootloader automatisch auf die zweite Partition der ersten Festplatte (hd0,1) zu installieren und dabei die Boot-Images zu verwenden, die sich auf derselben Partition befinden. Der Parameter --stage2=/boot/grub/stage2 ist erforderlich, um das Image stage2 von einem eingehängten Dateisystem zu installieren. Einige BIOS haben eine fehlerhafte Implementierung für LBA-Unterstützung. Mit --force-lba können Sie diese ignorieren.

Die Datei /etc/sysconfig/bootloader

Diese Konfigurationsdatei wird nur bei der Konfiguration des Bootloaders mit YaST und bei jeder Installation eines neuen Kernels verwendet. Sie wird von der Perl Bootloader-Bibliothek evaluiert, die die Bootloader-Konfigurationsdatei (z. B. /boot/grub/menu.lst für GRUB) entsprechend bearbeitet. /etc/sysconfig/bootloader ist keine GRUB-spezifische Konfigurationsdatei – die Werte gelten für alle Bootloader, die auf openSUSE installiert sind.

[Note]Bootloader-Konfiguration nach einer Kernel-Aktualisierung

Bei jeder Installation eines neuen Kernels schreibt der Perl Bootloader eine neue Konfigurationsdatei (z.B. /boot/grub/menu.lst für GRUB). Er verwendet dazu die unter /etc/sysconfig/bootloader angegebenen Standardeinstellungen. Wenn Sie einen angepassten Satz von Kernel-Parametern verwenden, vergewissern Sie sich, dass die entsprechenden Standardeinstellungen in /etc/sysconfig/bootloader wunschgemäß angepasst wurden.

LOADER_TYPE

Legt den auf dem System installierten Bootloader fest (z. B. GRUB bzw. LILO). Nicht bearbeiten – Ändern Sie den Bootloader gemäß den Anweisungen unter Prozedur 17.6, „Ändern des Bootloader-Typs“ mit YaST.

DEFAULT_VGA / FAILSAFE_VGA / XEN_VGA

Die Bildschirmauflösung und die Farbtiefe des beim Booten verwendeten Framebuffers werden mit dem Kernel-Parameter vga konfiguriert. Diese Werte definieren die Auflösung und die Farbtiefe, die für den standardmäßigen Boot-Eintrag, den Failsafe und den XEN-Eintrag verwendet werden. Die folgenden Werte sind zulässig:

Tabelle 17.1. Bildschirmauflösung- und Farbtiefe-Referenz

640 × 480

800 × 600

1024 × 768

1280 × 1024

1600 × 1200

8bit

0x301

0x303

0x305

0x307

0x31C

15-Bit

0x310

0x313

0x316

0x319

0x31D

16-Bit

0x311

0x314

0x317

0x31A

0x31E

24-Bit

0x312

0x315

0x318

0x31B

0x31F


DEFAULT_APPEND / FAILSAFE_APPEND / XEN_KERNEL_APPEND

Kernel-Parameter (außer vga), die automatisch an die Standard-, Failsafe- und XEN-Boot-Einträge in der Bootloader-Konfigurationsdatei angehängt werden.

CYCLE_DETECTION / CYCLE_NEXT_ENTRY

Konfigurieren Sie, ob die Boot-Zyklus-Erkennung verwendet werden soll und, falls ja, welcher alternative Eintrag von /boot/grub/menu.lst im Fall eines Reboot-Zyklus gebootet werden soll (z. B. Failsafe). Detaillierte Informationen finden Sie in der /usr/share/doc/packages/bootcycle/README.

Festlegen eines Bootpassworts

Schon vor dem Booten des Betriebssystems ermöglicht GRUB den Zugriff auf Dateisysteme. Dies bedeutet, dass Benutzer ohne root-Berechtigungen auf Dateien des Linux-Systems zugreifen können, auf die sie nach dem Booten keinen Zugriff haben. Um diese Zugriffe oder das Booten bestimmter Betriebssysteme zu verhindern, können Sie ein Bootpasswort festlegen.

[Important]Bootpasswort und Eröffnungsbildschirm

Wenn Sie für GRUB ein Bootpasswort verwenden, wird der übliche Eröffnungsbildschirm nicht angezeigt.

Legen Sie als Benutzer root das Bootpasswort wie folgt fest:

  1. Verschlüsseln Sie an der root-Eingabeaufforderung das Passwort mithilfe von grub-md5-crypt:

    # grub-md5-crypt
    Password: ****
    Retype password: ****
    Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/
  2. Fügen Sie die verschlüsselte Zeichenkette in den globalen Abschnitt der Datei menu.lst ein:

    gfxmenu (hd0,4)/message
    color white/blue black/light-gray
    default 0
    timeout 8
    password --md5 $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/

    Jetzt können GRUB-Befehle in der Booteingabeaufforderung nur ausgeführt werden, wenn die Taste P gedrückt und das Passwort eingegeben wurde. Benutzer können jedoch über das Bootmenü weiterhin alle Betriebssysteme booten.

  3. Um zu verhindern, dass ein oder mehrere Betriebssysteme über das Bootmenü gebootet werden, fügen Sie den Eintrag lock zu allen Abschnitten in menu.lst hinzu, die ohne Eingabe eines Passworts nicht gebootet werden sollen. Beispiel:

    title linux
       kernel (hd0,4)/vmlinuz root=/dev/sda7 vga=791
       initrd (hd0,4)/initrd
       lock

    Nach dem Neubooten des Systems und der Auswahl des Linux-Eintrags im Bootmenü erscheint zunächst folgende Fehlermeldung:

    Error 32: Must be authenticated

    Drücken Sie die Eingabetaste, um das Menü zu öffnen. Drücken Sie anschließend die Taste P, um die Eingabeaufforderung für das Passwort zu öffnen. Wenn Sie das Passwort eingegeben und die Eingabetaste gedrückt haben, sollte das ausgewählte Betriebssystem (in diesem Fall Linux) gebootet werden.

Konfigurieren des Bootloaders mit YaST

Mit dem YaST-Modul ist die Konfiguration des Bootloaders auf Ihrem openSUSE-System am einfachsten. Wählen Sie im YaST-Kontrollzentrum System+Bootloader. Wie in Abbildung 17.1, „Bootloader-Einstellungen“ zeigt dies die aktuelle Bootloader-Konfiguration des Systems und ermöglicht Ihnen, Änderungen vorzunehmen.

Abbildung 17.1. Bootloader-Einstellungen

Bootloader-Einstellungen

Auf der Registerkarte Abschnittsverwaltung können Sie die Bootloader-Abschnitte für die einzelnen Betriebssysteme bearbeiten, ändern und löschen. Klicken Sie auf Hinzufügen, um eine Option hinzuzufügen. Wenn Sie den Wert einer bestehenden Option ändern möchten, wählen Sie ihn mit der Maus aus und klicken Sie auf Bearbeiten. Um ein vorhandenes Schema zu löschen, wählen Sie das Schema aus und klicken Sie auf Löschen. Wenn Sie nicht mit den Bootloader-Optionen vertraut sind, lesen Sie zunächst Abschnitt 17.1, „Booten mit GRUB“.

Verwenden Sie die Registerkarte Bootloader-Installation, um die Einstellungen in Bezug auf Typ, Speicherort und erweiterte Bootloader-Einstellungen anzuzeigen und zu ändern.

Klicken Sie auf Weitere, um auf erweiterte Konfigurationsoptionen zuzugreifen. Über den integrierten Editor können Sie die GRUB-Konfigurationsdateien ändern. Weitere Informationen finden Sie in Abschnitt 17.1, „Booten mit GRUB“. Sie können die vorhandene Konfiguration auch löschen und eine neue Konfiguration ohne Vorschlag erstellen oder sich von YaST eine neue Konfiguration vorschlagen lassen. Sie können die Konfiguration auch auf die Festplatte schreiben und sie von der Festplatte wieder einlesen. Zur Wiederherstellung des ursprünglichen, während der Installation gespeicherten MBR (Master Boot Record) wählen Sie MBR von Festplatte wiederherstellen aus.

Anpassen des Standard-Boot-Eintrags

Um das System zu ändern, das standardmäßig gebootet wird, gehen Sie wie folgt vor:

Prozedur 17.1. Standardsystem einrichten

  1. Öffnen Sie die Karteireiter Abschnittsverwaltung.

  2. Wählen Sie den gewünschten Eintrag in der Liste aus.

  3. Klicken Sie auf Als Standard festlegen.

  4. Klicken Sie auf OK, um die Änderungen zu aktivieren.

Speicherort des Bootloaders ändern

Um den Speicherort des Bootloaders zu ändern, gehen Sie wie folgt vor:

Prozedur 17.2. Speicherort des Bootloaders ändern

  1. Wählen Sie den Karteireiter Bootloader-Installation und anschließend eine der folgenden Optionen für Speicherort des Bootloaders:

    Booten vom Master Boot Record

    Der Bootloader wird in den MBR des ersten Laufwerks installiert (entsprechend der im BIOS voreingestellten Bootreihenfolge).

    Booten von der root-Partition

    Der Bootloader wird im Bootsektor der Partition / installiert (dies ist der Standard).

    Booten von der Bootpartition

    Der Bootloader wird im Bootsektor der Partition /boot installiert.

    Booten von der erweiterten Partition

    Der Bootloader wird in den Container der erweiterten Partition installiert.

    Benutzerdefinierte Bootpartition

    Mit dieser Option können Sie den Speicherort des Bootloaders manuell angeben.

  2. Klicken Sie zum Anwenden der Änderungen auf OK.

Ändern des Bootloader-Zeitlimits

Der Bootloader bootet das Standardsystem nicht sofort. Während des Zeitlimits können Sie das zu bootende System auswählen oder einige Kernel-Parameter schreiben. Gehen Sie wie folgt vor, um das Zeitlimit des Bootloaders festzulegen:

Prozedur 17.3. Ändern des Bootloader-Zeitlimits

  1. Öffnen Sie die Karteireiter Bootloader-Installation.

  2. Klicken Sie auf Bootloader-Optionen.

  3. Ändern Sie den Wert für Zeitüberschreitung in Sekunden, indem Sie einen neuen Wert eingeben und mit der Maus auf den entsprechenden Pfeil klicken oder die Pfeiltasten der Tastatur verwenden.

  4. Klicken Sie zweimal auf OK, um die Änderungen zu speichern.

Festlegen eines Bootpassworts

Mit diesem YaST-Modul können Sie zum Schutz des Bootvorgangs auch ein Passwort einrichten. Damit wird ein zusätzlicher Grad an Sicherheit geboten.

Prozedur 17.4. Festlegen eines Bootloader-Passworts

  1. Öffnen Sie die Karteireiter Bootloader-Installation.

  2. Klicken Sie auf Bootloader-Optionen.

  3. Aktivieren Sie die Option Passwort für die Menüschnittstelle und geben Sie Ihr Passwort zweimal ein.

  4. Klicken Sie zweimal auf OK, um die Änderungen zu speichern.

Anpassen der Festplattenreihenfolge

Wenn Ihr Computer mehrere Festplatten hat, können Sie die Bootsequenz der Festplatten so festlegen, dass sie dem BIOS-Setup des Computers entsprechen (siehe Abschnitt 17.1.2, „Die Datei "device.map"“). Gehen Sie hierfür wie folgt vor:

Prozedur 17.5. Festlegen der Festplattenreihenfolge

  1. Öffnen Sie die Karteireiter Bootloader-Installation.

  2. Klicken Sie auf Details zur Bootloader-Installation.

  3. Ändern Sie bei mehreren aufgeführten Festplatten deren Reihenfolge mit einem Klick auf Auf oder Ab.

  4. Klicken Sie zweimal auf OK, um die Änderungen zu speichern.

Konfigurieren der erweiterten Optionen

Erweiterte Boot-Optionen lassen sich über Bootloader-Installation+Bootloader-Optionen konfigurieren. Normalerweise sollte es nicht erforderlich sein, die Standardeinstellungen zu ändern.

Aktives Flag in Partitionstabelle für Bootpartition festlegen

Aktiviert die Partition, die den Bootloader enthält. Einige ältere Betriebssysteme, z. B. Windows 98, können nur von einer aktiven Partition booten.

Generischen Bootcode in MBR schreiben

Ersetzt den aktuellen MBR durch generischen, Betriebssystem-unabhängigen Code.

Flag für Durchführung der Fehlersuche

Stellt GRUB in den Fehlersuchmodus um, in dem Meldungen über die Plattenaktivität angezeigt werden.

Menü beim Booten ausblenden

Blendet das Bootmenü aus und bootet den Standardeintrag.

Trusted GRUB verwenden

Startet Trusted GRUB, das verbürgte Computerfunktionen unterstützt.

Akustische Signale aktivieren

Aktiviert oder deaktiviert akustische Signale in GRUB.

Datei für grafisches Menü

Pfad zur Grafikdatei, die bei der Anzeige des Boot-Bildschirms verwendet wird.

Serielle Konsole verwenden

Wenn Ihr Computer über eine serielle Konsole gesteuert wird, aktivieren Sie diese Option und geben Sie an, welcher COM-Port in welcher Geschwindigkeit verwendet werden soll. Siehe info grub oder http://www.gnu.org/software/grub/manual/grub.html#Serial-terminal.

Ändern des Bootloader-Typs

Legen Sie den Bootloader-Typ unter Bootloader-Installation fest. In openSUSE wird standardmäßig der Bootloader GRUB verwendet. Gehen Sie zur Verwendung von LILO oder ELILO folgendermaßen vor:

[Warning]LILO wird nicht unterstützt.

Von der Verwendung von LILO wird abgeraten, da es von openSUSE nicht unterstützt wird. Verwenden Sie es nur in besonderen Fällen.

Prozedur 17.6. Ändern des Bootloader-Typs

  1. Wählen Sie die Karteireiter Bootloader-Installation.

  2. Wählen Sie unter Bootloader die Option LILO.

  3. Wählen Sie in dem sich öffnenden Dialogfeld folgende Aktionen aus:

    Neue Konfiguration vorschlagen

    Lässt YaST eine neue Konfiguration erstellen.

    Aktuelle Konfiguration konvertieren

    Lässt YaST die aktuelle Konfiguration konvertieren. Es ist möglich, dass beim Konvertieren der Konfiguration einige Einstellungen verloren gehen.

    Neue Konfiguration ohne Vorschlag erstellen

    Erstellt eine benutzerdefinierte Konfiguration. Diese Aktion ist während der Installation von openSUSE nicht verfügbar.

    Auf Festplatte gespeicherte Konfiguration einlesen

    Lädt Ihre eigene Datei /etc/lilo.conf. Diese Aktion ist während der Installation von openSUSE nicht verfügbar.

  4. Klicken Sie zweimal auf OK, um die Änderungen zu speichern.

Während der Konvertierung wird die alte GRUB-Konfiguration gespeichert. Wenn Sie sie verwenden möchten, ändern Sie einfach den Bootloader-Typ zurück in GRUB und wählen Sie Vor der Konvertierung gespeicherte Konfiguration wiederherstellen. Diese Aktion ist nur auf einem installierten System verfügbar.

[Note]Benutzerdefinierter Bootloader

Wenn Sie einen anderen Bootloader als GRUB oder LILO verwenden möchten, wählen Sie Keinen Bootloader installieren. Lesen Sie die Dokumentation Ihres Bootloaders sorgfältig durch, bevor Sie diese Option auswählen.

Deinstallieren des Linux-Bootloaders

Mit YaST können Sie den Linux-Bootloader deinstallieren und den Zustand des MBR vor der Installation wiederherstellen. YaST erstellt während der Installation automatisch eine Sicherung der ursprünglichen MBR-Version und stellt sie bei Bedarf wieder her.

Zum Deinstallieren von GRUB starten Sie YaST und klicken Sie auf System+Bootloader, um das Bootloader-Modul zu starten. Wählen Sie Andere+MBR von Festplatte wiederherstellen aus und bestätigen Sie mit Ja, neu schreiben.

Erstellen von Boot-CDs

Wenn beim Booten Ihres Systems unter Verwendung eines Bootmanagers Probleme auftreten oder wenn der Bootmanager auf Ihrer Festplatte nicht installiert werden kann, ist es auch möglich, eine bootfähige CD mit allen für Linux erforderlichen Startdateien zu erstellen. Hierfür muss ein CD-Brenner in Ihrem System installiert sein.

Für die Erstellung einer bootfähigen CD-ROM mit GRUB ist lediglich eine spezielle Form von stage2 mit Namen stage2_eltorito erforderlich sowie optional eine benutzerdefinierte Datei menu.lst. Die klassischen Dateien stage1 und stage2 sind nicht erforderlich.

Prozedur 17.7. Erstellen von Boot-CDs

  1. Wechseln Sie in ein Verzeichnis, in dem das ISO-Image erstellt werden soll, beispielsweise: cd /tmp

  2. Erstellen Sie ein Unterverzeichnis für GRUB und wechseln Sie in das neu erstellte iso-Verzeichnis:

    mkdir -p iso/boot/grub && cd iso
  3. Kopieren Sie den Kernel, die Dateien stage2_eltorito, initrd, menu.lst und /message nach iso/boot/:

    cp /boot/vmlinuz boot/
    cp /boot/initrd boot/
    cp /boot/message boot/
    cp /usr/lib/grub/stage2_eltorito boot/grub
    cp /boot/grub/menu.lst boot/grub
  4. Ersetzen Sie die Einträge root (hdx, y) durch root (cd), so dass sie auf das CD-ROM-Gerät verweisen. Sie müssen unter Umständen auch die Pfade zur Meldungsdatei, zum Kernel und zur initrd-Datei anpassen, sodass sie auf /boot/message, /boot/vmlinuz bzw. /boot/initrd verweisen. Nachdem Sie die Anpassungen durchgeführt haben, sollte menu.lst wie im folgenden Beispiel aussehen:

    timeout 8
    default 0
    gfxmenu (cd)/boot/message
    
    title Linux
       root (cd)
       kernel /boot/vmlinuz root=/dev/sda5 vga=794 resume=/dev/sda1 \
       splash=verbose showopts
       initrd /boot/initrd

    Verwenden Sie splash=silent anstelle von splash=verbose, um zu vermeiden, dass beim Bootvorgang Bootmeldungen angezeigt werden.

  5. Erstellen Sie das ISO-Image mit dem folgenden Befehl:

    genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot \
    -boot-load-size 4 -boot-info-table -iso-level 2 -input-charset utf-8 \
    -o grub.iso /tmp/iso
  6. Schreiben Sie die so erstellte Datei namens grub.iso unter Verwendung Ihres bevorzugten Dienstprogramms auf eine CD. Brennen Sie das ISO-Image nicht als Datendatei, sondern verwenden Sie die Option zum Brennen eines CD-Images, die in Ihrem Dienstprogramm angeboten wird.

Der grafische SUSE-Bildschirm

Der grafische SUSE-Bildschirm wird auf der ersten Konsole angezeigt, wenn die Option vga=<Wert> als Kernel-Parameter verwendet wird. Bei der Installation mit YaST wird diese Option automatisch in Abhängigkeit von der gewählten Auflösung und der verwendeten Grafikkarte aktiviert. Sie haben bei Bedarf drei Möglichkeiten, den SUSE-Bildschirm zu deaktivieren:

Den SUSE-Bildschirm bei Bedarf deaktivieren

Geben Sie den Befehl echo 0 >/proc/splash in der Kommandozeile ein, um den grafischen Bildschirm zu deaktivieren. Um ihn wieder zu aktivieren, geben Sie den Befehl echo 1 >/proc/splash ein.

Den SUSE-Bildschirm standardmäßig deaktivieren

Fügen Sie der Bootloader-Konfiguration den Kernel-Parameter splash=0 hinzu. Weitere Informationen hierzu finden Sie in Kapitel 17, Der Bootloader GRUB. Wenn Sie jedoch den Textmodus (Standardeinstellung in früheren Versionen) bevorzugen, legen Sie Folgendes fest: vga=normal.

Den SUSE-Bildschirm vollständig deaktivieren

Kompilieren Sie einen neuen Kernel und deaktivieren Sie die Option zum Verwenden des Eröffnungsbildschirms anstelle des Bootlogos im Menü Framebuffer-Unterstützung. Wenn Sie im Kernel die Framebuffer-Unterstützung deaktiviert haben, ist der Eröffnungsbildschirm automatisch auch deaktiviert.

[Warning]Keine Unterstützung

Wenn Sie einen eigenen Kernel kompilieren, kann SUSE dafür keinen Support garantieren.

Fehlersuche

In diesem Abschnitt werden einige der Probleme, die beim Booten mit GRUB auftreten können, sowie deren Lösungen behandelt. Einige der Probleme werden in den Artikeln in der Support-Datenbank unter http://en.opensuse.org/Portal:Support_database beschrieben. Verwenden Sie das Dialogfeld "Suche", um nach Schlüsselwörtern wie GRUB, boot und Bootloader zu suchen.

GRUB und XFS

XFS lässt im Partitions-Bootblock keinen Platz für stage1. Sie dürfen also als Speicherort des Bootloaders keinesfalls eine XFS-Partition angeben. Um dieses Problem zu beheben, erstellen Sie eine separate Bootpartition, die nicht mit XFS formatiert ist.

GRUB meldet GRUB Geom Error

GRUB überprüft die Geometrie der angeschlossenen Festplatten beim Booten des Systems. In seltenen Fällen macht das BIOS hier inkonsistente Angaben, sodass GRUB einen "GRUB Geom Error" meldet. Aktualisieren Sie in diesem Fall das BIOS.

GRUB gibt diese Fehlermeldung auch aus, wenn Linux auf einer zusätzlichen Festplatte im System installiert wurde, diese aber nicht im BIOS registriert ist. Der erste Teil des Bootloaders stage1 wird korrekt gefunden und geladen, die zweite Stufe stage2 wird jedoch nicht gefunden. Dieses Problem können Sie umgehen, indem Sie die neue Festplatte unverzüglich im BIOS registrieren.

System mit mehreren Festplatten startet nicht

Möglicherweise wurde die Bootsequenz der Festplatten während der Installation von YaST falsch ermittelt. So erkennt GRUB die IDE-Festplatte unter Umständen als hd0 und die SCSI-Festplatte als hd1, obwohl im BIOS die umgekehrte Reihenfolge (SCSI vor IDE) angegeben ist.

Korrigieren Sie in solchen Fällen mithilfe der GRUB-Kommandozeile beim Booten die verwendeten Festplatten. Bearbeiten Sie im gebooteten System die Datei device.map, um die neue Zuordnung dauerhaft festzulegen. Überprüfen Sie anschließend die GRUB -Gerätenamen in den Dateien /boot/grub/menu.lst und /boot/grub/device.map und installieren Sie den Bootloader mit dem folgenden Befehl neu:

grub --batch < /etc/grub.conf
Windows von der zweiten Festplatte booten

Einige Betriebssysteme, z. B. Windows, können nur von der ersten Festplatte gebootet werden. Wenn ein solches Betriebssystem auf einer anderen als der ersten Festplatte installiert ist, können Sie für den entsprechenden Menüeintrag einen logischen Tausch veranlassen.

...
title windows
   map (hd0) (hd1)
   map (hd1) (hd0)
   chainloader(hd1,0)+1
...

In diesem Beispiel soll Windows von der zweiten Festplatte gestartet werden. Zu diesem Zweck wird die logische Reihenfolge der Festplatten mit map getauscht. Die Logik innerhalb der GRUB-Menüdatei ändert sich dadurch jedoch nicht. Daher müssen Sie bei chainloader nach wie vor die zweite Festplatte angeben.

Weiterführende Informationen

Umfassende Informationen zu GRUB finden Sie auf der Webseite unter http://www.gnu.org/software/grub/. Ausführliche Informationen finden Sie auch auf der Infoseite für den Befehl grub. Um weitere Informationen zu bestimmten Themen zu erhalten, können Sie auch "GRUB" als Suchwort in der Supportdatenbank unter http://en.opensuse.org/Portal:Support_database/ eingeben.