Grub Rescue - Fehler: unbekanntes Dateisystem


59

Ich habe ein Multiboot-System eingerichtet. Das System verfügt über drei Laufwerke. Multiboot ist mit Windows XP, Windows 7 und Ubuntu konfiguriert - alles auf dem ersten Laufwerk. Ich hatte viel nicht partitionierten Speicherplatz auf dem Laufwerk und reservierte ihn für das Hinzufügen anderer Betriebssysteme und das Speichern von Dateien in der Zukunft.

Eines Tages habe ich den Partition Wizard heruntergeladen und eine logische NTFS-Partition in Windows 7 erstellt, wobei noch nicht partitionierter Speicherplatz übrig war. Alles hat gut funktioniert, bis ich den Computer ein paar Tage später neu startete.

Jetzt bekomme ich:

error: unknown filesystem.  
grub rescue>

Zunächst war ich überrascht, keinen Hilfebefehl zu finden, indem ich versuchte:

help, ?, man, --help, -h, bash, cmd, Usw.

Jetzt stecke ich mit nicht bootfähigem System fest. Ich habe begonnen, das Problem zu untersuchen und herauszufinden, dass die Leute normalerweise empfehlen, von einer Live-CD zu booten und das Problem von dort aus zu beheben. Gibt es eine Möglichkeit, dieses Problem aus der Grub-Rettung heraus zu beheben, ohne dass eine Live-CD erforderlich ist?

AKTUALISIEREN

Durch Befolgen der Schritte von Persist-Befehlen, die in GRUB rescue eingegeben wurden , konnte ich zur initramfs-Eingabeaufforderung booten. Aber nirgendwo weiter.

Bisher habe ich das Handbuch zur Rettung von Grubs nicht gelesen, sondern konnte meine Laufwerke und Partitionen mithilfe von Befehlen anzeigen ls. Für die erste Festplatte sehe ich Folgendes:
(hd0) (hd0, msdos6) (hd0, msdos5) (hd0, msdos2) (hd0, msdos1)

Ich weiß jetzt, dass (hd0, msdos6) Linux darauf enthält, da ls (hd0,msdos6)/Verzeichnisse aufgelistet sind. Andere geben "Fehler: unbekanntes Dateisystem".

UPDATE 2

Nach den folgenden Befehlen komme ich nun in das Boot-Menü und kann in Windows 7 und Ubuntu booten, aber nach dem Neustart muss ich diese Schritte wiederholen.

ls
ls (hd0,msdos6)/
set root=(hd0,msdos6)
ls /
set prefix=(hd0,msdos6)/boot/grub
insmod /boot/grub/linux.mod
normal

UPDATE 3

Vielen Dank Shashank Singh, mit Ihren Anweisungen habe ich meine Schritte wie folgt vereinfacht. Ich habe von dir gelernt, dass ich msdos6 durch nur eine 6 ersetzen kann und dass ich es einfach tun kann, insmod normalanstatt insmod /boot/grub/linux.mod. Jetzt muss ich nur noch herausfinden, wie ich diese Einstellungen in grub selbst speichern kann, ohne ein Betriebssystem zu booten.

set root=(hd0,6)
set prefix=(hd0,6)/boot/grub
insmod normal
normal

UPDATE 4

Nun, es scheint eine Voraussetzung zu sein, um Linux zu booten. Nach dem Booten von Ubuntu habe ich die folgenden im Handbuch beschriebenen Schritte ausgeführt :

sudo update-grub
sudo grub-install /dev/sda

Das Problem wurde dadurch nicht behoben. Ich bekomme immer noch die Grub Rescue-Aufforderung. Was muss ich tun, um das Problem dauerhaft zu beheben?

Ich habe auch gelernt, dass Laufwerksnummern wie in hd0 für einige Befehle in Laufwerksbuchstaben wie in / dev / sda übersetzt werden müssen. hd1 wäre sdb, hd2 wäre sdc und so weiter. In grub als (hd0, msdos6) aufgeführte Partitionen würden in / dev / sda6 übersetzt.

UPDATE 5

Ich konnte nicht herausfinden, warum die folgenden Probleme nicht behoben wurden:

sudo update-grub
sudo grub-install /dev/sda

Also habe ich Boot-Repair basierend auf einer Antwort von https://help.ubuntu.com/community/Boot-Repair nachgeladen. Das schien der Trick zu sein, nachdem ich die Option "Empfohlene Reparatur (repariert die häufigsten Probleme)" ausgewählt hatte.


zdnet.com/… hat auch einige hilfreiche Informationen zu diesem Thema.
K7AAY

Ähnliches Problem, aber in meinem Live-USB ist auch nutzlos goo.gl/Mr61V1
Ramesh

Das Ändern der Startreihenfolge, beginnend mit der Windows 7-Wiederherstellungs-CD, Starten des Terminals, Eingeben von "Bootrec.exe / FixMbr" (ohne Anführungszeichen) und Neustarten, hat mein Problem behoben.
Consuela

Im vorigen Update3 hat bei mir aber jetzt das selbe Problem geklappt. Nicht funktioniert, auch wenn ich es mit aufgelisteten Ordnern in Grub Rescue versucht habe. Ich habe versucht, Daten mit einem Ubuntu-ISO-Gerät zu sichern, wobei das vorhandene Ubuntu keine Auflistung enthält. Helfen Sie mir, was soll ich jetzt tun?
Jaccs

Dies scheint die kanonische Frage zu sein, aber eine noch ältere Frage ist Unknown file system: grub rescue .
Peter Mortensen

Antworten:


25

Ich konnte nicht herausfinden, warum die folgenden Probleme nicht behoben wurden:

sudo update-grub
sudo grub-install /dev/sda

Also habe ich Boot-Repair basierend auf einer Antwort von Persist-Befehlen heruntergeladen, die in den GRUB-Rettungsposten eingegeben wurden . Das schien der Trick zu sein, nachdem ich die Option "Empfohlene Reparatur (repariert die häufigsten Probleme)" ausgewählt hatte.

Ich habe auch Grub Customizer verwendet , um die Reihenfolge der Starteinträge anzupassen.


Es hat nicht funktioniert, da Sie nach dem letzten Befehl sudo update-grub erneut ausführen müssen. In einer Live-Sitzung müssten Sie das Zieldateisystem mnt, chroot in das Dateisystem einhängen und dann sudo update-grub von chroot ausführen.
28.

Mit den Informationen aus dieser Antwort (Installation und Verwendung von Boot-Repair) und der Frage funktionierte die Wiederherstellung auf einem Acer-Netbook, auf dem ich im GRUB-Menü "Windows Recovery Environment (loader) (on /dev/sda1)" einen falschen Eintrag ausgewählt hatte. während der Startzeit.
Peter Mortensen

7

Es gibt eine alternative Ursache für dieses Problem. In diesem speziellen Fall war GRUB irgendwie beschädigt und musste repariert oder neu installiert werden. Wie in Grub angezeigt, schlägt die Wiederherstellung mit "Boot Repair" mit dem Fehler "unknown file system" fehl. Es ist jedoch auch möglich, dass die Root-Partition, auf der GRUB installiert ist, beschädigt ist. Um dies zu beheben:

Dies ist eine mögliche Lösung, sollte jedoch nicht verwendet werden, damit Ihre Root-Partition nicht weiter beschädigt wird. Wenn Sie den Befehl fsck -t ext4 /dev/sda1ausführen, versucht dieses Programm, Fehler in einem beschädigten Dateisystem zu suchen und zu reparieren. Ersetzen Sie sda1 durch Ihre eigentliche Root-Partition. Ersetzen Sie ext4 durch das aktuelle Dateisystem. Sie müssen das Dateisystem kennen, sonst wird die Partition mehr beschädigt. Weitere Informationen finden Sie unter Reparieren eines beschädigten Dateisystems .


Obwohl diese Frage eine Antwort hat, gibt es eine alternative Möglichkeit, das Problem zu beheben, das für mich funktioniert hat. Die Schritte werden im schmerzhaften Video Grub Rescue - Guide für Anfänger erklärt . Kurz gesagt, GRUB 2 wird neu installiert, anstatt es zu reparieren.

Da es so schmerzhaft ist, dieses Video anzuschauen, liste ich die folgenden Schritte auf (wie ich sollte, unabhängig davon, wie schmerzhaft es ist, das Video anzuschauen).

  1. Starten Sie eine Live-Sitzung von Ubuntu. Das Video verwendet eine Live-CD, während ich ein Live-USB verwendet habe. Ich habe dafür gesorgt, dass der Live-USB die gleiche Ubuntu-Version hat, die ich auf meiner Festplatte hatte.
  2. Finden Sie heraus, wo Ihre Root-Partition gemountet wurde. In dem Video navigiert der Benutzer mit Nautilus durch jedes bereitgestellte Laufwerk. Es war mit einer langen Reihe von Zahlen und Zeichen montiert. Befolgen Sie in diesem Fall die folgenden Schritte, um die Partition erneut bereitzustellen. Fahren Sie andernfalls mit Schritt 5 fort.
  3. Rufen Sie das Terminal mit Ctrl+ Alt+ auf Tund verwenden Sie den mountBefehl, um den Namen der Partition zu finden.
  4. Hängen Sie die Partition ein. Erstellen Sie einen neuen Ordner in Ihrem Medienordner. sudo mkdir /media/ubuntu. Dann mounten Sie einfach Ihre Partition in diesen Ordner. sudo mount /dev/sdxx /media/ubuntuwo xxvon sdxxwird in Schritt 3 bestimmt.
  5. Binden Sie die folgenden Verzeichnisse aus dem Stammverzeichnis Ihrer Live-CD / USB an das Verzeichnis Ihres Stammverzeichnisses in Ihrer Ubuntu-Version. Die Verzeichnisse sind die dev procund sys. Tun Sie dies mit den folgenden Befehlen:

    sudo mount --bind /dev /media/ubuntu/dev
    sudo mount --bind /sys /media/ubuntu/sys
    sudo mount --bind /proc /media/ubuntu/proc
    
  6. Ändern Sie das Stammverzeichnis in das auf Ihrer Ubuntu-Partition. sudo chroot /media/ubuntu/

  7. Nachdem Sie die obigen Schritte ausgeführt haben, wird GRUB 2 durch erneutes Installieren im Stammverzeichnis Ihrer Ubuntu-Distribution und nicht auf der Live-CD / USB installiert. Also renn lossudo grub-install /dev/sdx

Und so können Sie GRUB mit einer Live-CD / USB reparieren. Diese Methode wurde vom YouTube-Nutzer crazytechzone entwickelt.


6

Verwenden:

  1. set prefix=(hdX,Y)/boot/grub. Verwenden Sie die zuvor ermittelten Werte.
    Beispiel: Wenn das Ubuntu-System auf sda5 läuft, geben Sie Folgendes ein:
    set prefix=(hd0,5)/boot/grub
  2. set root=(hdX,Y). Beispiel:set root=(hd0,5)
  3. insmod normal. Versuchen Sie, das normale Modul zu laden.
  4. normal

Grundsätzlich muss GRUB wissen, wo sich der /boot/grubOrdner befindet. Wenn dies nicht funktioniert, ist eine GRUB-Installation von einer Boot-CD eine gute Option.


Danke für deine Hilfe. Ich denke, mein Problem könnte sein, dass sich mein Boot-Verzeichnis in / dev / sdb befindet, nicht in / dev / sda. Aber Boot-Repair hat es automatisch behoben, so dass ich nichts weiter tun musste.
user53817

3

Komisch, ich hatte vor einer Stunde auch das gleiche Problem!

Jedenfalls habe ich das getan.

  1. Ubuntu laden:

    set root=(hd0,6)
    set prefix=(hd0,6)/boot/grub
    insmod normal
    normal
    

    seit wann ist dein ubuntu in 6 installiert oder?

  2. Terminal ausführen:

    sudo -i *to access root*
    grub-install --root-directory=/mnt/ /dev/sda
    sudo update-grub
    sudo grub-install /dev/sda
    

Vielen Dank für Ihre Antwort, aber ich habe mein Problem mit dem Boot-Repair-Tool behoben, bevor Sie die Antwort gepostet haben. Ich habe diesen Beitrag nun mit meiner Lösung aktualisiert. Ich wünschte, ich hätte auch Ihre Methode ausprobiert.
user53817

2

Installieren Sie Boot-Repair in Ubuntu

  1. Starten Sie Ihren Computer von einer Ubuntu-Live-CD oder einem Live-USB.

  2. Wähle "Probiere Ubuntu aus"

  3. Verbinden Sie das Internet

  4. Öffnen Sie ein neues Terminal ( Ctrl+ Alt+ T) und geben Sie Folgendes ein:

    sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    
  5. Drücken Sie Enter.

  6. Dann tippe:

    sudo apt-get install -y boot-repair && boot-repair
    
  7. Drücken Sie Enter.

Boot-Repair verwenden

Bildbeschreibung hier eingeben

Empfohlene Reparatur

  1. Starten Sie Boot-Repair von entweder:

    ein. Der Dash (das Ubuntu-Logo oben links auf dem Bildschirm)

    b. Oder System-> Administration-> Boot-Repair-Menü (nur Ubuntu 10.04)

    c. Oder indem Sie "boot-repair" in ein Terminal eingeben

  2. Klicken Sie anschließend auf die Schaltfläche "Empfohlene Reparatur". Notieren Sie sich nach Abschluss der Reparatur die URL (paste.ubuntu.com/XXXXX), die auf einem Papier angegeben ist, starten Sie das System neu und überprüfen Sie, ob Sie den Zugriff auf Ihre Betriebssysteme wiederhergestellt haben.

  3. Wenn die Reparatur nicht erfolgreich war, geben Sie die URL per E-Mail oder Forum an Personen weiter, die Ihnen helfen.


@penreturn Vielen Dank, das hat wunderbar funktioniert. : D
Jeel Shah

0

Eine weitere Ursache für das Problem ist, dass das Dateisystem auf dem Startlaufwerk in seltenen Fällen abstürzt. Wie in anderen Antworten erwähnt, verwende ich zunächst den lsBefehl, um alle Laufwerke / Partitionen in der GRUB-Rettungsaufforderung aufzulisten, aber alle melden einen unbekannten Dateisystemfehler . Ich habe das Problem unter Ubuntu 16.04 (Xenial Xerus) endlich behoben, indem ich das Dateisystem wie folgt wiederhergestellt habe:

  1. Booten von einem USB-Stick (Ubuntu ohne Installation ausprobieren)

  2. Suchen Sie das Startlaufwerk (überprüfen Sie die Laufwerkskapazität oder führen Sie fsckauf jeder Partition die folgenden Schritte aus):

    sudo fdisk -l
    
  3. Stellen Sie das Dateisystem wieder her:

    sudo fsck /dev/sdb1
    
  4. Nachdem das Dateisystem repariert und sauber ist, starten Sie den Computer vom Startlaufwerk aus neu.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.