Aktionsbündnis

Zeigt Grub ein Textmenü ähnlich dem aus Abbildung 4, holen Sie über die Taste [E] die hinter einem Eintrag steckenden Aktionen hervor. Wie in einem Texteditor korrigieren Sie diese Einstellungen hier direkt und führen das Ergebnis dann mit [Strg]+[X] aus. Damit enden aber schon wieder die Gemeinsamkeiten, die eigentlichen Befehle unterschieden sich zwischen den beiden Grub-Versionen. Abbildung 6 zeigt ein Beispiel für Grub 2: Um Linux zu starten, benötigt der Bootmanager zunächst das Wissen um das Ext2-Dateisystem (insmod ext2), den Kernel findet er auf der ersten Partition der ersten Festplatte (set root='(hd0,1)') in der Datei /boot/vmlinuz-2.6.32-22-generic.

Abbildung 6: Grub 2 startet mit diesen Aktionen ein Ubuntu.

Bei Grub Legacy verhindert häufig ein vom Distributor aufgehübschtes Bootmenü den direkten Zugriff auf die Einstellungen (wie etwa bei OpenSuse). In diesem Fall ist die Konfigurationsdatei /boot/grub/menu.lst der passende Anlaufpunkt. Sie öffnen und bearbeiten sie als Administrator von einem Rettungssystem aus mit einem Texteditor – legen Sie aber vorher unbedingt eine Sicherheitskopie an. In der Datei finden Sie verschiedene Abschnitte, die jeweils mit dem Schlüsselwort title beginnen, dem dann der entsprechende Menüeintrag folgt (Abbildung 7).

Abbildung 7: Wie hier menu.lst verrät, besitzt das Bootmenü dieser OpenSuse-11.3-Installation drei Einträge.

Der nächste Befehl root (hd0,1) teilt Grub mit, dass sich der Kernel auf der zweiten Partition der ersten Festplatte befindet. Hinter kernel steht schließlich noch der vollständige Dateiname des Linux-Kernels.

Wenn Sie dasselbe unter Grub 2 erreichen möchten, können Sie entweder darauf hoffen, dass update-grub bei einer Neuinstallation die fehlerhaften Einträge korrigiert, oder müssen sich in die komplexen Konfigurationsdateien einarbeiten. Eine Anleitung dazu bietet ein Artikel aus LU 01/2010 [1].

Im Gegensatz zu Linux zählen übrigens beide Grub-Versionen die Laufwerke von 0 aus durch, /dev/sda mutiert hier zu hd0. Grub orientiert sich dabei an der Reihenfolge, die das BIOS vorgibt. Bei den Partitionen beginnt Grub 2 die Nummerierung bei 1, Grub Legacy startet hingegen bei 0. Die Angabe hd0,1 meint bei Grub 2 somit die erste Partition der ersten Festplatte, bei Grub Legacy hingegen die zweite Partition der ersten Platte.

Abbildung 8: Einige Distributionen (wie hier OpenSuse 11.3) bieten eine grafische Oberfläche, mit der man das Grub-Menü etwas bequemer nach seinen Wünschen verändern kann.

Fensterkette

Grub kann nicht nur Linux starten, sondern auch einen anderen Bootloader. Da der Anfang der Festplatte bereits belegt ist, muss der fremde Bootloader in den ersten 512 Bytes einer der primären Partitionen liegen. Dieser Bereich ist extra für diese Zwecke reserviert und heißt passend Partition Boot Record. Auf diese Weise starten Grub auch Betriebssysteme, mit denen er sich überhaupt nicht auskennt – wie etwa Windows: Das BIOS lädt Grub, der wiederum aus der Windows-Partition den Windows-Bootloader, welcher schließlich das Betriebssystem aus Redmond startet. Es entsteht eine Kette aus Bootloadern, die man auch als Chainloader bezeichnet.

Mit diesem Wissen lässt sich eine Unart von Windows beheben: Wenn Sie Microsofts Betriebssystem nach Linux installieren, überpinselt es ohne Nachfrage Grub mit seinem eigenen Bootloader. Um wieder Linux starten zu können, schreiben Sie zunächst Grub zurück und fügen ihm dann einen weiteren Menüeintrag für Windows hinzu. Grub-2-Besitzer gehen dazu einfach wie im Text unter "Restaurierung" beschrieben vor: Der Befehl update-grub findet automatisch den Bootloader von Windows und erstellt einen passenden Menüeintrag.

Bei Grub Legacy fügen Sie zunächst als Administrator der Datei /boot/grub/menu.lst am Ende die folgenden Zeilen hinzu:

title Windows
  root (hd0,5)
  makeactive
  chainloader +1

Dabei passen Sie die Festplattenangabe an Ihre Gegebenheiten an. Die Zeile chainloader +1 sorgt dafür, dass Grub den Windows-Bootloader auf seiner Partition weckt.

Pinguine an die Macht

Konnte Grub den Linux-Kernel finden, startet er diesen und übergibt ihm die Kontrolle. Das freie Betriebssystem schaut sich jetzt zunächst im Computer etwas um, ermittelt die verbaute Hardware und lädt dazu die passenden Treiber. Dabei muss Linux häufig Treiber laden, die nicht fest im Kernel integriert sind. Zu diesem Zeitpunkt gibt es aber noch keinen Zugriff auf die Festplatte. Um das Dilemma zu lösen, schnüren viele Distributionen ein absolutes Mini-Linuxsystem und verpacken es in eine einzige Datei, die meist den Namen initrd trägt und im Verzeichnis /boot liegt.

Die Funktionsweise dieser Initial RAM-Disk ähnelt den bekannten ISO-Dateien für CDs: Grub lädt die Datei initrd in den Hauptspeicher, wo der Kernel ihren Inhalt wie eine Mini-Festplatte sieht. Da die Initial RAM-Disk wichtige Treiber enthält, bleibt das System ohne sie im schlimmsten Fall stehen. Wo die initrd zu finden ist, ermittelt Grub Legacy aus der Pfadangabe hinter initrd in der Datei menu.lst (Abbildung 7). Bei Grub 2 finden Sie diese Zeile, indem Sie in seinem Bootmenü den entsprechenden Eintrag ansteuern und dann [E] drücken (Abbildung 6).

Sobald der Kernel alle grundlegenden Treiber geladen hat, entfernt er die initrd wieder aus dem Speicher und bindet dafür die Festplattenpartition mit dem richtigen Linux-System ein. Welches Laufwerk beziehungsweise welche Partition die richtige ist, gibt ihm noch Grub mit auf den Weg. Wenn Sie einen Blick in die Datei menu.lst werfen, beziehungsweise im Fall von Grub 2 auf Abbildung 6, finden Sie diese Zusatzinformationen am Ende der Zeile kernel respektive linux. Die Partition mit dem kompletten Linux-System steht dort hinter root=.

Mittlerweile verwenden alle Distributionen keine Gerätenamen mehr, sondern identifizieren die Partitionen anhand eindeutiger Identifikationsnummern, den Universally Unique Identifier, kurz UUIDs. Sollte der Kernel zwar starten, irgendwann aber das Root-Dateisystem nicht mehr einbinden können, ist möglicherweise diese Nummer falsch. Ersetzen Sie sie dann gegen den entsprechenden Gerätenamen, beispielsweise root=/dev/sda1. Bei Grub Legacy müssen Sie dazu die Datei menu.lst anpassen. Bei Grub 2 steuern Sie im Bootmenü den Linux-Eintrag an, drücken [E] und ändern den Befehl im Text (siehe Abbildung 9).

Abbildung 9: Hier wurde die (falsche) UUID der Festplatte gegen den Gerätenamen /dev/sda1 ausgetauscht.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Ladehemmung
    Mit Grub2 versuchen die Entwickler viele Probleme des Vorgängers zu beheben. Allerdings ändert sich damit auch die Konfiguration. Wir zeigen, wo's künftig langgeht.
  • Friedliche Koexistenz
    Wer Windows 7 nachträglich auf einem Linux-System installiert, hat einige Klippen zu umschiffen – vor allem, wenn der bisherige Bootmanager Grub 2 hieß.
  • Super Grub2 Disk

    Das Live-System Super Grub Disk, das sich zur Wiederherstellung kaputter Bootloader eignet, verwendet in der aktuellen Betaversion die neueste Grub-Release.
  • Bootmanager konfigurieren mit dem Grub2-Editor
    Der Grub2-Editor integriert sich in die Systemeinstellungen von KDE und erlaubt dort das komfortable und unkomplizierte Einrichten des Bootmenüs.
  • Systemstart
    Wie funktioniert eigentlich der Systemstart? Wir erklären, woher Ihr Computer weiß, welches Betriebssystem er starten soll, und wie sich die gängigen Bootloader von Linux und Windows unterscheiden.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

WLAN-Signalqualität vom Treiber abhängig
GoaSkin , 29.10.2014 14:16, 0 Antworten
Hallo, für einen WLAN-Stick mit Ralink 2870 Chipsatz gibt es einen Treiber von Ralink sowie (m...
Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...