16.6 Den neuen Kern installieren, den Betriebssystemstarter aktualisieren

Der Kern befindet sich in arch/i386/boot/bzImage (oder zImage falls Sie make zImage gewählt haben). Normalerweise werden Kerne im Verzeichnis /boot abgelegt. Sie müssen auch die Datei System.map dort ablegen, um sicherzustellen, dass einige Programme (etwa top) richtig laufen. Nun werden wir wieder etwas üben: benennen Sie diese Dateien anhand der durchgebauten Kernversion um. Nehmen wir an, dass Ihr Kern 2.4.10-foo heißt. Dann müssen Sie folgendes eingeben:

$ cp arch/i386/boot/bzImage /boot/vmlinux-2.4.10-foo
$ cp System.map /boot/System.map-2.4.10-foo

Jetzt müssen Sie aber noch den GNU/Linux-Starter konfigurieren. Sie haben in Ihrer Mandrake Linux-Distribution zwei Möglichkeiten: grub und LILO.

16.6.1 GRUB aktualisieren

Es macht Sinn, den aktuellen Kern weiterhin starten zu können! Der einfachste Weg, grub zu aktualisieren ist die Verwendung von DrakBoot (siehe Kapitel Ihre BS-Start-Einstellungen ändern im Benutzerhandbuch). Alternativ können sie die Konfiguration auch manuell wie Folgt anpassen:

Editieren Sie die Datei /boot/grub/menu.lst. Bewahren Sie sich immer die Möglichkeit Ihren momentan laufenden Kern starten zu können. Es folgt eine typische Datei /boot/grub/menu.lst nach der Installation von Mandrake Linux und vor irgendwelchen Veränderungen.

timeout 5
color black/cyan yellow/cyan
i18n (hd0,4)/boot/grub/messages
keytable (hd0,4)/boot/de-latin1.klt
default 0

title linux
kernel (hd0,4)/boot/vmlinuz root=/dev/hda5  

title failsafe
kernel (hd0,4)/boot/vmlinuz root=/dev/hda5  failsafe 

title windows
root (hd0,0)
makeactive
chainloader  +1 

title floppy
root (fd0)
chainloader +1

Wie Sie sehen, besteht diese Datei aus zwei Blöcken: dem Kopf mit allgemeinen Optionen (die ersten fünf Zeilen) und den Einträgen, die jeweils zu einem GNU/Linux-Kern oder einem sonstigem BS gehören. timeout setzt die Zeit (in Sekunden) fest, die Sie zur Auswahl eines Betriebssystems haben - hier also fünf Sekunden. Nach Ablauf dieser Zeit wird das vor eingestellte BS geladen. Dieses wird mit der Zeile default festgelegt (hier wird also der erste Eintrag vor eingestellt). Die Zeile color setzt die Farben des Menüs, die Zeile i18n wo die Willkommensmeldung zu finden ist (hier: auf der fünften Partition, also der ersten logischen der ersten Festplatte). Die Option keytable ist für die Einstellung der Tastaturbelegung an der Eingabeaufforderung verantwortlich (hier wird eine deutsche Tastatur eingestellt). Die hd(x,y) Einträge der Datei beziehen sich auf Partition y+1 auf Platte x+1, die das BIOS vorgibt.

Kommen wir nun zum Bereich mit den BS-Einträgen. Wie Sie sehen, haben wir vier verschiedene Möglichkeiten: linux, failsafe, windows und floppy.

Anmerkung

In Abhängigkeit zur Sicherheitsebene, die Sie eingestellt haben, sind eventuell einige der oben beschriebenen Einträge in Ihrer Datei nicht vorhanden.

Aber zurück zum eigentlich Thema. Wir wollen nun einen weiteren Eintrag mit dem neuen Kern hinzufügen. In diesem Beispiel werden wir ihn vor alle anderen Einträge setzen, Sie können ihn aber auch an einer anderen Stelle eintragen.

title Mein Kern
kernel (hd0,4)/boot/vmlinuz-2.4.10-foo root=/dev/hda5

Vergessen Sie nicht die Datei nach Ihren Anforderungen anzupassen. Beispielsweise muss Ihre Verzeichnisbaum-Wurzel ja nicht auf /dev/hda5 zu finden sein.

Das war's. Im Gegensatz zu LILO müssen Sie nichts weiter tun, nur Ihr System neu starten, um mit Ihrem nagelneuen Kern glücklich zu werden.

Doch halt! Haben Sie vielleicht Ihren Kern mit Framebuffer-Unterstützung kompiliert? Dann wollen Sie diese doch wahrscheinlich auch nutzen. Fügen Sie also eine Anweisung an den Kern hinzu, aus der hervorgeht, in welcher Auflösung er starten soll. Die Liste aller möglichen Modi finden Sie in /usr/src/linux/Documentation/fb/vesafb.txt oder in den Ihrer Konfiguration entsprechenden Dateien. Für den Modus 800x600 und 32 Bit[1], die Modenummer ist 0x315, geben Sie also den folgenden Befehl an:

vga=0x315

und der Eintrag sieht folgendermaßen aus:

title Mein Kern
kernel (hd0,4)/boot/vmlinuz-2.4.10-foo root=/dev/hda5 vga=0x315

Für weitere Informationen lesen Sie bitten in den Info-Seiten zu grub nach (info grub).

16.6.2 LILO aktualisieren

Der einfachste Weg, LILO zu aktualisieren ist die Verwendung von DrakBoot (siehe Kapitel Ihre BS-Start-Einstellungen ändern im Benutzerhandbuch). Alternativ können sie die Konfiguration auch manuell wie Folgt anpassen:

Bei LILO müssen Sie die Datei /etc/lilo.conf anpassen. Eine typische lilo.conf sieht zu Anfang so aus:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
vga=normal
default=linux
keytable=/boot/de-latin1.klt
lba32
prompt
timeout=50
message=/boot/message
image=/boot/vmlinuz-2.4.8-17mdk
        label=linux
        root=/dev/hda1
        read-only
other=/dev/hda2
        label=dos
        table=/dev/hda 

lilo.conf besteht aus einer Hauptsektion, gefolgt von einem Abschnitt für jedes zu startende Betriebssystem. Bei der oben gezeigten Datei besteht die Hauptsektion aus folgenden Anweisungen:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
vga=normal
default=linux
keytable=/boot/de-latin1.klt
lba32
prompt
timeout=50
message=/boot/message

,,boot=`` sagt LILO, wohin er sich installieren soll. In unserem Fall ist das der MBR (Master Boot Record) der ersten IDE-Festplatte. Möchten Sie eine LILO-Diskette erstellen, ersetzen Sie /dev/hda durch /dev/fd0. prompt teilt LILO mit, beim Start die Eingabeaufforderung anzuzeigen und ,,timeout=50``, das Standardsystem nach 5 Sekunden zu starten. Wenn Sie die timeout-Zeile entfernen, wartet LILO solange, bis Sie etwas eingegeben haben.

Es folgt eine linux-Abschnitt:

image=/boot/vmlinuz-2.4.8-17mdk
        label=linux
        root=/dev/hda1
        read-only

Eine ,,linux``-Sektion beginnt immer mit ,,image=``, gefolgt vom vollständigen Pfad zu einem gültigen GNU/Linux-Kern. Wie jede Sektion enthält sie ein ,,label`` zur eindeutigen Identifikation. ,,root`` legt fest, welche Partition die Verzeichnisbaum-Wurzel enthält. Dieser Eintrag kann bei Ihnen anders lauten. ,,read-only`` weist LILO an, dieses Dateisystem beim Start als schreibgeschützt einzuhängen. Diese Anweisung ist wichtig, um einen Konsistenztest des Dateisystems durchführen zu können. Sollten Sie ihn weglassen, erhalten Sie eine Warnung.

Es folgt die Windows-Sektion:

other=/dev/hda2
        label=dos
        table=/dev/hda 

Ein Abschnitt um andere Betriebssysteme zu starten, wird eingeleitet durch das Wort ,,other``. Das Argument bezeichnet den Bootsektor des Systems, hier den eines Windows-Systems. Um den Startsektor für dieses System zu finden, muss LILO noch wissen, wo sich die Partitionstabelle der betreffenden Festplatte befindet (,,table``). ,,label`` dient wiederum zur Identifikation.

Nun wird es Zeit, den neuen Kern einzubinden. Sie können den Abschnitt an irgend einer Stelle nach dem Globalen Abschnitt platzieren. Passen Sie nur auf, dass Sie keinen andern Abschnitt ,,zerteilen``:

image=/boot/vmlinux-2.4.10-foo
        label=foo
        root=/dev/hda1
        read-only

Sie müssen natürlich daran denken, die Einstellungen an Ihre reale Situation anzupassen - daher wurde hier auch ein anderer Fall als im grub Abschnitt gewählt.

Wenn Sie Ihren Kern mit Unterstützung für den Framebuffer kompiliert haben, richten Sie sich nach dem obigen Abschnitt. Der Unterschied besteht darin, dass die Anweisung eine eigene Zeile bekommt:

vga=0x315

Nach diesen Änderungen, sollte Ihre lilo.conf (mit einigen zusätzlichen Kommentaren versehen, eingeleitet durch #) in etwa so aussehen:

#
# Haupt-Abschnitt
#
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
# Wir wollen im VGA-Modus starten. Der Framebuffer ändert die Auflösung 
# selbst, wenn wir das wollen:
vga=normal
# Unser Willkommensgruß ...
message=/boot/message
# Was unser Standard-Betriebssystem werden soll. Sagen wir, unser 
# eigener Kern:
default=foo
# Eingabeaufforderung zeigen ...
prompt
# ... 5 Sekunden warten
timeout=50
#
# Unser neuer Kern: das Standard-BS
#
image=/boot/vmlinux-2.4.10-foo
        label=foo
        root=/dev/hda1
        read-only
# Fall VESA Framebuffer verwendet werden soll:
        vga=0x315
#
# Der original Kern
#
image=/boot/vmlinuz-2.4.8-17mdk
        label=linux
        root=/dev/hda1
        read-only
#
# Die "andere Seite"
#
other=/dev/hda2
        label=dos
        table=/dev/hda

So oder so ähnlich könnte Ihre lilo.conf nun aussehen. Passen Sie diese Datei Ihrer Konfiguration an!

Da nun alles richtig eingestellt sein sollte müssen Sie LILO noch dazu veranlassen, den Boot-Sektor der Platte zu aktualisieren:

$ lilo
Added foo *
Added linux
Added dos
$

Auf diese Weise können Sie so viele Kerne kompilieren wie Sie wollen: fügen Sie einfach so viele Sektionen hinzu wie Sie benötigen. Wenn Sie möchten, können Sie Ihr System jetzt neu starten, um Ihr Gesellenstück zu testen :-)

Fußnoten

[1]

8 Bit bedeutet 28 also 256 Farben, 16 Bit 216, also 65536 und 24 bzw. 32 Bit jeweils 224, also mehr als 16 Millionen Farben.


[Tux vor dem MandrakeSoft Stern] Linux ist ein eingetragenes Warenzeichen von Linus Torvalds. Alle anderen Warenzeichen und Copyrights sind das Eigentum ihrer Inhaber.
Sofern nichts anderes Angaben ist, unterliegen die Inhalte der Seiten sowie alle Bilder dem Copyright von MandrakeSoft S.A. und MandrakeSoft Inc. 2001.
http://www.mandrakelinux.com/