Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/virtual/benny-baumann.de/blog/htdocs/wp-includes/post-template.php on line 310

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/virtual/benny-baumann.de/blog/htdocs/wp-includes/post-template.php on line 310

BenBE's humble thoughts Thoughts the world doesn't need yet …

07.01.2012

GRUBen-Rettung

Filed under: Allgemein — Schlagwörter: , , — BenBE @ 07:29:48

Immer wieder einmal schafft man, oder ein anderer, es, sich eine Grube zu graben, aus der der eigene arme Pinguin nicht mehr herauskommt und daher den Dienst verweigert. Bevor man aber das große Reinstall versucht, reicht es in der Regel, den Bootloader einfach neu zu schreiben. Hierzu sind folgende Schritte ein recht einfacher Weg, wobei die wesentlichen Teilschritte sind, ein Live-System zum Laden des eigenen OS zu booten und der zweite, mit Hilfe der Tools von Grub das Loch im Master Boot Record zu schließen.

Als Live-System für die Rettung kommt hierbei theoretisch jedes lauffähige Linux in Frage, welches genauso viel Bit intus hat, wie das System auf der eigenen Platte, und dessen Altersunterschied zum installierten OS nicht bevorzugter Weise in Epochen gemessen werden sollte: Kurzum, wenn Live-OS und das installierte OS die gleiche Distri und Architektur haben, macht man in der Regel nichts falsch. Starten wir also z.B. unser Ubunterschichten-OS in Version 11.10 mit 64 Bit und öffnen eine Konsole, in der wir als erstes mal für ausreichende Kooperation durch das System sorgen:

sudo su

Anschließend sollte man sich mit

fdisk -l

anschauen, wo die eigene System-Platte von Linux liegt, da wir diese gleich brauchen, um uns das theoretisch lauffähige System zu mounten. Wenn unsere Systemplatte also /dev/sdd2 ist, müssen wir folgendes tun:

cd /mnt
mkdir linux
mount /dev/sdd2 linux
mount --bind /dev linux/dev
mount -t proc none linux/proc
mount -t sysfs sysfs linux/sys

Wurde alles erfolgreich geschluckt, kann es nun daran gehen, unser boot-unwilliges System zu be-treten:

chroot linux

Wenn wir nun als „root@ubuntu:/#“ unser Dasein fristen, können wir ohne große Umwege fortfahren und zwei kleine Anpassungen vornehmen, um unser Gruben-Grabgerät auf die großartig unifizierte Wiederbeschuhungsmaßnahme vorzubereiten:

grep -v rootfs /proc/mounts > /etc/mtab

Danach sollte man, in Abhängigkeit der Ursache für die kaputte Boot-Konfiguration ggf. einmal mit etwas Geschick sein System Updaten und evtl. beschädigte Pakete reparieren lassen. Insbesondere das Vorhandensein von linux-generic, linux-image-generic, linux-headers-generic und grub-pc ist eine notwendige Bedingung für den Erfolg der Operation am toten Patienten.

Hat man sein System befähigt ein korrektes Kernel-Image vorzuhalten, geht es nun an die eigentliche Reparatur des Beschuhungsmechanismus:

grub-install --recheck /dev/sdd

wobei /dev/sdd die zu startende Festplatte und grub-install –recheck ein von den Grub-Entwicklern als deprecated gebrandmarktes, nützliches Utility ist, dessen Ausführung im Zweifelsfall genau DAS ist, was uns den Bootloader wiederherstellt. Lief nämlich alles korrekt ab, hat dieser Befehl eine Reihe erkannter Betriebssysteme und unter unglücklichen Umständen auch Windows oder MacOS gefunden. Wenn nicht, kann man sein Glück ja mal mit der SuperGrubDisk probieren.

Aber nunja, war dieser Schritt erfolgreich, geben wir einmalig exit ein und bestätigen unsere Absicht mit reboot. Danach sollte das System wieder wie gewünscht eine Grube anzeigen, in der wir das Linux unserer Wahl, oder andere Multifunktionsbootsektorviren ausführen können.

Hat das chroot nicht geklappt, wegen einer falschen Architektur, sollte man es mit einem anderen Live-System versuchen. Findet er hingegen keine Betriebssysteme, muss man die Situation etwas genauer analysieren. In jedem Fall sollte man nach dem ersten Mal Booten in das reparierte Linux noch einmal die Grube mit update-grub aktualisieren, bevor man wieder entspannt das reparierte System genießt.

Flattr this!

4 Comments »

  1. Danke!
    Hatte wirklich Angst um meine Daten!
    Hat mir viel veil Ärger erspart!
    Funktioniert mit 10.04er CD und 11.10 Ubuntu!

    tracy

    Kommentar von tracy — 02.02.2012 @ 07:09:07

  2. […] GRUBen-Rettung « BenBE’s humble thoughts. Dieser Eintrag wurde veröffentlicht in Allgemein von admin. Permanenter Link des […]

    Pingback von GRUBen-Rettung « BenBE’s humble thoughts | Sven's WP — 05.02.2012 @ 17:55:00

  3. Thanks für die Hilfe, hatte Ubuntu zwar nach windows installiert, aber leider irgendwie war der grub iwie nicht im bootsektor. Mit deiner Hilfe gings dann.

    Kommentar von Klezmor — 18.02.2012 @ 23:52:58

  4. Moin,
    auch Ich habe gestern mein Grub mithilfe diesen Beitrags wiederhergestellt, ich musste allerdings aufgrund meiner Konfiguration noch ein paar kleine Anpassungen vornehmen.

    Hierzu sei gesagt, dass diese Anleitung auf Grub Legacy basiert. Zu GRUB 2 kann ich nichts sagen.

    Da meine Arch Linux-Rootpartition in einem LUKS-Verschlüsselten LVM liegt musste ich dieses ersteinmal decrypten. Das geht recht einfach mithilfe folgender Befehle:

    cryptsetup luksOpen /dev/$lvm-partition # um das Volume zu entschlüsseln
    vgscan  # um die passende LVM-Volumegroup zu finden
    vgchange -a y  # um die Volumegroup mit dem Kernel bekannt zu machen
    lvscan # um die Logical Volumes zu finden

    Nun kann man die Logical Volumes einfach unter /dev/ finden und mounten.

    Zudem eignet sich bei einem nicht zu sehr zerschossenen GRUB die Benutzung der GRUB Konsole besser als die verwendung von grub-install. grub-install (schon ohne die Option –recheck) hatte mir nämlich die /boot/grub/menu.lst und die /etc/fstab zerschossen.

    Also anstelle von grub-install bei einer noch intakten menu.lst einfach das folgende ausführen:

    grub # um die Grub-Konsole zu öffnen

    Daraufhin sollte einen eine „grub>“ Prompt begrüßen.

    Nun noch per

    root ($bootpartition)

    das Grub auf die Konfiguration aufmerksam machen.

    Dabei ist das Grub Nummerierungsschema zu benutzen, dieses ist wie folgt aufgebaut: sda entspricht hd0, sda1 entspricht hd0,0. sdc3 wäre dementsprechend hd3,2

    Als letztes noch per

    setup (hd0)

    in den MBR schreiben, und schon hat man sein GRUB wiederhergestellt, ohne seine menu.lst kaputt zu machen.

    dennoch vielen Dank für diesen Beitrag!

    halfur

    Kommentar von halfur — 26.02.2012 @ 15:36:41

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress