Grub: Festlegen des Bootloaders

von Pete Kelly (critter)

Es ist schon spät und morgen haben Sie einen anstrengenden Tag. Also speichern Sie Ihre Arbeit und fahren den Computer herunter. Am folgenden Tag schalten Sie Ihren Computer ein und Ihnen wird es ganz bange ums Herz, als Sie die Meldung sehen: "Kernelpanic..." oder "Grub Error XY" und Ihr Computer startet nicht.

Was tun? Die gute Nachricht ist, dass Sie, wenn Sie so eine Meldung erhalten lediglich darauf hingewiesen werden, dass es sich dabei nur um ein ein Softwareproblem handelt. Um dies zu beheben müssen Sie nur eine Konfigurationsdatei reparieren oder das Bootloader-Programm neu installieren. Das ist nicht schwer. Es hilft, wenn Sie dabei verstehen was Sie zu erreichen versuchen. Nun, zunächst einmal brauchen wir ein paar Hintergrundinformationen. Ich werde versuchen, diese darzustellen.

Der Boot-Prozess

pic

Wenn Sie den Computer einschalten, muss der Prozessor wissen, was er tun soll. Die Hauptplatine enthält eine Liste der Laufwerke, von denen aus der Computer gestartet werden kann und die Reihenfolge in welcher dies probiert werden soll. Der Prozessor wird auf das erste Laufwerk in der Liste verwiesen. Der Prozessor durchsucht den Beginn des Speicherbereiches des Laufwerks, nach weiteren Informationen. Dieser Speicherbereich gliedert sich in kleinere Bereiche, die sogenannten Sektoren. Der Prozessor liest den ersten Sektor auf dem Laufwerk, der als der Master Boot Record oder MBR bekannt ist. Der erste Sektor irgend einer anderen Partition ist ebenfalls reserviert und heisst der Boot-Sektor. Gibt es hier nicht genügend Platz um alle Informationen für die Bedürfnisse des Prozessors zu speichern, so wird er auf einen Speicherbereich verwiesen, wo der Code für den Rest des Ladeprozesses zu finden ist, damit der Prozessor den weiteren Bootprozess laden und das vollständige booten des Systems fortsetzen kann.

Das Boot-Lade-Programm welches PCLinuxOS verwendet heißt Grub (GRand Unified Bootloader) und der Code welcher im MBR gespeichert wird, ist bekannt als 'stage1 grub.' Das letzte Bit des Codes, welcher in den Arbeitsspeicher geladen wird ist bekannt als 'grub stage2.'

Stage 2 startet den Kernel und richtet ein temporäres Dateisystem im Speicher ein, welches Module und Treiber enthält, die der Kernel benötigen könnte um einen erfolgreichen Systemstart abschließen zu können. Dies geschieht mithilfe eines Dateisystemimage, bekannt als 'initial Ram Disk' oder initrd.img.

Leider haben wir hier ein Problem. Einerseits haben wir stage2, das weiss, wo die Kernel und Initrd auf dem Dateisystem, gespeichert sind, jedoch weiß stage1 nichts über Dateisysteme. Hier kommt stage1_5 dazu. Es gibt mehrere davon und jedes Dateisystem kann spezifische Namen wie e2fs_stage1_5 und reiserfs_stage1_5 haben. Der stage1_5-Code in diesen Dateien ist die Brücke zwischen den beiden, muss aber von stage1 gefunden werden können. Glücklicherweise und aufgrund der Art und Weise wie die Partitionen auf einem Laufwerk angeordnet sind, gibt es immer einige freien Sektoren nach dem ersten reservierten Sektor. Dort ist der zusätzliche Code abgelegt. Stage1 weiß, dass es immer im zweiten Bereich seiner Root-Partition suchen muss um den Code auszuführen. So gelingt es, dass Grub die Dinge im Dateisystem findet.

Wenn ausreichende Arbeiten an den Einstellungen der Dinge gemacht wurden, sodass der Kernel die physischen Dateisysteme verwalten kann, wird die Kontrolle an den Kernel übergeben.

Das ist grob gesagt, wie die Dinge unter PCLinuxOS funktionieren, aber es gibt eine ganze Menge mehr über das Grub-System, als das was hier beschrieben ist und dies ist nicht der einzige Weg, um das System zu booten.

Recovery

Was folgt, ist auf Distributionen von PCLinuxOS anwendbar und hat bei mir immer funktioniert. Für andere Systeme müssen unter Umständen einige Modifikationen vorgenommen werden. Ubuntu und alle Versionen die auf Ubuntu basieren, verwenden inzwischen grub2. Hier funktioniert das definitiv nicht.

Wie wir bereits oben gesehen haben müssen Grub drei Dinge mitgeteilt werden, damit Ihr Betriebssystem gebootet werden kann:

  • Wo befindet sich der Kernel
  • Wo befindet sich die initrd
  • Auf welchem Laufwerk oder auf welcher Partition befinden sich stage1_5 und stage2

Diese Informationen werden am häufigsten aus der Konfigurationsdatei für Grub übergeben. Bei PCLinuxOS ist dies die Datei /boot/grub/menu.lst. Einige Systeme nennen diese Datei grub.conf. Wenn die Informationen die von dieser Datei übergeben werden falsch sind, dann gibt ein fehlender Kernel bzw. eine fehlende Initrd einen Grub-Fehler aus und ein falsch definiertes Root-Dateisystem wird eine Kernelpanic verursachen.

Die Informationen können während des Bootvorgangs in der Befehlszeile ausgegeben werden, obwohl dies ein wenig mehr Aufwand erfordert.

Um das System zu reparieren, können Sie von der Live-CD booten, welche Sie zum Installieren von PCLinuxOS verwendet haben. Diese enthält ein Betriebssystem welches im Arbeitsspeicher ausgeführt werden kann damit Sie Ihre beschädigten Dateien auf Ihrer Festplatte reparieren können.

pic

Die Information finden

Die erste Sache, die Sie wissen müssen ist das Laufwerk und die Partition auf denen PCLinuxOS installiert ist. Hierbei kann Ihnen Grub helfen. Nach dem Booten von einer Live-CD, öffnen Sie ein Terminal und erlangen administrative Befugnisse, indem Sie folgendes eingeben:

su <enter>

Sie werden zur Eingabe des Kennworts aufgefordert. Dies ist das administrative oder Root-Passwort und nicht Ihr eigenes Benutzer-Passwort. Bitte beachten Sie, dass Sie jetzt Administrationsrechte besitzen und besonders vorsichtig damit sein sollten, was Sie in der Befehlszeile eingeben.

Geben Sie ein:

grub <enter>

Sie erhalten eine Meldung und gelangen anschließend zur Befehlseingabe von Grub, wo Sie Befehle eingeben und auch den residenten Teil von Grub wiedereinsetzen können:

GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB 
lists possible command completions. Anywhere else TAB lists the possible 
completions of a device/filename. ]

grub>

Bei der neuen Eingabeaufforderung geben Sie folgendes ein:

find /boot/grub/stage2 <enter>

Sie erhalten eine Liste der Partitionen, welche die Grub-stage2-Datei enthalten. Das wird in den meisten Fällen nur eine Partition sein, aber wenn Sie ein Multi-Boot von mehreren Linux-Systemen haben, dann werden Ihnen diese alle angezeigt. Alle Partitionen werden als (hd0, 0) oder so ähnlich aufgeführt, weil Grub hda1 oder sda1 nicht verstehen kann. Grub sieht Sie nur als Laufwerke. Grub fängt beim Zählen bei Null an und nicht bei Eins. Die erste Zahl ist die Nummer des Laufwerks und die zweite Zahl ist die Nummer der Partition. Geben Sie quit ein, bestätigen Sie mit <enter> um Grub zu verlassen.

Jetzt, da wir das Laufwerk und die Partition kennen, wo unser Betriebssystem installiert ist, können wir es einhängen (mounten) und einen Blick darauf werfen. Ich gehe davon aus, dass es die Partition (hd0, 0) ist, die erste Partition der ersten Festplatte. Geben Sie in das Terminal das Folgende als Root ein:

mkdir /a <enter>
mount /dev/sda1 /a <enter>

Sie müssen sda in hda ändern, wenn Sie ein IDE-Laufwerk haben. Falls Sie dies nicht wissen, versuchen Sie die Eingabe von fdisk -l <enter>, um eine Liste der erkannten Laufwerke zu erhalten.

Das Laufwerk ist jetzt auf /a eingehängt (gemountet), und so sollten sich die Kernel und Initrd in/a/boot befinden. Der Name des Kernels und der Initrd sind ziemlich lang und recht komplex, sodass es in der Regel leichter ist einen Link (Verknüpfung) darauf zu setzen. Der Kernel-Name beginnt mit vmlinuz und der Name der Initrd beginnt mit Initrd. Um dieses anzuzeigen, geben Sie Folgendes ein, und notieren Sie sich die Namen.

ls /a/boot/vmlinuz* <enter>
ls /a/boot/initrd* <enter>

Der Name, der mit einem '@' endet ist der Link. Sie können diesen in der Grub-Konfigurationsdatei verwenden.

Benennen der Partitionen

Ich habe nun zwei Links mit dem Namen vmlinuz und initrd.img. Ich weiß ebenfalls, dass das Root-Gerät (hd0, 0) ist, aber ich finde die Verwendung von Bezeichnungen machen das Leben leichter. Geben Sie also ein tune2fs L - kde4/dev/sda1 dies benennt meine Partition mit kde4. Ich benenne auf diese Weise alle meine Partitionen. Wenn Sie es vorziehen, dann können Sie das grafische PCLinuxOS-Control-Center verwenden, indem Sie auf Lokale Festplatten > Partitionen verwalten > In den Experten-Modus wechseln gehen um Ihre Partitionen zu benennen.

Die Konfigurationsdatei

Jetzt kann ich versuchen Ordnung in die Datei menu.lst zu bringen. Ich verwende nano, einen Texteditor für die Befehlszeile welcher wirklich bedienungsfreundlich zum Bearbeiten der Datei ist, aber Sie können auch Ihren bevorzugten Texteditor verwenden, der in der Lage ist eine Datei als reinen Text und ohne Formatierung zu speichern. Öffnen Sie die Datei menu.lst von Ihrem installierten System:

nano /a/boot/grub/menu.lst <enter>

Die ursprüngliche Datei sieht folgendermaßen aus:

timeout 10
color white/blue yellow/blue
gfxmenu (hd0,0)/boot/gfxmenu
default 0

title linux
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=442bec9e-f143-4cc2-866c-d65a92fbac69 resume=UUID=afccaaaa-054d-424b-8a3c-093f1b2a743d splash=silent vga=788
initrd (hd0,0)/boot/initrd.img

title linux-nonfb
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux-nonfb root=UUID=442bec9e-f143-4cc2-866c-d65a92fbac69 resume=UUID=afccaaaa-054d-424b-8a3c-093f1b2a743d
initrd (hd0,0)/boot/initrd.img

title failsafe
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=failsafe root=UUID=442bec9e-f143-4cc2-866c-d65a92fbac69 failsafe
initrd (hd0,0)/boot/initrd.img

Es ist wirklich nicht so kompliziert, wie es aussieht. Die ersten vier Zeilen richten das Menü ein, und jeder Block von den drei Abschnitten ist ein Menüeintrag, auch Strophe genannt. Jede der oben genannten Strophen enthält nur drei Zeilen, obwohl der Schriftsatz des Magazins dies wahrscheinlich anders darstellt. Die Formatierung in der Datei menu.lst ist aber wichtig.

Die drei Zeilen beginnen mit 'title', 'kernel' und 'initrd.' Jeder Eintrag sollte genau eine Zeile lang sein, obwohl die Zeile "kernel" oft eine ziemlich lange Zeile sein wird. Es können sich weitere Zeilen in der Strophe befinden, aber diese Zeilen müssen jeweils auf einer Linie liegen.

pic

Einen neuen Menüeintrag hinzufügen

Ich werde eine neue Strophe (Menüpunkt) am Anfang einfügen, d.h. zwischen der Linie von 'default 0' und derjenigen die 'title linux' heißt:

title kde4
kernel (hd0,0)/boot/mykernel root=LABEL=kde4
initrd (hd0,0)/boot/myinitrd

Stellen Sie sicher, dass Sie vor und nach jeder Strophe eine Leerzeile lassen, sonst weiss Grub nicht, wo die einzelne Strophe beginnt oder endet.

Nach der Eingabe halten Sie die STRG-Taste gedrückt und drücken auf X, Sie werden aufgefordert die Datei zu speichern. Bestätigen Sie dies mit ja.

Das sollte genug sein damit Sie booten können. Sie können es verbessern, bis Sie damit einigermaßen zufrieden sind. Ihre Datei menu.lst könnte aber tatsächlich auch nur aus diesen drei Zeilen bestehen.

Ich habe nicht versucht die Datei zu reparieren. Vielmehr schrieb ich meinen eigenen Satz von Anweisungen in die Grub-Konfigurationsdatei menu.lst, von denen ich wusste, dass sie korrekt sind. Auf diese Art und Weise behalte ich die Kontrolle. Ich habe ebenfalls den ursprünglichen Satz von Anweisungen für Grub intakt gelassen. Später, wenn ich mir sicher bin, dass ich ein bootfähiges System habe, kann ich zurückkehren und die Datei bearbeiten, aber ich habe immer noch den Inhalt der ursprünglichen Datei.

Was das alles bedeutet

Die vier Zeilen am Anfang der Datei menu.lst führen die folgenden Funktionen aus.

Timeout=10 legt die Zeitspanne in Sekunden fest, die Grub vor dem Booten des Standard-Menüelements wartet oder wenn keines definiert ist, das erste Menüelement. Wenn sie zuvor eine beliebige Taste drücken wird der Countdowns abgebrochen.

color white/blue yellow/blue legt die Farben für das Textmenü fest (dies erreichen Sie durch drücken der Escape-Taste während des grafischen Menüs. Es gibt Situationen in denen dies notwendig sein kann). Das erste Zahlenpaar die Vordergrund-/Hintergrund-Farben für den Großteil des Menüs fest, und das zweite Paar dient dazu um die ausgewählte Zeile zu markieren.

gfxmenu (hd0,0)/boot/gfxmenu teilt Grub mit wo das grafische Menü zu finden ist.

default 0 legt das Standard-Menüelement zum booten fest, beginnend von 0 aus.

Um eine einfache Strophe 'ohne Extras' zu verbessern, können wir anfangen Dinge in der Zeile "Kernel" hinzuzufügen.

Durch das hinzufügen von splash=silent vga=788 am Ende dieser Zeile wird das installierte Graphics-Design Plymouth das Ausblenden des scrollenden Textes zulassen. Die Anzahl 788 eignet sich optimal für meisten der Benutzeranzeigen.

Wenn Sie beabsichtigen den Ruhezustand zu verwenden um Ihren Computer herunterzufahren, so müssen Sie Grub mitteilen wo die Daten zum Fortsetzen der Sitzung zu finden sind. Diese sind auf Ihrer Swap-Partition gespeichert und aus diesem Grund sollte diese Partition etwas größer sein als der installierte Arbeitsspeicher damit der Ruhezustand erfolgreich sein kann. Wenn Ihre Swap-Partition /dev/sdb1 ist, so fügen Sie resume=/dev/sdb1 in die Kernel-Zeile hinzu. Wir können die Partition auf diese Weise angeben. Wie Grub Dateisysteme und Laufwerks Notationen versteht, werden wir mit der Zeit hier zu verstehen bekommen.

Eine Standardinstallation von PCLinuxos enthält drei Instanzen.

  • Die erste bietet ein vollständiges grafisches Booten bis zum Anmeldebildschirm.
  • Die nächste wird 'linux-nonfb' oder ähnlich genannt, und erlaubt das Booten ohne einen grafischen Boot-Splash, wodurch Sie durch Systemnachrichten zu sehen bekommen, wie das System bootet. Dies ist für die Problembehandlung hilfreich. Sie können den laufenden Text mit der Scroll Lock-Taste auf Ihrer Tastatur anhalten.
  • Die letzte Instanz, mit dem Namen 'failsafe' bootet in eine eingeschränkte Eingabeaufforderung (Shell) im Einzelbenutzer-Modus, von wo aus Sie einige Verwaltungsaufgaben, z.B. das Dateisystem überprüfen und die Wiederherstellung des Root-Passwortes durchführen können. Wenn alles klappt, dann sollten Sie bei der Eingabe von init 5 zurück bis zu Ihrem Anmelde-Bildschirm kommen.

Diese drei Modi werden erreicht, indem Sie einen der folgenden Einträge in die Zeile "kernel", zwischen den Deklarationen Kernel und der Root-Partition hinzufügen.

BOOT_IMAGE=linux
BOOT_IMAGE=linux-nonfb
BOOT_IMAGE=failsafe

Wenn Sie wissen, dass Ihre neuen Menüpunkte das System erfolgreich booten, dann können Sie die alten löschen, aber erstellen Sie irgendwo eine Sicherungskopie der Datei, auf die Sie jederzeit zugreifen können. Wenn Sie bei irgendeiner Zeile ein '#' voranstellen, dann wird dieses Element nicht im Menü angezeigt. Jede Zeile die mit einem '#' beginnt wird als Kommentar behandelt und nicht ausgeführt.

Neuinstallation des Boot-Loader

Wenn die Einrichtung von Grub selbst beschädigt wurde, dann ist es relativ einfach, sie zurückzusetzen. Öffnen Sie wie vorher ein Terminal, verwenden Sie den Befehl su um Root-Privilegien zu erhalten und starten Sie die Grub-Befehlszeile mit dem Befehl:

grub <enter>

Verwenden Sie das Grub-Kommando find (finden) um herauszufinden, auf welchen Partitionen sich Dateien von Grub befinden.

grub> find /boot/grub/stage2 <enter>
(hd0,0) <--- This is grubs output

Wenn es mehr als eine davon gibt, dann wählen Sie die Partition, wo Sie Ihre reparierte Datei menu.lst haben. Informieren Sie Grub darüber, indem Sie eingeben:

grub> root (hd0,0) <enter>

Verwenden Sie hier die Partition, die Sie gewählt haben.

Filesystem type is ext2fs, partition type 0x83

Teilen Sie nun Root mit, wohin er seine Stage1 Datei setzen soll. Dies ist das Laufwerk, von dem aus Ihr Motherboard-BIOS versuchen wird zu Starten. Beachten Sie, dass keine Partitionsnummer erforderlich ist, da wir ein Gerät angeben.

grub> setup (hd0) <enter>
Checking if "/boot/grub/stage1" exists … yes
Checking if "/boot/grub/stage2" exists … yes
Checking if "/boot/grub/e2fs_stage1_5" exists … yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)" … 17 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p(hd0,0)/boot/grub/stage2 /boot/grub/menu.lst" … succeeded
Done.

Das ist alles, wir sind fertig. Geben Sie quit <enter> ein um Grub zu verlassen.

Multi-booting Betriebssysteme

Wenn Sie in der Lage sein möchten, aus mehreren Distributionen eine zum Booten auszuwählen, dann erreichen Sie dies am einfachsten auf folgende Weise.

Am Ende des Installationsprozesses werden Sie gefragt, wo Sie Grub gerne installieren möchten und der Standardwert ist der MBR der Festplatte welche Sie installiert haben. Wählen Sie stattdessen die Installation partition. Sie werden dann aufgefordert, dass Laufwerk anzugeben, von dem aus gebootet werden soll. Dies ist dasselbe wie die Root - Setup-Reihenfolge, die wir manuell in Grub im Terminal durchgeführt haben.

Sie haben nun zwei menu.lst Dateien, eine im Ordner/boot/grub von der neuen Installation und die Originale. Ich verwende /dev/sda5, welche Grub als (hd0, 4) bekannt ist, für eine neue Installation von Zen-Mini. Fügen Sie die folgenden Zeilen in der ursprünglichen menu.lst hinzu:

title zen-mini
root (hd0,4)
configfile /boot/grub/menu.lst

Wenn ich diese Menüoption auswähle, komme ich zu einer neuen Bildschirmanzeige welche die Menüpunkte und die Grafiken der neuen Installation anzeigt. Ich kann jetzt die Datei menu.lst in der neuen Installation identisch zu meiner Standard-menu.lst haben, mit der einzigen Änderung, dass jedes Vorkommen von (hd0, 0) in (hd0, 4) geändert wird, dies macht die Wartung des Systems viel einfacher. Eine Strophe in der menu.lst von zen könnte wie folgt aussehen:

title zen
kernel (hd0,4)/boot/mykernel root=LABEL=kde4
initrd (hd0,4)/boot/myinitrd

Hier ist der Abschnitt von meiner Standard-menu.lst:

title lxde
root (hd0,5)
configfile /boot/grub/menu.lst

title e17
root (hd0,6)
configfile /boot/grub/menu.lst

title Phoenix
root (hd0,7)
configfile /boot/grub/menu.lst

Ich finde dies ist viel einfacher nachzuvollziehen.

Windows zum Menü hinzufügen

Um ein Betriebssystem wie Windows zu starten, welches nicht Grub verwendet, sondern seinen eigenen Boot-Loader besitzt, können Sie in ähnlicher Weise fortfahren. Sie müssen eine Strophe zur menu.lst wie folgt hinzufügen:

title Windows
rootnoverify (hd0,2)
makeactive
chainloader +1

Hinweis: Ändern Sie (hd0, 2) in die Partition, auf die Windows installiert ist.

rootnoverify funktioniert wie der Root-Befehl um Grub den Speicherort vom nächsten Teil des Boot-Codes zu informieren, aber es wird in diesem Stadium nicht versucht die Partition einzuhängen (mounten), da dies für Grub problematisch sein könnte.

makeactive legt diese Root-Partition als aktiv fest.

chainloader +1 teilt Grub mit im zweiten Sektor der Partition nach dem Boot-Code zu suchen (der erste Sektor wird immer vom Dateisystem reserviert).

Verwenden der Grub-Befehle während der Boot-Zeit

Wenn das Booten fehlgeschlagen ist, so ist es immer noch möglich ein funktionierendes System zu erhalten, indem Sie die Grub-Eingabeaufforderung verwenden. Wenn Sie das grafische Menü angezeigt bekommen, dann drücken Sie die Escape-Taste um nach einem Bestätigungsdialogfeld in das Menü des Text-Modus zu gelangen.

Es ist möglich, dass Sie in Ihrer Konfigurationsdatei einen Tippfehler gemacht haben, oder dass Ihr Editor eine lange Zeile in zwei Zeilen geteilt hat und Grub deshalb keinen Sinn darin erkennen kann. Von hier aus können Sie die Zeile bearbeiten. Wählen Sie mit den Pfeiltasten den Menüeintrag welcher nicht bootet und drücken Sie auf "E" und <enter>. Ein erneutes drücken von 'E' platziert die ausgewählte Zeile in die Grub Eingabeaufforderung wo sie bearbeitet werden kann. Der Cursor befindet sich am Ende der Zeile, aber Sie können ihn mit den Pfeiltasten sowie durch die Pos1- und Ende-Tasten steuern. Drücken Sie die Enter-Taste um Ihre Änderungen wirksam werden zu lassen oder die Escape-Taste um zum vorherigen Bildschirm zurückzukehren ohne das Speichern der Änderungen zu akzeptieren. Durch drücken von "D" löschen Sie den markierten Teil einer Zeile, dies benötigen Sie wenn Ihr Editor die Zeile umgebrochen hat und Sie deshalb eine halbe Zeile mit Müll haben.

Drücken Sie 'B', um zu versuchen mit den geänderten Zeilen zu booten. Die Änderungen befinden sich nur im Arbeitsspeicher und nicht in der Datei menu.lst. In diesem Fall, sollte diese nach einem erfolgreichen Booten geändert werden.

Wenn Sie keine Fehler in den Zeilen finden können, dann ist noch nicht alles verloren. Drücken Sie 'C' um eine Befehlszeile zu erhalten, und diese bringt Sie zu einer ähnlichen Umgebung, welche wir verwendet haben um den Bootloader von einem Terminal aus neu zu installieren.

grub> find /boot/grub/stage2 <enter>

sucht nach Partitionen auf allen installierten Laufwerken die als Kandidaten, um Grub-Root zu werden, in Frage kommen. Verwenden Sie den Root-Befehl, um Grub auf diese Partition zu verweisen.

grub> root (hd0,0) <enter>

Um den Kernel auf dieser Partition zu finden, der sich im Verzeichnis /boot befinden sollte, können wir die Vervollständigungsfunktion des Grub-Befehls verwenden. Der Kernel heißt Vmlinu … irgendetwas.

grub> kernel /boot/vm <tab>

Durch drücken der Tab-Taste wird Grub dazu aufgefordert eine Liste mit allen in Frage kommenden Einträgen auszugeben.

grub> kernel /boot/vmlinuz

Possible files are: vmlinuz vmlinuz-2.6.32.11-pclos2

Wir wissen, dass vmlinuz ein Link ist, also muss die andere Datei der tatsächliche Kernel sein den wir verwenden, wenn der Link anscheinend defekt ist. Wir müssen dazu nicht den vollständigen Namen eingeben. Fügen Sie einfach einen Bindestrich ein und drücken Sie die Tab-Taste, um Grub den Rest ausfüllen zu lassen. Dies vermeidet auch Tippfehler.

grub> kernel /boot/vmlinuz- <tab>
grub> kernel /boot/vmlinuz-2.6.32.11-pclos2
[Linux-bzImage, setup=0x3a00, size=0x1f4400]

Das scheint funktioniert zu haben, nun können wir das selbe für die initrd machen.

grub> /boot/init <tab>
grub> /boot/initrd

Possible files are: initrd-2.6.32.11-pclos2.img initrd.img

grub> /boot/initrd- <tab>
grub> initrd /boot/initrd-2.6.32.11-pclos2.img
[Linux-initrd @ 0x1f9a3000, 0x63c8e2 bytes]

Okay! Grub hat alle Informationen, die benötigt werden, also können wir jetzt versuchen das System zu starten.

grub> boot <enter>

Alle der oben genannten Grub-Sitzungen wurden bei einer tatsächlichen Installation vorgenommen, daher weiß ich, dass es funktioniert.

Der sicherste Weg um einige dieser Techniken in der Praxis auszuprobieren, ist die Installation in einer VirtualBox. Diese ist sehr einfach einzurichten, und es befindet sich ein ausgezeichneter Artikel dazu in der Ausgabe Oktober 2008 des Magazins, geschrieben von Parnote, dem aktuellen Redakteur. Der Artikel installiert zwar Windows, aber prinzipiell ist es dasselbe bei einer PCLinuxOS-Installation.