Grub-Fehler: Datei '/grub/i386-pc/normal.mod' nicht gefunden?

17

Ich habe kürzlich arch (hoffentlich erfolgreich) auf meinem Computer installiert. Als ich zum Neustart ging, hatte ich jedoch ein Problem. Ich habe einen schwarzen Bildschirm mit der Aufschrift

Grub loading.
Welcome to GRUB!
error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

Ich habe da gegoogelt und nach einer Antwort gesucht. Ich hätte hier in den Ubuntu-Foren beinahe einen gefunden , doch dann sah ich einen der Kommentare, der besagte, dass er falsch war. Es gibt auch eine andere Antwort, aber ich bin mir nicht sicher, ob ich von der Live-CD installieren möchte, aus Angst, Dinge durcheinander zu bringen.

Sie würden meine Befürchtung verstehen, wenn auch Sie 7 Stunden damit verbracht hätten, dies einzurichten, nachdem Sie ständig auf Partitionierungs-, Befehls-, Lernprogramm- und Systemprobleme gestoßen sind. Was für eine Freude.

Kennt jemand eine einfache Lösung, um Grub zum Laufen zu bringen?

Greif
quelle
Der zweite Vorschlag (mit der Live-CD und Chroot) ist wahrscheinlich einen Versuch wert. Oder eine Variation davon: Ich bin kein Arch-Benutzer, habe es aber schon einmal installiert, und wenn ich mich recht erinnere, sollten Sie diesen Vorschlag in Bezug auf die verschiedenen Phasen der Arch-Installation in Betracht ziehen, von denen einige eine Chroot-Installation beinhalten. Wenn Sie zu einem vorherigen Schritt zurückkehren können, indem Sie die Arch-CD booten und dann in Ihre Installation einbinden und chrooten, sollten Sie es versuchen können grub-install. Sie müssen keine der Schritte wiederholen, verwenden Sie sie nur als Leitfaden, um von einer Live-CD zu chrooten.
Goldlöckchen
Während ich gerade nicht am Computer bin, glaube ich, dass ich die Grub-Installation ausprobiert habe und es nicht funktioniert hat.-
Griffin
@Griffin Es hat nicht funktioniert, wie in "grub-install" fehlgeschlagen ist, oder es hat das Problem nicht behoben?
Derobert
@derobert grub-install war kein gültiger Befehl \
Griffin
@ Goldilocks Zweite funktioniert auch nicht
Griffin

Antworten:

9

Eine wirklich nervige Sache ...

Da anscheinend das Verzeichnis / boot / grub / i386-pc einfach nicht vorhanden war, löste ich das Problem, indem ich das gesamte Verzeichnis / usr / lib / grub / i386-pc nach / boot / grub kopierte. Das ist alles.

cp -r /usr/lib/grub/i386-pc /boot/grub
Flittermäuse
quelle
Das habe ich auch gemacht, weil es auch gefehlt hat. Leider konnte das nicht behoben werden.
Wolfpack'08
8

Ich bin in der Mitte eines ähnlichen Problems (übrigens auch auf Bogen)

Grub kann diese Datei nicht finden und ausführen, da sie ein falsches "Präfix" verwendet

Hier ist was du tust. Sie booten in den Grub-Rettungsmodus und finden dann einfach heraus, wie Sie ihn booten können.

Zuerst führen Sie set aus , um Variablen aufzulisten, zum Beispiel mine is

cmdpath=(hd0)
prefix=(hd1,msdos3)/boot/grub
root=hd1,msdos3

Das Präfix ist nun die Variable, in der grub nach der Datei normal.mod sucht. In meinem Fall ist hd1, msdos3 dasselbe wie / dev / sdb3 (ähnlich wäre hd0, msdos1 / dev / sda1). Möglicherweise möchten Sie eine Liste gültiger Partitionen anzeigen, indem Sie ls eingeben

In meinem Fall wurde grub nun wieder auf / dev / sdb1 installiert, das in meiner Arch-Partition als / boot eingebunden war, sodass das korrekte Präfix (hd1, msdos1) / grub lautete

Damit ich booten kann, muss ich Folgendes tun:

set prefix=(hd1,msdos1)/grub
insmod normal
normal

In Ihrem Fall müssen Sie sich entweder erinnern oder erraten, auf welcher Partition Sie grub installiert haben. Sie können falsch raten, es wird keinen Schaden anrichten, der Befehl insmod schlägt einfach fehl und Sie können es mit einer anderen Partition erneut versuchen.

Danach wird Grub wie gewohnt geladen und ich kann aus der Liste auswählen, was ich booten möchte. Normalerweise sollte eine Neuinstallation von grub auf Ihrem mbr (mit grub-install ) dieses Problem dauerhaft beheben, damit Sie dies nicht jedes Mal tun müssen, wenn Sie booten. Ich habe jedoch viele Schwierigkeiten herauszufinden, was zu tun ist, wenn es nicht so einfach ist, das Problem zu beheben (oder ich teile Ihnen mit, was Sie tun sollten).

Nur wenn dies fehlschlägt (z. B. wenn das Präfix korrekt ist, Sie aber immer noch nicht booten können), sollten Sie auf Live-CDs zurückgreifen oder CDs retten, um das Problem zu umgehen (dies sollte am besten vermieden werden).

Cestarian
quelle
Dies mag eine alte Frage sein, aber ich fand heraus, dass jemand antworten musste, wie man Grub Rescue tatsächlich einsetzt, anstatt mit Live-CDs und USBs herumzuspielen, um Dinge zu reparieren. Wir haben nicht immer Live-Medien zur Hand, um uns zu helfen, und selbst wenn, ist es normalerweise besser, in unserer bevorzugten Umgebung zu arbeiten.
Cestarian
Tolle Erklärung! (Vor allem der Hinweis "Falsch raten schadet nichts"). Ich hatte das gleiche Problem mit einem Dual-Boot-Windows + Ubuntu-System, nachdem ich fälschlicherweise geglaubt hatte, dass das Löschen einer Windows- Partition keine Auswirkungen auf Ubuntu haben würde. Wie auch immer, dieser Beitrag hat wirklich geholfen zu verstehen, wie man den Fehler behebt. Da ich mich nicht erinnern konnte, welche Partition grub enthielt, habe ich sie alle aufgelistet lsund dann nacheinander ausprobiert, bis ich die richtige Kombination getroffen habe :-)
Leigh
@Leigh froh, dass es jemandem geholfen hat :)
Cestarian
1
Etwas zu reparieren ist immer gut, aber zu verstehen, wie Sie es repariert haben, ist noch besser :-) Prost.
Leigh
Sie sind ein Genie
Ashish Doneriya
5

Ich hatte dieses Problem heute nach einer Neuinstallation von Mint 15.

Das Installationsprogramm hat /boot/grub/x86_64-efiModule erstellt , aber nicht die regulären/boot/grub/i386-pc Module.

Eine Neuinstallation von Grub von der Live-CD behebt das Problem.

Ersetzen Sie / dev / sda und / dev / sda1 durch Ihr Startgerät und Ihre Startpartition und führen Sie die folgenden Befehle von der Live-CD aus:

sudo mount /dev/sda1 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda
sudo reboot
Jamesallman
quelle
1

Danke für deinen Beitrag. Ich habe nach einer Neuinstallation von Linux CentOS 5.11 auf einem alten Dell Optiplex-Computer mit Windows Vista eine fast identische Fehlermeldung - "Datei '/grub2/i386-pc/normal.mod' nicht gefunden" - behoben, um ein Dual zu erstellen -Booten Sie das System.

Was meine Situation erschwerte, war, dass ich bereits versucht hatte, die neuere Fedora 20-Distribution, die GRUB2 anstelle von GRUB (LEGACY) verwendet, auf FEDORA-Standardpartitionen zu installieren. Dann habe ich versucht, CentOS direkt darüber zu installieren, die Windows-Partition beizubehalten und die FEDORA-Partitionen zu überschreiben.

Während der CentOS-Installation habe ich meine erste (Windows-) Partition alleine gelassen (hd0,0) und das Verzeichnis / boot auf einer zweiten (boot-) Partition (hd0,1) erstellt. Ich habe dann beschlossen, den MBR zu diesem Zeitpunkt nicht zu ändern, und stattdessen die andere Option (Bootloader auf einer anderen Partition) ausgewählt.

Nach einer anscheinend erfolgreichen Installation wurde der obige Fehler behoben.

Ich vermute, dass die Startinformationen auf der ersten Partition weiterhin auf den GRUB2-Speicherort verweisen. Die CPU konnte normal.mod nicht finden, möglicherweise weil die zuvor erstellten FEDORA00-Partitionen entfernt wurden.

Hier sind meine Schritte:

  1. Booten Sie von meiner Centos 5-Installations-CD in den Rettungsmodus ("Linux Rescue").

  2. Hängen Sie das lokale Laufwerk ein: chroot / mnt / sysimage

  3. Wechseln Sie in den Einzelbenutzermodus: su

  4. Aktualisieren Sie die CentOS-Installation: yum update

  5. Verwenden Sie den Emacs-Editor, um "Microsoft Windows Vista" zur Datei grub.conf hinzuzufügen: emacs /boot/grub/grub.conf, und machen Sie Vista zum Standardbetriebssystem.

    ( HINWEIS: Siehe www.cyberciti.biz/faq/grubconf-for-windows-vista-or-xp-dual-boot/ und https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html.) /Installation_Guide/sn-medialess-editing-grub-conf.html .)

  6. Versuchen Sie, den MBR zu aktualisieren: grub-install / dev / hda

  7. Starten Sie zu einem nicht identifizierten GRUB-Fehler neu, bei dem die CPU nach dem Anzeigen von "GRUB" abgestürzt ist.

  8. Starten Sie von der ursprünglichen Windows Vista-Installationsdiskette (oder einer anderen Windows-Wiederherstellungsdiskette) neu und wählen Sie die Option zum Reparieren der Diskette aus. Erhalten Sie die Nachricht, dass der MBR repariert wurde.

  9. Starten Sie Windows Vista ordnungsgemäß neu.

Ich bin sicher, dass es elegantere Lösungen gibt, aber das hat bei mir funktioniert. Ich versuchte auch das GRUB GRUB2 Migrationspaket zum Herunterladen, wie bei beschrieben http://help.ubuntu.com/community/Grub2/Upgrading , indem sie versuchen:

$ yum install grub-pc

Aber es konnte das Paket nicht finden. Vielleicht hätte ich es einfach versuchen sollen yum install grub.

dkergyl
quelle
0

Zu Flittermäusen hinzufügen ...

Wenn Sie von einem USB-Stick booten und über den Ordner i386 verfügen, können Sie den Ordner i386 auf der defekten Partition als Root öffnen und anschließend den aktiven Ordner i386 vom USB-Stick kopieren.

Jacob David C. Cunningham
quelle
0

Ich habe mich in zwei Schritten in mein CentOS 6.7-System eingearbeitet. Zuerst habe ich den Rat von flittermice oben befolgt, von der Live-CD gebootet, mein / dev / sda2 als / mnt gemountet und einfach den i386-pc-Ordner aus / mnt / usr / ... kopiert (Sie finden, wo sich Ihr befindet) durchfind /|grep i386 ) nach / boot / grub und neu gestartet.

Das gab mir Maden> anstatt Maden zu retten> ;-).

Dann habe ich hier eine Anleitung befolgt [ https://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux/] zum Auffinden und Booten verwendet meine Trennwand. Es war (hd0,2), weil (hd0,1) vom Swap genommen wurde.

Später habe ich herausgefunden, dass es nicht möglich war, diesen Boot "automatisch" zu machen, wahrscheinlich, weil mein / boot auf ext4 mit der Inode-Größe 256 war und der alte grub1 128 benötigt. Ich werde versuchen, einige Befehle von [ http: // kb.kristianreese.com/index.php?View=entry&EntryID=113] , um die Partition vor der Installation vorzubereiten.

Pavel Anaschenko
quelle
0

Installieren Sie Ubuntu neu. Gehen Sie zu "etwas anderes tun". Wählen Sie Ihre Windows-Installationspartition als Speicherort für die Installation des Bootloaders aus.

Wenn Sie bereits eine Windows-Installation haben, müssen Sie grub auf derselben Partition installieren. Andernfalls wird das Problem in der Frage angezeigt.

Dies ist relevant für 14, 15, 16, 17 Ubuntu alle Versionen und wahrscheinlich frühere Versionen. Wenn Sie gefragt werden, wo der Bootloader installiert werden soll, erstellen Sie keine / boot-Partition und wählen Sie sie aus. Verwenden Sie stattdessen die Windows-Partition.

Vielen Dank.

Wolfpack'08
quelle
0

Probieren Sie die Live-Grub-CD aus: http://ccm.net/faq/2677-super-grub-disk-live-cd Dann war das Terminal: cp -r / usr / lib / grub / i386-pc / boot / grub das Einzige Sache Diese Methode hat bei mir funktioniert.

Celso de Carvalho
quelle