it-swarm.com.de

Wiederherstellung nach 'Grub Rescue>' Absturz

Ursprünglich auf AskUbuntu.com gepostet ...

AskUbuntu hat eine Richtlinie zum Schließen eingeführt Fragen zu EOL-Versionen (End Of Life). Es gibt ein Stimmkontingent, um sie ebenfalls zu entfernen. Um einen möglichen Verlust dieser beliebten Frage (bisher 342335 Aufrufe) zu vermeiden, platziere ich hier eine überarbeitete Version. --- docsalvager

Das "klassische" System ...

  • Puppy Linux 5.2.8 (Lucid) basierend auf Ubuntu 10.04 (Lucid Lynx)
  • GRUB 2 Bootloader

GRUB 2 fügt eine Reihe von *.mod - Dateien (Kernelmodule) in /boot/grub Ein. Das Löschen dieser Dateien (da sie für falsch platzierte Audiodateien gehalten wurden) führte beim Neustart und bei der Eingabeaufforderung grub rescue> Zu einem Fehler.

Wie kann man sich in dieser Situation erholen?

27
DocSalvager

Wiederherstellung nach einem Madenrettungsabsturz ...

  • grub rescue> Unterstützt cd, cp oder andere Dateisystembefehle nicht, außer der eigenen Variation von ls, die wirklich eine Art von find ist Befehl.
  • Also musste zuerst die Partition mit dem Verzeichnis /boot Gefunden werden, das das vmlinuz und andere Boot-Image-Dateien enthält ...

    grub rescue>  ls  
    (hd0,4) (hd0,3) (hd0,2) (hd0,1)  
    
    grub rescue>  ls (hd0,4)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,3)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,2)/boot
    ... grub ... initrd.img-2.6.32-33-generic ... vmlinuz-2.6.32-33-generic 
    
    • ls ohne Argumente gibt die vier Partitionen auf diesem System zurück.
    • ls (hd0,4)/boot findet kein /boot Verzeichnis auf der Partition (hd0,4).
    • ls (hd0,3)/boot findet kein /boot Verzeichnis auf der Partition (hd0,3).
    • ls (hd0,2)/boot findet ein /boot Verzeichnis auf der Partition (hd0,2) und enthält ein vmlinuz und andere gewünschte Boot-Image-Dateien.
  • So starten Sie manuell von der Eingabeaufforderung grub rescue> ...

    grub rescue>  set root=(hd0,2)/boot  
    grub rescue>  insmod linux  
    grub rescue>  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic  
    grub rescue>  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic  
    grub rescue>  boot  
    
    • Setzen Sie root, um das Verzeichnis /boot Auf der Partition (hd0,2) Zu verwenden.
    • Laden Sie das Grub-Modul linux.
    • Stellen Sie dieses Modul so ein, dass es das Kernel-Image vmlinuz-2.6.32-33-generic Verwendet.
    • Stellen Sie initrd (init RAM disk)) ein, um das Image initrd.img-2.6.32-33-generic Zu verwenden.
    • Starten Sie Linux.
  • Dies startet mit einer BusyBox Befehlszeilen-Eingabeaufforderung, die alle grundlegenden Dateisystembefehle enthält ( und dann einige !).

  • Dann könnten die *.mod - Dateien wieder in das /boot/grub - Verzeichnis verschoben werden ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Erfolgreicher Neustart !

Siehe auch ...

29
DocSalvager

Diese Antwort ist für andere da draußen, für die die Antwort von DocSalvager nicht funktioniert.

  1. Ich folgte DocSalvagers Verwendung von ls, um die richtige Festplattenpartition zu finden. In meinem Fall war es (hd0,msdos5).
  2. Dann habe ich die folgenden Befehle ausgeführt, um zum normalen Grub-Bootloader-Bildschirm zurückzukehren.

    grub rescue>  set boot=(hd0,msdos5)
    grub rescue>  set prefix=(hd0,msdos5)/boot/grub
    grub rescue>  insmod normal  
    grub rescue>  normal  
    
  3. Nach dem Booten in Ubuntu habe ich den Grub-Bootloader mit den folgenden Befehlen vom Terminal aus repariert.

    Sudo grub-install /dev/sda 
    

Bitte beziehen Sie sich auf diese Quelle , um einen visuellen Überblick über diesen Prozess zu erhalten.

43
Gibado