Linux-Bootmanager Grub (2024)

Von Jörg Thoma

Egal, ob Sie als Betriebssystem Linux oder Windows oder beide parallel auf Ihrem Computer nutzen: Ohne einen Bootloader geht nichts. Den unter Linux gängigen Bootmanager Grub (Grand Unified Bootloader) richten die meisten Linux-Distributionen als Standard-Bootmanager bei der Installation ein; er startet sowohl Linux-Systeme als auch sämtliche Windows-Varianten bis hin zu Windows Vista.

Grub bietet nicht nur eine recht flexible Konfigurationsdatei, der Bootmanager verfügt auch über die unerlässliche Kommandozeilen-Umgebung (Shell), mit der Sie im Notfall ein Betriebssystem starten können. Dieser Artikel vermittelt Grundlagen zum Aufbau von und Umgang mit Grub, zudem geben wir Ratschläge, wie Sie vorgehen, wenn Ihre Systeme nicht mehr korrekt hochfahren, beispielsweise weil Sie nachträglich Windows XP oder Vista installiert haben. Und auch wenn der Bootloader einmal zerschossen ist, lässt sich dieser mit Super Grub Disk restaurieren.

Ein Bootmanager hat eine recht simple Funktion: die vorhandenen Systeme zu starten. Mit einigen Grundkenntnissen bekommen Sie nicht nur Grub, sondern auch den Bootmanager von Windows in den Griff.

Grundlagen zum Linux-Bootmanager

Sobald das Bios eines Rechners die Hardware initialisiert hat, übergibt es das Kommando an das Betriebssystem. Das passiert über eine kleine Software, den Bootloader, der im ersten Sektor des Bootmediums, also einer Festplatte, eines USB-Sticks oder einer Diskette, untergebracht ist. Der Bootloader muss Kenntnisse über die Partitionsaufteilung der Festplatten und über das Dateisystem der zu startenden Partition besitzen. Der DOS-/Windows-95/98/ME-Bootloader beispielsweise kann nur Systeme von FAT(32)-Partitionen starten; und sie dürfen nur in der ersten Partition der ersten Festplatte liegen. Der Windows-NT-Bootloader kennt zwar nur FAT(32)- und NTFS-Partitionen, kann aber das Windows-Betriebssystem auf einer beliebigen Partition starten.

Grub ist weniger eingeschränkt, es erkennt nicht nur sämtliche Partitionen, sondern auch die gängigsten Partitionstypen, etwa Ext2, Ext3, FAT, Jfs, Xfs und sogar mit ISO-9660 formatierte CD/DVDs. Dabei greift Grub auf weitere Dateien zu, die entweder auf der Festplatte, einer Diskette, einem USB-Stick oder einer CD/DVD liegen. Dabei benötigt Grub für den Zugriff auf das Dateisystem des Bootmediums passende Treiber, die in speziellen Dateien untergebracht sind. Diese mit dem Begriff „stage1_5“ benannten Dateien heißen etwa „e2fs_stage1_5“ für Ext2-/-3-Partitionen. Danach startet Grub aus der Datei stage2 seine eigene Shell und liest die Konfigurationsdatei menu.lst aus, sofern diese vorhanden ist, und bietet die darin aufgeführten Systeme zum Start an.

Der Grub-Bootloader liegt im ersten Sektor eines Bootmediums. Da dort nur 512 Byte zur Verfügung stehen, wird hier nur auf die Partition verwiesen, auf der die weiteren „Stages“ von Grub liegen. Liegt keine Info zum Bootmedium vor, sucht Grub auf dem aktuellen Medium nach der entsprechenden stage1_5-Datei. Auf einer mit DOS formatierten Diskette wäre das fat_stage1_5. Die Datei kann entweder im Stammverzeichnis des Mediums liegen oder im Verzeichnis /boot/grub. Dort liegt dann außerdem die Shell-Datei stage2, die das Menü sowie die Kommandozeilen-Umgebung zur Verfügung stellt, und die Konfigurationsdatei menu.lst, mit der das Menü überhaupt erst erscheint.

Die Datei device.map spielt eine entscheidende Rolle bei der Festplatten-Konfiguration und muss ebenfalls dort liegen.

Der Vorteil dieses Aufbaus ist, dass Sie die Konfigurationsdatei menu.lst jederzeit nachbearbeiten können, ohne Grub neu zu installieren. Der Nachteil: Für den Systemstart mit Grub muss immer auch die Partition vorhanden sein, auf der die Konfigurationsdateien liegen.

Das Grub-Menü verwenden

Das Grub-Menü präsentiert sich je nach Distribution immer ein wenig anders. Das liegt daran, dass das Menü mit einer Grafik versehen werden kann. Wer ein Linux-System der Ubuntu-Reihe verwendet, erhält das Originalmenü im schlichten Schwarz-Weiß, Fedora-Benutzer sehen stattdessen ein eingefärbtes Menü.

Linux-Bootmanager Grub (1)

©2014

Ohne Ihr Zutun startet Grub nach einer vordefinierten Wartezeit das im ersten Eintrag genannte System. Das Betätigen einer Pfeiltaste unterbricht dagegen den Countdown, und Sie können in Ruhe einen anderen Eintrag auswählen. Linux-Einträge im Grub-Menü geben dem Kernel auch gleich etliche Startparameter mit. Wollen Sie diese durch eigene Parameter einmalig ergänzen, etwa um „init 3“, um den Start der grafischen Oberfläche zu verhindern, wählen Sie den entsprechenden Eintrag und drücken die Taste . Markieren Sie dann wiederum die Zeile, die mit dem Eintrag „kernel“ beginnt, und drücken Sie erneut . Tragen Sie dort den gewünschten Parameter ein. Mit gelangen Sie in das nächsthöhere Menü, in dem Sie mit den Bootvorgang starten.

Mit erhalten Sie die Grub-Shell, in der Sie eigene Startbefehle definieren können (2 Kasten „Grub-Shell-Befehle“). Das Grub-Menü von Open Suse bringt eine andere grafische Oberfläche mit. Dort können Sie direkt in der Kommandozeile einem markierten Eintrag Startparameter hinzufügen. Mit der -Taste gelangen Sie auch dort zum Originalmenü.

Konfigurationsdatei menu.lst

In der Konfigurationsdatei menu.lst legen Sie fest, welche Betriebssysteme Grub zur Verfügung stellen soll, welcher der Einträge ohne Zutun des Benutzers nach welcher Zeitspanne gestartet wird oder ob das Grub-Menü beim Start eine bunte Oberfläche erhalten soll, wie bei Open Suse.

Diese Textdatei liegt im Verzeichnis /boot/grub und lässt sich nur mit root-Rechten bearbeiten.

Wichtig: Seien Sie vorsichtig beim Editieren der Datei, Grub reagiert empfindlich auf fehlerhafte Einträge. Manche werden einfach ignoriert, andere veranlassen den Bootloader, Sie beim Rechnerstart statt mit einem Menü mit der Grub-Kommandozeile zu begrüßen, in der Sie mühsam die Startbefehle eintippen müssen. Machen Sie am besten mit dem Befehl „cp /boot/grub/menu.lst /boot/grub/menu1.lst“ ein Backup der funktionierenden Konfigurationsdatei. Im Notfall können Sie dann in der Grub-Shell über die Backup-Datei Ihr ursprüngliches Menü laden.

In manchen Fällen müssen Sie die Grub-Konfigurationsdatei nachbearbeiten, etwa wenn Sie den Countdown verlängern möchten, der in den meisten Fällen 30 Sekunden beträgt, oder wenn Windows statt Linux zum Standardeintrag avancieren soll. Im Folgenden erklären wir Ihnen anhand verschiedener Szenarien, wie Sie Grub Ihren Bedürfnissen anpassen.

Beachten Sie: Ohne korrekt funktionierenden Bootmanager startet Ihr System unter Umständen nicht mehr. Machen Sie daher in jedem Fall ein Backup Ihres Master Boot Records und der funktionierenden Konfigurationsdatei menu.lst. Sollte wirklich etwas schiefgehen, starten Sie Ihr System zur Not mit Super Grub Disk auch bei zerschossenem Bootloader.

Countdown verlängern

Öffnen Sie die Textdatei /boot/grub/menu.lst als Benutzer root in einem beliebigen Editor. Um die Dauer des Countdowns zu verlängern, suchen Sie im oberen Teil der Textdatei nach dem Eintrag „timeout“. Der Zahlenwert dahinter definiert in Sekunden, wie lange Grub wartet, bis es den Standardeintrag startet. Wollen Sie beispielsweise, dass Grub eine Minute lang verharrt, ersetzen Sie den vorhandenen Wert durch „60“.

Standardeintrag definieren

Bei der Installation wird normalerweise Ihr Linux-System als Standard eingetragen. Nach abgelaufenem Countdown startet Grub ohne Ihr Zutun das Linux-Betriebssystem. Der Standardeintrag wird über den Zahlenwert in der Zeile mit der Zeichenkette „default“ bestimmt. Dabei beginnt die Zählung bei „0“. Um stattdessen Windows automatisch zu starten, müssen Sie zunächst ermitteln, im wievielten Menüeintrag Windows zu finden ist.

Jeder Eintrag beginnt mit der Zeile „title“, die Zeichenkette dahinter erscheint im Grub-Menü. Handelt es sich beispielsweise bei dem zweiten Eintrag um „title Windows“, ändern Sie in der „default“-Zeile den Zahlenwert von „0“ auf „1“.

Weitere Linux-Systeme einbinden

Linux-Bootmanager Grub (2)

©2014

Wenn Sie mehrere Linux-Systeme auf Ihrem Rechner installieren, kann es passieren, dass bei der Installation des zweiten Linux-Systems das bestehende bei der Grub-Installation nicht berücksichtigt wird. Um dann auch das ältere Linux-System mit Grub zu starten, müssen Sie per Copy & Paste den entsprechenden Eintrag aus der ursprünglichen Konfigurationsdatei in die neue übertragen. Starten Sie dazu Ihr funktionierendes Linux-System, und ermitteln Sie, etwa mit „fdisk -l“ als Benutzer root in einem Terminal-Fenster, die Partition, auf der Ihr erstes System schlummert. Binden Sie es anschließend mit „mount“ ein, beispielsweise in das Verzeichnis /data1 (das Sie gegebenenfalls zuvor anlegen müssen). Öffnen Sie dann – ebenfalls als root – in einem grafischen Editor zunächst die ursprüngliche Konfigurationsdatei unter /data1/boot/grub/menu.lst. Markieren Sie den betreffenden (meist den ersten) „title“-Eintrag, und kopieren Sie ihn sowie alle Zeilen darunter bis zum nächsten „title“-Eintrag. Wichtig sind die Zeilen, die mit den Einträgen „root“, „kernel“ und „initrd“ beginnen, wobei „root“ in einigen Fällen fehlt. Fügen Sie diese Zeilen dann am Ende der neuen Konfigurationsdatei unter /boot/grub/menu.lst ein, und speichern Sie diese. Nach einem Neustart sollte Grub einen neuen, startbaren Eintrag mit Ihrem ursprünglichen Linux-System enthalten.

Wollen Sie Ihre ursprüngliche Grub-Konfigurationsdatei beibehalten und ein weiteres Linux-System installieren, können Sie folgenden Trick anwenden: Bei den meisten Installations-Routinen können Sie bestimmen, wo Grub installiert werden soll, standardmäßig ist das im Master Boot Record (MBR). Sie können einen weiteren Bootloader stattdessen in der root-Partition installieren, also im ersten Sektor der Partition, in der Sie ein zweites Linux installieren. Unter Ubuntu 7.04 tragen Sie im letzten Installationsschritt unter „Advanced, Boot loader“ den entsprechenden Wert ein, etwa „(hd0,4)“, wenn Sie Ubuntu in der Partition /dev/hda5 installieren. Unter Suse 10.2 wählen Sie in den Installationseinstellungen die Registerkarte „Experten“ und klicken dort auf den Eintrag „Systemstart“. Dort wählen Sie dann in der Registerkarte „Bootloader-Einstellungen“ die Option „Boot from Root Partition“.

Nun gehen Sie einfach in umgekehrter Reihenfolge wie unter 2 Punkt 7 beschrieben vor und binden in Ihrem funktionierenden Linux-System die neue Linux-Partition in Grub ein. Dazu kopieren Sie aus der Konfigurationsdatei den entsprechenden „title“-Eintrag und fügen ihn der aktuellen /boot/grub/menu.lst hinzu. Alternativ können Sie Grub auch in den Win-2000/XP/Vista-Bootmanager.

Grub erneut installieren

Haben Sie zwischenzeitlich Windows erneut installiert, überschreibt das Betriebssystem den MBR, der Bootloader Grub geht dabei verloren. Sie können Grub aber jederzeit nachinstallieren, am besten mit einer Linux-Live-CD, etwa mit Ubuntu . Booten Sie Ubuntu, und öffnen Sie im Live-System über „Anwendungen, Zubehör, Terminal“ ein Konsolen-Fenster. Erstellen Sie dann mit „mkdir /data1“ ein neues Verzeichnis, und binden Sie das Linux-Systemverzeichnis auf Ihrer Festplatte dort ein. Liegt Ihr Linux-System beispielsweise auf der Partition /dev/hda5, verwenden Sie:

sudo mount/dev/hda5/data 1

Der Befehl „sudo fdisk -l“ gibt Ihnen einen Überblick über Ihre Partitionsaufteilung. Je nach Linux-Distribution liest der Kernel Festplatten und Partitionsaufteilung anders aus, deshalb müssen Sie die Hardware über Ihr installiertes Linux ansprechen. Das geschieht über die folgenden zwei Befehlszeilen:

sudo mount -t proc none /data1/procsudo mount -o bind /dev /data1/udev

Wechseln Sie anschließend als root mit

sudo chroot /data1 /bin/bash

in das installierte Linux-System, dann können Sie dort Befehle eingeben. Zunächst öffnen Sie die Grub-Shell mit dem Befehl „grub“. Stellen Sie dort noch einmal fest, auf welcher Partition Grub seine Konfigurationsdateien erwartet:

find /boot/grub/stage1

Grub sollte nun die Partition anzeigen, in unserem Beispiel „(hd0,4)“. Jetzt wechseln Sie in der Grub-Shell in das besagte Verzeichnis:

root (hd0,4)

und installieren Grub von dort aus erneut in den MBR:

setup (hd0)

Alternativ können Sie, wie in 2 Punkt 8 beschrieben, Grub in den ersten Sektor der Systempartition installieren:

setup (hd0,4)

und in eine weitere Grub-Umgebung oder in den Win-2000/XP/Vista-Bootloader integrieren. Mit „quit“ und danach „exit“ verlassen Sie zunächst die Grub-Shell und dann das eingebundene Linux-System – Sie landen jetzt wieder bei der Live-CD.

Tipp: Es schadet nicht, Grub sowohl im MBR als auch in der jeweiligen Systempartition zu installieren. Damit stellen Sie sicher, dass Sie bei zerschossenem MBR Ihr Linux-System mit Rettungsdisketten, etwa Super Grub Disk, starten können

Wenn Sie öfters Linux-Systeme installieren und ausprobieren, empfiehlt es sich, Grub systemunabhängig zu installieren. Der Bootmanager benötigt nur zur Installation ein bestehendes Linux.

Damit keine Bestandteile von Grub bei einer Neuinstallation verlorengehen, richten Sie unter Linux eine Mini-Partition mit etwa 50 MB für Grub ein.

Achtung: Die Partitionsreihenfolge vor der Mini-Partition darf sich dann nicht mehr ändern, da Grub sonst auch diese Partition nicht mehr findet. Formatieren Sie die Partition mit dem Dateisystem Ext2. Hängen Sie die Partition vorübergehend in das Dateisystem ein, etwa unter /data1. Legen Sie dort ein Verzeichnis mit

„mkdir -p /data1/boot/grub“

an, und kopieren Sie sämtliche Dateien aus dem gegenwärtigen Verzeichnis /boot/grub dorthin. Danach installieren Sie den Bootloader erneut im MBR der Startfestplatte – mit dem Hinweis auf das neue Grub-Verzeichnis – und zwar mit:

grub-install -root-directory=/data1 /dev/hda

In diesem Beispiel ist die Startfestplatte die Master-IDE-Platte am ersten Controller (/dev/hda). Falls Sie SCSI- oder SATA-Platten einsetzen, nehmen Sie stattdessen den Device-Node /dev/sda. Mit dem Befehl „fdisk -l“ erhalten Sie einen Überblick.

Einfacher geht’s über die Installationsassistenten der Distributionen. Yast etwa bietet Ihnen in den Installationseinstellungen unter „Partitionierung, Benutzerdefiniertes Partitions-Setup erstellen“ die Möglichkeit, eine Mini-Partition anzulegen und dieser den Pfad /boot zuzuordnen.

Wenn Sie Linux und Windows parallel auf Ihrem Rechner installiert haben, können Sie mit Grub auch Windows-Systeme starten. Im Normalfall trägt der Installer einer Linux-Distribution vorhandene Windows-Installationen automatisch in das Grub-Menü ein. Im Folgenden lesen Sie, wie Sie den Windows-Bootmanager restaurieren, wenn Sie Linux wieder loswerden wollen, und wie Sie Linux-Distributionen über den Windows-Bootmanager starten.

Windows-Bootmanager vom Bootmedium restaurieren

Den Win-9x/ME-Bootmanager können Sie mit dem DOS-Tool fdisk von einer Windows-Reparaturdiskette wiederherstellen, die Sie zuvor im jeweiligen System erstellen müssen. Unter Windows ME müssen Sie das Tool explizit aus dem Ordner C:WindowsCommand auf besagte Diskette kopieren. Wenn Sie von der Rettungsdiskette booten, genügt die Eingabe des Befehls „fdisk /mbr“ am DOS-Prompt. Unter Bootdisk finden Sie geeignete Rettungsdisketten, wenn Sie gerade keine zur Hand haben.

Linux-Bootmanager Grub (3)

©2014

Unter Windows 2000/XP booten Sie stattdessen von der Installations-CD und wählen im Setup-Menü für den Reparaturmodus. Geben Sie am Prompt zunächst die Nummer der Windows-Installation ein, meist „1“. Danach werden Sie nach dem Administrator-Kennwort gefragt; falls Sie keines vergeben haben, drücken Sie einfach . Geben Sie dann am Prompt vorsichtshalber zunächst den Befehl „fixboot“ ein, danach den Befehl „fixmbr“, der den Windows-Bootloader wieder in den MBR schreibt. Mit „exit“ starten Sie Ihren Rechner neu. Die Vista-Installations-DVD besitzt ebenfalls eine Reparaturkonsole, die Sie gleich nach dem Spracheinstellungsdialog über die Option „Computerreparaturoptionen“ starten. Wählen Sie dann Ihre Vista-Installation, und tippen Sie gegebenenfalls Ihr Administratorkennwort ein. Über die Option „Eingabeaufforderung“ landen Sie an einem Prompt, in dem Sie dann den Befehl „bootrec.exe /fixmbr“ eingeben.

Windows-Bootmanager aus dem System reparieren

Wenn Sie Ihre Windows-Systeme zwar starten können, aber kein Bootmedium (CD/DVD, Diskette) zur Hand haben, können Sie den Windows-Bootmanager auch aus Windows heraus reparieren. Unter 9x/ME genügt der Befehl „fdisk /mbr“ in der MS-DOS-Eingabeaufforderung. Für Windows 2000/XP benötigen Sie das Programm MbrFix.EXE, das Sie auf der Website von Sysint erhalten. Der Befehl:

mbrfix /drive 0 fixmbr /yes

restauriert den MBR auf der ersten Festplatte. Mehr dazu erfahren Sie auf der Website von Sysint .

Unter Vista verwenden Sie Easybcd . Nach der Installation starten Sie das Programm und klicken auf den Eintrag „Manage Bootloader“. Dort aktivieren Sie die Option „Reinstall the Vista Bootloader“ und klicken auf die Schaltfläche „Write MBR“.

Wenn Sie statt Grub bei einer Linux-Installation den Bootmanager von Windows 2000/XP/Vista beibehalten wollen, können Sie über ihn auch Linux-Systeme starten. Voraussetzung ist, dass Sie während der Linux-Installation Grub nicht in den MBR installieren, sondern in den Bootsektor der Linux-Systempartition.

Windows 2000/XP: Unter Windows 2000/XP benötigen Sie ein Medium mit FAT32-Dateisystem, damit Sie von Linux aus Dateien speichern und unter Windows auslesen können, etwa eine Diskette, einen USB-Stick oder eine entsprechend formatierte Partition. Verwenden Sie bei der Linux-Installation zunächst Super Grub Disk, um Ihr Linux-System zu starten und gegebenenfalls die Installation zu vollenden. Melden Sie sich dann als root in einem Terminal-Fenster an, und sichern Sie zunächst den Bootsektor der Systempartition mit:

dd if=/dev/ of=/tmp /linux.bin bs=512 count=1

Die Systempartition ermitteln Sie gegebenenfalls mit dem Befehl „mount“. Den Namen der Datei linux.bin können Sie frei wählen, alternativ etwa suse.sec oder ubuntu.bin. Kopieren Sie die Datei auf ein für Windows zugängliches Medium, und booten Sie anschließend Windows. Kopieren Sie dort die Datei in das Stammverzeichnis. Öffnen Sie nun die versteckte Systemdatei Boot.INI, die sich ebenfalls im Stammverzeichnis befindet, gegebenenfalls heben Sie noch über das Kontextmenü den Schreibschutz auf. Setzen Sie den Eintrag „timeout“ auf „30“ Sekunden, und tragen Sie am Ende der Datei folgende Zeile ein:

c:inux.bin=”Linux starten”

Linux-Bootmanager Grub (4)

©2014

Windows Vista: Mit dem Tool Easybcd verweisen Sie direkt auf den Linux-Bootloader in dessen Systempartition. Wählen Sie links den Eintrag „Add/Remove Entries“. Unten im Fenster wählen Sie dann die Registerkarte „Linux/BSD“ und als Typ „Grub“, den Namen darunter können Sie frei aussuchen. Neben „Harddrive“ wählen Sie die Festplatte, auf der die Linux-Systempartition liegt, die Zählung beginnt bei „0“. Die Partitionsnummer ermitteln Sie über die Vista-Datenträgerverwaltung. Danach klicken Sie auf „Add Entry“ und oben auf „Save“. Optional können Sie unter „Configure Boot“ noch über „Bootloader Timeout“ den Countdown von 30 Sekunden ändern.

Linux-Bootmanager Grub (2024)

References

Top Articles
Latest Posts
Article information

Author: Delena Feil

Last Updated:

Views: 6188

Rating: 4.4 / 5 (65 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Delena Feil

Birthday: 1998-08-29

Address: 747 Lubowitz Run, Sidmouth, HI 90646-5543

Phone: +99513241752844

Job: Design Supervisor

Hobby: Digital arts, Lacemaking, Air sports, Running, Scouting, Shooting, Puzzles

Introduction: My name is Delena Feil, I am a clean, splendid, calm, fancy, jolly, bright, faithful person who loves writing and wants to share my knowledge and understanding with you.