ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Reparatur

Fehlende Vorlage

Das gewünschte Template „Wiki/Vorlagen/InArbeit“ existiert nicht.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Wiki/Icons/config.pngDieser Artikel beschreibt, wie man GRUB 2 reparieren kann, wenn er nicht oder nicht mehr so funktioniert wie gewünscht. Bevor man zu Reparaturarbeiten an GRUB 2 geht, sollte man sich stets einen Überblick über das System verschaffen[1]. Nur wenn man sicher weiß, wo die GRUB 2 Dateien liegen und wohin GRUB 2 installiert war bzw. wohin man ihn installieren möchte, kann man die erforderlichen Schritte erfolgreich ausführen.

Reparatur im laufenden System

Am einfachsten ist die Reparatur von GRUB 2, wenn man die betreffende Ubuntu Version mit der er installiert wurde noch starten kann. Gelingt dies nicht über das eigentliche GRUB 2 Auswahl-Menü, so kann man es - falls verfügbar - über die Kommandozeile, den Rettungs-Modus oder auch die Super-GRUB-Disk probieren.

Alle nachfolgenden Befehle werden über das Terminal[2] eingegeben:

GRUB 2 erneut in den MBR der Festplatte oder Bootsektor einer Partition installieren

Die Kernkomponenten von GRUB 2 - boot.img und core.img - in den MBR und den verborgenen Bereich oder Bootsektor schreiben (mehr zu grub-setup):

sudo grub-setup /dev/sdX 

GRUB 2 vollständig neuinstallieren

Zunächst die GRUB 2 Dateien erneut in das Verzeichnis /boot/grub installieren und anschließend die Kernkomponenten von GRUB 2 in den MBR und verborgenen Bereich oder Bootsektor schreiben. (mehr zu grub-install):

sudo grub-install /dev/sdX 

Die Konfigurationsdatei neu erstellen oder aktualisieren

Die Konfiguration für das Auswahl-Menü ermitteln und in die Datei grub.cfg übertragen (mehr zu update-grub):

sudo update-grub 

Eine zusätzliche Konfigurationsdatei erstellen

Die aktuelle Konfiguration für das Auswahl-Menü ermitteln und in eine frei definierbare Datei speichern - die Datei grub.cfg bleibt dabei unverändert (mehr zu grub-mkconfig):

sudo grub-mkconfig --output=/boot/grub/meine.cfg 

Schreibt die aktuelle Konfiguration in die Datei meine.cfg im Verzeichnis /boot/grub. /boot/grub/meine.cfg kann dabei an die eigenen Befürfnisse angepasst werden.

Die Datenträgerreihenfolge in die device.map schreiben

Die Datei device.map neu erstellen lassen (mehr zu grub-mkdevicemap):

grub-mkdevicemap 

Experten-Info:

GRUB 2 versucht dabei nur, die richtige Datenträgerreihenfolge zu ermitteln. Die so gefundene Reihenfolge muss nicht mit der tatsächlichen Bootreihenfolge, wie sie im BIOS eingestellt wurde, übereinstimmen. Dies kann bei einem System mit mehreren Datenträgern zu Startproblemen führen. Wenn man die Startreihenfolge aus dem BIOS sicher kennt, sollte man diese besser manuell in die Datei device.map eintragen.

Reparatur mittels Desktop-CD

Hinweis:

Im folgenden wird davon ausgegangen, dass die verwendeten Desktop-CD's dem zu reparierenden System, insbesondere der Version von GRUB entsprechen!

Root-Directory-Methode

Bei dieser Variante wird Grub 2 einfach in einem Terminal[2] von der Desktop-CD mittels des GRUB-2-Scripts grub-install erneut auf die angegebene Partition bzw. Festplatte installiert:

  1. Booten von einer LiveCD.

  2. Ein Terminal[3] öffen.

  3. Lokalisieren des Datenträgers[2].

    sudo fdisk -l  # l wie listen 
  4. Einhängen der Partition, in die GRUB installiert werden soll. Dabei muss X durch die Plattenbezeichnung und Y durch die Partition ersetzt werden:

    sudo mount /dev/sdXY /mnt 
    Beispielanweisung: 1.Platte - 2. Partition
    sudo mount /dev/sda2 /mnt
  1. (Optionaler Schritt) Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls eingehängt werden:

    sudo mount /dev/sdXY /mnt/boot 
  2. Jetzt reinstalliert man die GRUB-Dateien und schreibt GRUB in den MBR des entsprechenden Datenträgers:

    sudo grub-install --root-directory=/mnt /dev/sdX 
  3. Nach dem Neustarten des Systems sollte GRUB korrekt arbeiten. Um die Datei grub.cfg auf den neuesten Stand zu bringen, empfiehlt sich noch ein

    sudo update-grub 

chroot-Methode

  • Mittels Desktop-CD booten.

  • Ein Terminal öffnen [2] und die folgenden Befehle ausführen:

  • Zunächst sollte man sich einen Überblick über die Partitionen auf dem System verschaffen, um bei den nachfolgenden Befehlen die richtige Ubuntu-Partition und eine eventuell vorhandene Boot-Partition in das Live-System einbinden zu können:

    sudo fdisk -l 

  • Im weiteren Verlauf wird exemplarisch davon ausgegangen, dass die Ubuntu-Partition auf /dev/sda2 liegt und eine Bootpartition auf /dev/sda3 und GRUB 2 ursprünglich in den MBR installiert wurde.

  • Nun muss die Partition mit dem installierten Ubuntu in das Verzeichnis /mnt eingebunden werden:

    sudo mount /dev/sda2 /mnt 

  • Nutzt das System eine separate boot-Partition, so muss diese mit

    sudo mount /dev/sda3 /mnt/boot 

    ebenfalls eingehängt werden. Bei einer normalen Installation ist diese Partition nicht vorhanden, und somit dieser letzte Befehl nicht erforderlich.

  • Vor dem Wechsel in das installierte System muss diesem der Zugriff auf wichtige Systeminformationen zugesichert werden. Man bindet dazu das Verzeichnis mit den Gerätedateien innerhalb des installierten Systems ein:

    sudo mount -o bind /dev /mnt/dev 
  • Ähnlich verfährt man mit dem Schnittstellendateisystem /proc. Dieses wird mit

    sudo mount -t proc /proc /mnt/proc 

    eingebunden.

  • Dito für /sys:

    sudo mount -o bind /sys /mnt/sys 

    Ohne diese Zeile kann es dazu kommen, dass Grub den Fehler Cannot find list of partitions! meldet.

  • Nun erfolgt der Wechsel in das installierte System:

    sudo chroot /mnt /bin/bash 

  • Zunächst installiert man die GRUB-Dateien neu in das Verzeichnis /boot/grub und schreibt GRUB in den MBR des betreffenden Datenträgers. Dies erledigt der folgende Befehl:

    grub-install /dev/sda 

  • Sollte es dabei zu Fehlern kommen, probiert man es mit:

    grub-install --recheck /dev/sda 

  • Anschließend erstellt man auf Grundlage der neu installierten Dateien die Datei /boot/grub/grub.cfg neu:

    update-grub 

  • Anschließend kann man die chroot-Umgebung mit

    exit 

    verlassen.

  • Abschließend hängt man zunächst /dev, /proc und /sys

    sudo umount /mnt/dev
    sudo umount /mnt/proc
    sudo umount /mnt/sys 

    und darauf hin das root-System wieder aus:

    sudo umount /mnt 

  • Nun sollte mindestens Ubuntu wieder über GRUB 2 starten können. Eventuell muss man aber dann die Konfigurations-Skripte noch den eigenen Bedürfnissen anpassen, um beispielsweise auch andere Betriebssysteme wieder wie zuvor starten zu können.

Wann welche Methode?

Die #Root-Directory-Methode kann man immer dann wählen, wenn man sicher ist, dass die Datei grub.cfg richtig ist GRUB 2 nur deswegen nicht richtig startet, weil er nicht oder nicht mehr bzw. nicht mehr richtig im Bootsektor oder dem MBR der betreffenden Festplatte installiert ist.

Die #chroot-Methode verwendet man immer dann, wenn man nur oder auch die gurb.cfg neu erstellen lassen will. Außerdem sollte sie auch immer bei komplizierteren Systemkonstellationen wie LUKS- oder LV-Partitionen sowie Raid-Verbunden angewendet werden.

Die Root-Directory-Methode erfordert zwar weniger Einzelschritte ist dabei aber auch weniger flexibel und erlaubt nicht so viele Reparatur-Optionen wie die chroot-Methode. Ist man sich nicht sicher, welche der beiden Methoden auf die eigene Situation anzuwenden ist, sollte man im Zweifel stets die Root-Directory-Methode wählen, weil man mit Ihr auf sämtliche GRUB-2-Befehle zurückgreifen kann, die man auch unter einem laufenden Ubuntu zur Verfügung hat.

Diese Revision wurde am 17. März 2010 10:33 von Newubunti erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Bootloader