Verschobene .mod-Dateien mit grubrescue wiederherstellen

33

Ich habe eine blöde Sache gemacht ... Ich habe vergessen, dass Ubuntu 10.04 (Lucid Lynx) auf GRUB  2 umgestellt hat, das eine Menge * .mod-Dateien (Kernelmodule) enthält /boot/grub. Ich dachte, es handele sich um Soundtrack-Dateien, die fälschlicherweise dort abgelegt wurden, und ich habe sie verschoben. Der nächste Neustart war natürlich traumatisch. Mir wurde etwas präsentiert, von dem ich keine Erinnerung hatte, dass ich es jemals gesehen hatte ... eine Aufforderung zur Rettung der Maden.

Mit Hilfe von Fixing GRUB error: "error: unknown filesystem" konnte ich jedoch ...

  • Ich habe festgestellt, dass GRUB rescue keine Befehle für 'cd', 'cp' oder ein anderes Dateisystem enthält, mit Ausnahme seiner eigenen Variation von 'ls'.
  • Also zuerst hatte ich die Partition mit dem finden /bootVerzeichnis mit vmlinuzDatei und andere Boot - Image - Dateien ... (Annäherung aus dem Speicher von Fehlversuchen, sowie Leerzeilen aus Gründen der Klarheit hinzugefügt 2014.07.10 von docsalvage)

    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 
    
  • Ich habe ein /bootVerzeichnis gefunden, das die vmlinuzDatei vmlinuz-2.6.32-33-genericauf der Partition enthält (hd0,2).

  • Dann habe ich manuell über die Eingabeaufforderung 'grub rescue>' gebootet. Die folgenden Befehle werden ...

    • Legen Sie fest root, dass das /bootVerzeichnis auf der Partition verwendet werden soll (hd0,2).
    • Laden Sie das Kernel-Modul linux.
    • Stellen Sie dieses Modul so ein, dass es das Kernel-Image verwendet vmlinuz-2.6.32-33-generic.
    • Stellen Sie initrd (RAM-Disk initialisieren) ein, um das Image zu verwenden initrd.img-2.6.32-33-generic.
    • Booten Sie Linux.
  • grub rescue>  set root=(hd0,2)/boot  
    grub rescue>  insmod linux  
    grub rescue>  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
    grub rescue>  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic  
    grub rescue>  boot  
    
  • Dies startet und stürzt bei der BusyBox-Eingabeaufforderung ab, die einige rudimentäre Dateisystembefehle enthält.

  • Dann habe ich die * .mod-Dateien zurück in das /boot/grubVerzeichnis verschoben ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Der Neustart war erfolgreich, aber das war eine Menge Arbeit.

Gibt es einen einfacheren Weg?

DocSalvager
quelle
1
Boot-Repair wäre meiner Meinung nach viel einfacher. Weitere Informationen zur Verwendung von Boot-Repair finden Sie in einer meiner zahlreichen Antworten .
SirCharlo
1
Der "einfachste" Weg ist nicht immer der beste. Ich bin mit allen Kommentaren, die die Verwendung einer Live-CD vorschlagen, absolut nicht einverstanden. Es ist wirklich sehr schwierig, von einer Live-CD auf Systemen zu booten, die keinen CD / DVD-Leser haben.
Simón
Ich kann die Partition nicht mit dem Verzeichnis / boot finden. Alle Partitionen mit dem Befehl ls geben eine unbekannte Dateisystemausgabe aus.
Rafed Nole
1
Ihr Beitrag war sehr hilfreich, um den Kernel und initrd manuell zu booten, aber mein System konnte dev, sys oder proc, etc / fstab oder sbin / init nicht finden. Das hat mich zu einem anderen Beitrag geführt , in dem vorgeschlagen wurde, den Kernel zu laden und den Root zu setzen, wie in den manuellen Boot-Anweisungen in der Grub-Dokumentation beschrieben . Beispiel: grub> linux (hd0,X)/boot/vmlinuz-a.b.c-d-generic root=/dev/sdaX Wo Xbefindet sich die Partition /boot, a.b.c-dbefindet sich die Kernel-Version? Dann ist mein System gut gebootet! Vielen Dank!
Mark Mikofski
1
zusätzlich zu [Fixing GRUB Fehler: „Fehler: unbekannt Dateisystem“ [Duplikat]] ( askubuntu.com/q/142300/36961 ) ein weiterer großer Link , dass Abdeckungen diese Schritte ist wie ein Nicht-Booten GRUB 2 auf Linux zu retten , die Grub 2 Handbuch ist auch sehr hilfreich
Mark Mikofski

Antworten:

5

Nein. Ich denke, Sie haben so ziemlich den einfachsten Weg gefunden, sich mit Hilfe von Grub Rescue vom Zustand Ihres Systems zu erholen . Es ist ein sehr minimalistisches System, das gerade genug Kapazität bietet, um das System zu starten.

BTW, ich glaube, Sie müssen die .modDateien gefunden und ausgeführt haben, insmod linuxoder der linuxBefehl wäre fehlgeschlagen.

Die einzige andere Möglichkeit wäre, wie bereits erwähnt, eine Live-CD zu booten und grub2 neu zu installieren, nachdem Sie auf dem "kaputten" System chrootet haben.

StarNamer
quelle
Du hast absolut recht! Ich habe vergessen, dass ich das getan hatte. Hinzugefügt zu meinem ursprünglichen Beitrag oben als zukünftige Referenz. Ich muss disziplinierter vorgehen, wenn es darum geht, in solchen Situationen sorgfältige Notizen zu machen. Bitte teilen Sie uns mit, ob weitere Änderungen erforderlich sind.
DocSalvager
Ich musste auch root angeben, wenn ich den Kernel grub> linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
lud,
Auch beachten Sie , wenn Sie die .mod - Dateien gefunden haben , können Sie „grub rescue“ voll funktionsfähige GRUB wieder her: # Inspect the current prefix (and other preset variables): set # Find out which devices are available: ls # Set to the correct value, which might be something like this: set prefix=(hd0,1)/grub set root=(hd0,1) insmod normal normal Quelle: gnu.org/software/grub/manual/html_node/...
MegaBrutal
7

Im Folgenden finden Sie einige allgemeine und grundlegende Anweisungen zur Behebung von Startfehlern GRUB loading stage 1.5 error 15 (z. B. nach der Installation von Windows auf einem anderen Laufwerk):

  1. Booten Sie mit einer LiveDVD (z. B. der Ubuntu Desktop-Festplatte).

  2. Öffnen Sie ein Terminal und schreiben Sie die Grub-Konfiguration mit den folgenden Befehlen neu:

    • sudo mount /dev/sdXY /mnt
    • sudo grub-install --root-directory=/mnt /dev/sdX

Wo /dev/sdXbefindet sich die Festplatte, auf der Ubuntu installiert ist, und auf /dev/sdXYder Partition, auf der Ubuntu installiert ist? Mit anderen Worten /dev/sdXYenthält /bootund so weiter.

Verwenden Sie fdisk -ldiese Option, um den Installationsort von Ubuntu zu überprüfen.

lamas
quelle
Funktioniert nicht. Vielleicht hätte es funktioniert, wenn die Anweisungen präziser gewesen wären.
Tim Stewart
Wenn ich ein Problem mit grub2 auf einem Computer ohne CD-Laufwerk hatte, konnte ich es mit meinem Gparted Live USB-Speicherstick wiederherstellen. Ich habe Gparted live gebootet. DANN startete ich ein Terminal und tippte fdisk -l (das ist der Buchstabe ell, nicht die Nummer 1). Die Ausgabe davon ließ mich die Partition identifizieren, die die Root-Partition hatte, und von dort aus folgte ich den hervorragenden Anweisungen oben und war bald wieder glücklich beim Dual-Booten .
Vic
4
  1. Booten Sie die Live-CD

  2. Terminal öffnen (STRG + ALT + T)

  3. Geben Sie die folgenden Befehle ein:

sudo fdisk -l

Und finden Sie Ihre Ubuntu-Partition (sollte / dev / sda1 sein, wenn es die erste Partition ist)

sudo mount /dev/sda1 /mnt

sudo mount --bind /sys /mnt/sys

sudo mount --bind /proc /mnt/proc

sudo mount --bind /dev /mnt/dev

sudo chroot /mnt

Installieren Sie nun Grub2 neu

sudo apt-get install --reinstall grub2
böse
quelle
2
Ist das ein besserer Weg als sudo mount /dev/sda1 /mntund sudo grub-install --root-directory=/mnt/ /dev/sda && sudo update-grub?
4

Ich hatte das gleiche Problem beim Upgrade meines Systems.

Ich schlage folgende einfache Schritte vor:

  1. Booten Sie Ihr System mit Ubuntu Live-CD oder Live-USB.
  2. Öffnen Sie das Terminal und führen Sie den Befehl sudo add-apt-repository ppa aus: yannubuntu / boot-repair && sudo apt-get update
  3. Installieren Sie dann die Boot-Reparatur, indem Sie den Befehl sudo apt-get install -y boot-repair && boot-repair ausführen

  4. Starten Sie die Startreparatur nach der Installation. Verwenden Sie beispielsweise im Menü System->Administration->Boot-Repair (nur Ubuntu 10.04) und befolgen Sie die Anweisungen.

    Es kann 15-20 Minuten dauern, bis das Problem erkannt und behoben ist.

Weitere Hilfe finden Sie unter dem Link https://help.ubuntu.com/community/Boot-Repair

Hart
quelle
0

Sie könnten eine Live-CD booten, Ihre Festplatte mounten, nautilus als root öffnen und diese Dateien nach / boot kopieren.

böse
quelle