Inhaltsverzeichnis
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:
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 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
).
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.
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“.
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
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:
Das Hintergrundbild message
befindet sich im Verzeichnis der obersten Ebene der Partition /dev/sda5
.
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.
Der erste Menüeintrag title linux
soll standardmäßig gebootet werden.
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“.
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.
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
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
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.
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.
Bootloader-Konfiguration nach einer Kernel-Aktualisierung | |
---|---|
Bei jeder Installation eines neuen Kernels schreibt der Perl Bootloader eine neue Konfigurationsdatei (z.B. |
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
.
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.
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:
Verschlüsseln Sie an der root-Eingabeaufforderung das Passwort mithilfe von grub-md5-crypt:
# grub-md5-crypt Password: **** Retype password: **** Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/
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.
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.
Mit dem YaST-Modul ist die Konfiguration des Bootloaders auf Ihrem openSUSE-System am einfachsten. Wählen Sie im YaST-Kontrollzentrum Abbildung 17.1, „Bootloader-Einstellungen“ zeigt dies die aktuelle Bootloader-Konfiguration des Systems und ermöglicht Ihnen, Änderungen vorzunehmen.
+ . Wie inAuf der Registerkarte Abschnitt 17.1, „Booten mit GRUB“.
können Sie die Bootloader-Abschnitte für die einzelnen Betriebssysteme bearbeiten, ändern und löschen. Klicken Sie auf , 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 . Um ein vorhandenes Schema zu löschen, wählen Sie das Schema aus und klicken Sie auf . Wenn Sie nicht mit den Bootloader-Optionen vertraut sind, lesen Sie zunächstVerwenden Sie die Registerkarte
, um die Einstellungen in Bezug auf Typ, Speicherort und erweiterte Bootloader-Einstellungen anzuzeigen und zu ändern.Klicken Sie auf Abschnitt 17.1, „Booten mit GRUB“. Sie können die vorhandene Konfiguration auch löschen und eine oder sich von YaST . 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 aus.
, um auf erweiterte Konfigurationsoptionen zuzugreifen. Über den integrierten Editor können Sie die GRUB-Konfigurationsdateien ändern. Weitere Informationen finden Sie inUm den Speicherort des Bootloaders zu ändern, gehen Sie wie folgt vor:
Prozedur 17.2. Speicherort des Bootloaders ändern
Wählen Sie den Karteireiter
und anschließend eine der folgenden Optionen für :Der Bootloader wird in den MBR des ersten Laufwerks installiert (entsprechend der im BIOS voreingestellten Bootreihenfolge).
Der Bootloader wird im Bootsektor der Partition /
installiert (dies ist der Standard).
Der Bootloader wird im Bootsektor der Partition /boot
installiert.
Der Bootloader wird in den Container der erweiterten Partition installiert.
Mit dieser Option können Sie den Speicherort des Bootloaders manuell angeben.
Klicken Sie zum Anwenden der Änderungen auf
.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
Öffnen Sie die Karteireiter
.Klicken Sie auf
.Ändern Sie den Wert für
, indem Sie einen neuen Wert eingeben und mit der Maus auf den entsprechenden Pfeil klicken oder die Pfeiltasten der Tastatur verwenden.Klicken Sie zweimal auf
, um die Änderungen zu speichern.Mit diesem YaST-Modul können Sie zum Schutz des Bootvorgangs auch ein Passwort einrichten. Damit wird ein zusätzlicher Grad an Sicherheit geboten.
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:
Erweiterte Boot-Optionen lassen sich über
+ konfigurieren. Normalerweise sollte es nicht erforderlich sein, die Standardeinstellungen zu ändern.Aktiviert die Partition, die den Bootloader enthält. Einige ältere Betriebssysteme, z. B. Windows 98, können nur von einer aktiven Partition booten.
Ersetzt den aktuellen MBR durch generischen, Betriebssystem-unabhängigen Code.
Stellt GRUB in den Fehlersuchmodus um, in dem Meldungen über die Plattenaktivität angezeigt werden.
Blendet das Bootmenü aus und bootet den Standardeintrag.
Startet Trusted GRUB, das verbürgte Computerfunktionen unterstützt.
Aktiviert oder deaktiviert akustische Signale in GRUB.
Pfad zur Grafikdatei, die bei der Anzeige des Boot-Bildschirms verwendet wird.
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.
Legen Sie den Bootloader-Typ unter
fest. In openSUSE wird standardmäßig der Bootloader GRUB verwendet. Gehen Sie zur Verwendung von LILO oder ELILO folgendermaßen vor: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
Wählen Sie die Karteireiter
.Wählen Sie unter
die Option .Wählen Sie in dem sich öffnenden Dialogfeld folgende Aktionen aus:
Lässt YaST eine neue Konfiguration erstellen.
Lässt YaST die aktuelle Konfiguration konvertieren. Es ist möglich, dass beim Konvertieren der Konfiguration einige Einstellungen verloren gehen.
Erstellt eine benutzerdefinierte Konfiguration. Diese Aktion ist während der Installation von openSUSE nicht verfügbar.
Lädt Ihre eigene Datei /etc/lilo.conf
. Diese Aktion ist während der Installation von openSUSE nicht verfügbar.
Klicken Sie zweimal auf
, 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
. Diese Aktion ist nur auf einem installierten System verfügbar.Benutzerdefinierter Bootloader | |
---|---|
Wenn Sie einen anderen Bootloader als GRUB oder LILO verwenden möchten, wählen Sie . Lesen Sie die Dokumentation Ihres Bootloaders sorgfältig durch, bevor Sie diese Option auswählen. |
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
+ , um das Bootloader-Modul zu starten. Wählen Sie + aus und bestätigen Sie mit .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
Wechseln Sie in ein Verzeichnis, in dem das ISO-Image erstellt werden soll, beispielsweise: cd /tmp
Erstellen Sie ein Unterverzeichnis für GRUB und wechseln Sie in das neu erstellte iso
-Verzeichnis:
mkdir -p iso/boot/grub && cd iso
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
Ersetzen Sie die Einträge root (hd
durch x
, y
)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.
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
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 wird auf der ersten Konsole angezeigt, wenn die Option vga=
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:
<Wert>
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.
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
.
Kompilieren Sie einen neuen Kernel und deaktivieren Sie die Option zum
. Wenn Sie im Kernel die Framebuffer-Unterstützung deaktiviert haben, ist der Eröffnungsbildschirm automatisch auch deaktiviert.Keine Unterstützung | |
---|---|
Wenn Sie einen eigenen Kernel kompilieren, kann SUSE dafür keinen Support garantieren. |
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.
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 ü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.
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
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.
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.