[ << ]
[ < ]
[ Hauptseite ]
[ > ]
[ >> ]
10. Konfiguration des Bootloaders
Inhalt:
10.a. Eine Wahl treffen
Einleitung
Nun, da Ihr Kernel konfiguriert und kompiliert ist und die notwendigen
Systemkonfigurationsdateien richtig konfiguriert sind, ist es Zeit ein Programm
zu installieren, dass Ihren Kernel lädt wenn Sie Ihr System starten. Solch ein
Programm nennt man einen Bootloader.
Für x86 bietet Gentoo Linux GRUB und LILO.
Bevor Sie jedoch einen der beiden Bootloader installieren, informieren wir Sie
darüber, wie der Framebuffer (natürlich nur wenn Sie diesen einrichten wollen)
eingerichtet wird. Mit Framebuffer können Sie die Linux-Kommandozeile mit
(begrenzten) grafischen Erweiterungen (wie die netten Bootsplash-Bilder, die
Gentoo liefert) nutzen.
Optional: Framebuffer
Wenn Sie Ihren Kernel mit Framebufferunterstützung konfiguriert haben
(oder die genkernel Standardkonfiguration nutzen),
müssen Sie ein vga und/oder eine video Anweisung zu Ihrer
Bootloaderkonfigurationsdatei hinzufügen, wenn sie Framebuffer benötigen.
Zuerst müssen Sie wissen, welchen Typ von Framebuffer-Gerät Sie verwenden. Wenn
Sie einen von Gentoo gepatchten Kernel verwenden (wie die gentoo-sources)
hatten Sie die Möglichkeit vesafb-tng als VESA driver type
auszuwählen (welches der Standard für diese Kernelquellen ist). Wenn dies der
Fall ist benutzen Sie vesafb-tng und benötigen die vga Anweisung
nicht. Andernfalls benutzen Sie den vesafb Treiber und
müssen diese Anweisung setzen.
Die vga Anweisung kontrolliert die Größe und die Farbtiefe des
Framebuffers für vesafb. Wie in
/usr/src/linux/Documentation/fb/vesafb.txt (wird mit einem
Kernelquellpaket installiert) erwähnt, müssen Sie dem Kernel die VESA-Nummer
passend zur gewünschten Auflösung und Farbtiefe mitgeben.
Die folgende Tabelle listet die verfügbaren Auflösungen und Farbtiefen auf und
zeigt die dazu die Werte, welche an die vga Anweisung übergeben werden
müssen.
|
640x480 |
800x600 |
1024x768 |
1280x1024 |
| 256 |
0x301 |
0x303 |
0x305 |
0x307 |
| 32k |
0x310 |
0x313 |
0x316 |
0x319 |
| 64k |
0x311 |
0x314 |
0x317 |
0x31A |
| 16M |
0x312 |
0x315 |
0x318 |
0x31B |
Die video Anweisung kontrolliert Framebuffer-Display-Optionen. Es
benötigt den Framebuffer-Treiber (vesafb für 2.6 Kernel, vesa für
2.4 Kernel) gefolgt von den Kontrollanweisung die Sie aktivieren möchten. Alle
Variablen sind in /usr/src/linux/Documentation/fb/vesafb.txt
gelistet, wir möchten Sie daher nur über die drei wichtigsten informieren:
| Option |
Beschreibung |
| ywrap |
Davon ausgehend, dass die Grafik ihren Speicher umbrechen kann (das heißt
am Anfang fortfahren, wenn das Ende erreicht wurde)
|
| mtrr:n |
Einrichten der MTRR-Register. n kann folgendes sein:
0 - deaktiviert
1 - uncachable
2 - write-back
3 - write-combining
4 - write-through
|
| mode |
(nur vesafb-tng)
Setzen der Auflösung, Farbtiefe und Wiederholungsrate. Zum Beispiel ist
1024x768-32@85 für eine Auflösung von 1024x768, 32-Bit Farbtiefe und
eine Wiederholungsrate von 85 Hz.
|
Das Ergebnis dieser beiden Anweisungen könnte etwas wie vga=0x318
video=vesafb:mtrr:3,ywrap oder
video=vesafb:mtrr:3,ywrap,1024x768-32@85 sein. Schreiben Sie sich diese
Einstellung auf, Sie werden sie bald benötigen!
Fahren Sie nun mit der Installation von GRUB oder
Lilo fort.
10.b. Standard: Die Benutzung von GRUB
Das Verstehen von GRUBs Terminologie
Der wichtigste Teil beim Verstehen von GRUB ist, sich mit der Art vertraut zu
machen, in der GRUB Festplatten und Partitionen benennt. Ihre Linux-Partition
/dev/hda1 (für IDE-Laufwerke) oder /dev/sda1 (für
SATA/SCSI-Laufwerke) wird höchstwahrscheinlich (hd0,0) unter GRUB
genannt. Beachten Sie die Klammern um das hd0,0, denn diese sind
Pflicht.
Festplatten zählen von Null anstatt von "a" und Partitionen starten bei Null
anstatt bei Eins. Beachten Sie bitte auch, dass mit den hd-Geräten nur
Festplatten gezählt werden, keine ATAPI-IDE Geräte wie CD-ROM-Laufwerke oder
-Brenner. Dasselbe Schema wird auch bei SCSI-Laufwerken verwendet.
(Normalerweise erhalten sie höhere Nummern als IDE-Laufwerke, außer wenn das
BIOS konfiguriert ist von SCSI zu booten.) Wenn Sie dem BIOS angeben von einer
anderen Festplatte zu booten (zum Beispiel Primary Slave), ist diese
Festplatte für grub hd0.
Vorausgesetzt Sie haben eine Festplatte an /dev/hda, einen CD-ROM
Laufwerk an /dev/hdb, einen Brenner an /dev/hdc, eine
zweite Festplatte an /dev/hdd und keine SCSI-Festplatte, dann wird
/dev/hdd7 übersetzt in (hd1,6). Es mag schwierig
klingen und das ist es in der Tat auch, aber wie wir werden sehen, bietet GRUB
einen Tab-Komplettierungsmechanismus an, der hilfreich ist für diejenigen von
Ihnen die viele Festplatten und Partitionen haben und sich ein wenig verloren
fühlen mit dem Nummerierungssystem von GRUB.
Nachdem man dafür jetzt ein Gefühl erlangt hat, ist es nun Zeit GRUB zu
installieren.
Installieren von GRUB
Um GRUB zu installieren, führen Sie ein emerge aus.
Befehlsauflistung 1: Installieren von GRUB |
# emerge grub
|
Obwohl GRUB nun installiert ist, müssen Sie trotzdem noch eine
Konfigurationsdatei dafür schreiben und GRUB im MBR platzieren, so dass
GRUB automatisch Ihren neu erstellten Kernel bootet. Erstellen Sie
/boot/grub/grub.conf mit nano (oder wenn gewünscht einem
anderen Editor):
Befehlsauflistung 2: Erstellen von /boot/grub/grub.conf |
# nano -w /boot/grub/grub.conf
|
Nun wollen wir eine grub.conf schreiben. Folgend finden Sie zwei
mögliche grub.conf für das Partitionierungsbeispiel, das wir in
diesem Leitfaden verwendet haben. Wir werden nur die erste
grub.conf ausführlich erläutern. Stellen Sie sicher, dass Sie den
Dateinamen Ihres Kernel Image und, wenn
zutreffend, den Dateinamen Ihrer initrd benutzen.
-
Die erste grub.conf ist für Leute, die nicht genkernel
benutzt haben
-
Die zweite grub.conf ist für Leute, die genkernel
benutzt haben
Notiz:
Wenn Ihr Root-Dateisystem JFS ist, müssen Sie "ro" zu dem Kernelaufruf
hinzufügen, da JFS sein Protokolldatei liest, bevor es ein read-write mounten
zulässt.
|
Befehlsauflistung 3: grub.conf für Nicht-genkernel Benutzer |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title=Gentoo Linux 2.6.17-r5
root (hd0,0)
kernel /boot/kernel-2.6.17-gentoo-r5 root=/dev/hda3
title=Gentoo Linux 2.6.17-r5 (Rescue)
root (hd0,0)
kernel /boot/kernel-2.6.17-gentoo-r5 root=/dev/hda3 init=/bin/bb
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Befehlsauflistung 4: grub.conf für genkernel Benutzer |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title=Gentoo Linux 2.6.17-r5
root (hd0,0)
kernel /boot/kernel-genkernel-x86-2.6.17-gentoo-r5 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev
initrd /boot/initramfs-genkernel-x86-2.6.17-gentoo-r5
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Notiz:
Das udev am Ende der Kernel Zeile ist als Workaround zu einem Bug in
einigen genkernel Versionen nötig, wenn Sie udev benutzen (was Standard
ist).
|
Wenn Sie ein anderes Partitionierungschema verwenden und/oder Kernel-Image,
passen Sie Ihre Konfiguration entsprechend an. Stellen Sie jedoch sicher, dass
alles was einem GRUB-Device folgt (wie z.B. (hd0,0)) relativ zum
Mountpoint ist, nicht dem Root. Mit anderen Worten,
(hd0,0)/grub/splash.xpm.gz ist in Wirklichkeit
/boot/grub/splash.xpm.gz denn (hd0,0) ist
/boot.
Außerdem wird, wenn Sie ein anderes Partitionsschema verwendet haben und
/boot nicht auf eine separate Partition gelegt haben, das
/boot Präfix wirklich benötigt. Wenn Sie unserem
vorgeschlagenen Partitionierungsplan gefolgt sind, wird das /boot
Präfix nicht benötigt, aber ein boot Symlink sorgt dafür, dass es
funktioniert. Kurz gesagt, das obige Beispiel sollte funktionieren, egal ob Sie
eine separate /boot Partition haben oder nicht.
Wenn Sie noch zusätzliche Optionen an den Kernel übergeben müssen, fügen Sie
diese einfach zum Ende des Kernelbefehls hinzu. Eine Option übermitteln wir
schon (root=/dev/hda3 oder real_root=/dev/hda3), aber Sie können
auch weitere übermittlen, wie die vorhin erwähnte video und/oder
vga Anweisung für Framebuffer.
Wenn Sie einen 2.6.7 Kernel oder aktueller benutzen und Ihre Festplatte
gejumpert haben, da Ihr BIOS nicht mit großen Festplatten umgehen kann, müssen
Sie hdx=stroke anhängen.
genkernel-Benutzer sollten wissen, dass Ihr Kernel die selben
Bootoptionen benutzt wie der auf der Installations-CD. Zum Beispiel,
wenn Sie SCSI-Geräte haben, sollten Sie doscsi als Kerneloption
hinzufügen.
Speichern Sie nun die grub.conf Datei und verlassen Sie den
Editor. Sie müssen GRUB noch in den MBR (Master Boot Record) schreiben, so dass
GRUB automatisch beim Systemstart ausgeführt wird.
Die GRUB Entwickler empfehlen die Nutzung von grub-install. Wenn
grub-install fehlschlägt haben Sie immer noch die Option GRUB händisch zu
installieren.
Fahren Sie nun mit Standard: Installieren von
GRUB mit grub-install oder Alternativ:
GRUB händisch installieren fort.
Standard: Installieren von GRUB mit grub-install
Um GRUB zu installieren führen sie den grub-install Befehl aus.
grub-install wird jedoch nicht direkt funktionieren, da wir uns
innerhalb einer chroot-Umgebung befinden. Wir müssen /etc/mtab
erstellen, welche alle gemounteten Dateisysteme auflistet. Glücklicherweise
gibt es eine einfach Methode dafür: Kopieren Sie einfach
/proc/mounts nach /etc/mtab; ausgenommen der
rootfs Zeile, wenn Sie keine separate Boot-Partition erstellt haben.
Der folgende Befehl funktioniert in beiden Fällen:
Befehlsauflistung 5: /etc/mtab erstellen |
# grep -v rootfs /proc/mounts > /etc/mtab
|
Jetzt können wir GRUB durch grub-install installieren:
Befehlsauflistung 6: grub-install ausführen |
# grub-install /dev/hda
|
Wenn Sie weitere Fragen GRUB betreffend haben, konsultieren Sie die GRUB FAQ oder das
GRUB Handbuch.
Fahren Sie nun mit Rebooten des Systems fort.
Alternativ: GRUB händisch installieren
Um mit der Konfiguration von GRUB zu beginnen, tippen Sie grub. Ihnen
wird die grub> GRUB-Kommdandozeile präsentiert. Nun müssen Sie
die richtigen Befehle eintippen um den GRUB Boot Record auf Ihrer Festplatte zu
installieren.
Befehlsauflistung 7: Starten der GRUB-Shell |
# grub
|
Notiz:
Wenn das System kein Diskettenlaufwerk hat, fügen Sie die --no-floppy
Option an das obige Kommando an, damit grub nicht nach nicht-existierenden
Diskettenlaufwerken sucht.
|
In der Beispielskonfiguration wollen wir GRUB so installieren, dass es alle
Informationen von der Boot-Partition /dev/hda1 liest
und den GRUB Boot-Record auf dem MBR (Master Boot Record) der Festplatte
installiert, damit das Erste was wir sehen, wenn wir den Computer einschalten
die GRUB Eingabeaufforderung ist. Natürlich müssen Sie die Befehle entsprechend
ändern, wenn Sie von der Beispielkonfiguration während der Installation
abgewichen sind.
Der Tab-Komplettierungsmechanismus von GRUB kann innerhalb von GRUB benutzt
werden. Zum Beispiel, wenn Sie "root (" eintippen, gefolgt von einem
TAB, wird Ihnen eine Liste von Geräten gegeben (solche wie hd0).
Wenn Sie "root (hd0," eintippen, gefolgt von einem TAB, wird Ihnen eine
Liste von verfügbaren Partitionen angezeigt, unter denen Sie auswählen können
(solche wie hd0,0).
Durch Benutzung der Tab-Komplettierung sollte das Einrichten von GRUB nicht
allzu schwer sein. Also weiter in der Konfiguration von GRUB!
Befehlsauflistung 8: Installieren von GRUB im MBR |
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
|
Notiz:
Wenn Sie GRUB lieber in einer bestimmten Partition anstatt des MBR installieren
wollen, müssen Sie das setup so verändern, dass es auf die richtige
Partition verweist. Zum Beispiel, wenn Sie GRUB in /dev/hda3
installieren wollen, dann wird der Befehl zu setup (hd0,2). Diese Option
wird in der Regel nur von wenigen Benutzern genutzt.
|
Wenn Sie weitere Fragen GRUB betreffend haben, konsultieren Sie die GRUB FAQ oder das
GRUB Manual.
Fahren Sie nun mit Rebooten des Systems fort.
10.c. Alternativ: Benutzung von LILO
Installieren von LILO
LILO, der LInuxLOader, ist das bewährte und wahre Arbeitstier der Linux
Bootloader. Jedoch hat es eine Fähigkeiten nicht die GRUB hat (was auch der
Grund dafür ist, dass GRUB momentan an Popularität gewinnt). Der Grund warum
LILO noch benutzt wird ist, dass GRUB auf einigen System nicht funktioniert und
LILO es tut. Natürlich gibt es auch den Grund, dass einige Leute mit LILO
bereits vertraut sind und es daher behalten wollen. In jedem Fall: Gentoo
unterstützt beide und anscheinend haben Sie sich für LILO entschieden.
Installieren von LILO ist ein Klacks, benutzen Sie einfach emerge.
Befehlsauflistung 9: Installieren von LILO |
# emerge lilo
|
Konfigurieren von LILO
Um LILO zu konfigurieren, müssen Sie /etc/lilo.conf erstellen.
Starten Sie Ihren Lieblingseditor (in diesem Handbuch benutzen wir nano)
und erstellen die Datei.
Befehlsauflistung 10: Erstellen von /etc/lilo.conf |
# nano -w /etc/lilo.conf
|
Vor einigen Abschnitten baten wir Sie, sich den Namen des Kernel-Images zu
merken, welches Sie erstellt haben. In der folgenden lilo.conf
Beispielsdatei nehmen wir an, dass der Imagename
kernel-2.6.11-gentoo-r3 ist. Wir benutzen zudem das
Beispielpartitionsschema in diesem Beispiel, es gibt zwei verschiedene Teile:
-
Einen für diejenigen, die genkernel nicht benutzt haben um den Kernel
zu bauen
-
Einen für diejenigen, die genkernel zum bauen des Kernel benutzt
haben.
Stellen Sie sicher, dass Sie den Dateinamen Ihres Kernel-Images und, wenn
zutreffend, den Dateinamen Ihrer initrd benutzen.
Notiz:
Wenn Ihr Root-Dateisystem JFS ist, müssen Sie "ro" zu dem Kernelaufruf
hinzufügen, da JFS sein Logfile liest, bevor es ein read-write Mounten zulässt.
|
Befehlsauflistung 11: Beispiel /etc/lilo.conf |
boot=/dev/hda
prompt
timeout=50
default=gentoo
image=/boot/kernel-2.6.17-gentoo-r5
label=gentoo
read-only
root=/dev/hda3
image=/boot/kernel-2.6.17-gentoo-r5
label=gentoo.rescue
read-only
root=/dev/hda3
append="init=/bin/bb"
image=/boot/kernel-genkernel-x86-2.6.17-gentoo-r5
label=gentoo
read-only
root=/dev/ram0
append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev"
initrd=/boot/initramfs-genkernel-x86-2.6.17-gentoo-r5
other=/dev/hda6
label=windows
|
Notiz:
Das udev am Ende der Kernel Zeile ist als Workaround zu einem Bug in
einigen genkernel Versionen nötig, wenn Sie udev benutzen (was Standard
ist).
|
Notiz:
Wenn Sie ein anderes Partitionierungsschema verwenden, passen Sie die
Konfiguration entsprechend an.
|
Wenn Sie weitere Optionen an den Kernel übermitteln müssen, fügen Sie eine
append Anweisung zu dem Abschnitt hinzu. Als Beispiel fügen wir die
video Anweisung hinzu um Framebuffer-Unterstützung zu aktivieren:
Befehlsauflistung 12: Benutzung von append um Kerneloptionen hinzuzufügen |
image=/boot/kernel-2.6.17-gentoo-r5
label=gentoo
read-only
root=/dev/hda3
append="video=vesafb:mtrr,ywrap,1024x768-32@85"
|
Wenn Sie einen 2.6.7, oder aktuelleren, Kernel benutzen und Ihre Festplatte
gejumpert haben, da Ihr BIOS nicht mit großen Festplatten umgehen kann, müssen
Sie hdx=stroke anhängen.
Genkernel-Benutzer sollten wissen, dass Ihr Kernel dieselben
Bootoptionen benutzt wie der auf der Installations-CD. Zum Beispiel, wenn Sie
SCSI Geräte haben, sollten Sie doscsi als Kerneloption hinzufügen
Speichern Sie nun die Datei und verlassen Sie den Editor. Zum Schluss müssen
Sie /sbin/lilo ausführen, damit LILO die /etc/lilo.conf auf
Ihr System anwenden kann (also sich selbst auf der Platte installiert). Behalten
Sie im Hinterkopf, dass Sie /sbin/lilo nach jeder Installation eines
neuen Kernel oder Änderung des Menü ausführen müssen.
Befehlsauflistung 13: Fertigstellen der LILO-Installation |
# /sbin/lilo
|
Wenn Sie weitere Fragen bezüglich Lilo haben, lesen Sie bitte dessen Wikipedia-Seite.
Fahren Sie nun mit Rebooten des Systems fort.
10.d. Rebooten des Systems
Verlassen Sie die chroot Umgebung und unmounten Sie alle gemounteten
Partitionen. Danach tippen Sie den magischen Befehl ein, auf das Sie solange
gewartet haben: reboot.
Befehlsauflistung 14: Unmounten aller Partitionen und Rebooten |
# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot
|
Vergessen Sie nicht die bootbare CD aus dem Laufwerk zu nehmen, sonst wird diese
anstatt Ihres neuen Gentoo Systems gestartet.
Nachdem Sie in die neue Gentoo Installation gebootet haben schließen Sie die
Installation mit Abschließen der Gentoo
Installation ab.
[ << ]
[ < ]
[ Hauptseite ]
[ > ]
[ >> ]
Die Inhalte dieses Dokuments sind unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert.
|