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

46
error: file '/grub/i386-pc/normal.mod' not found.
grub rescue>

Was kann ich machen? Ich sitze nur und starre es an.

Ich habe mein altes Netbook (Dell Inspiron 1010) gefunden, das ich seit etwa vier Jahren nicht mehr benutzt habe. Ich habe Windows XP durch Ubuntu 12.10 ersetzt. Ich habe mein bootfähiges USB-Laufwerk verwendet. Ich habe es installiert und neu gestartet. Ich habe die Nachricht erhalten, normal.moddie nicht gefunden wurde.

Was soll ich machen? Typ exit, rebootoder quit? Sollte ich neu installieren?

Don Metlay
quelle
1
DIE ANTWORT UNTEN FUNKTIONIERT NIE. SO FUNKTIONIERT ES: Installieren Sie Ihr Betriebssystem neu, gehen Sie zu "etwas anderes tun", erstellen Sie dann Ihre Partitionstabellen use your windows partition as your primary boot device. Dieser letzte Schritt ist wichtig. NICHT BENUTZEN / booten. Möglicherweise gibt es eine andere Lösung: Versuchen Sie, das Startgerät während des Startvorgangs manuell zu ändern. Ich denke jedoch nicht, dass das funktionieren wird. Dies ist ein seit langem bestehendes Problem, das in Ubuntu bis einschließlich 17.10 weiterhin besteht. Danke.
Wolfpack'08
Keine dieser Anweisungen hat bei mir funktioniert. Tatsächlich verschlimmerte die Verwendung der verschiedenen Wiederherstellungstools das Problem. Ich konnte grub irgendwie neu installieren, aber da ich lvm2 verwende, konnte der Kernel nicht gestartet werden. Wenn Sie lvm2 für irgendetwas verwenden, müssen Sie das Betriebssystem neu installieren, wenn dieses Problem auftritt. Soweit ich das beurteilen kann, gibt es keine Wiederherstellung nach einer fehlgeschlagenen Kernel-Update + Grub + Lvm2-Kombination. lvm2 sieht sehr wenig offizielle Unterstützung, obwohl Ubuntu Server LTS irgendwann einmal unterstützt wurde. Ich mache eine Sicherungskopie meiner Daten und installiere das Betriebssystem neu. Ich werde lvm2 nicht mehr berühren. Ich habe meine Lektion gelernt.
CubicleSoft
1
Ich habe bereits von lvm2 gewechselt und hatte seitdem keine Probleme mehr. Keine meiner Infrastrukturen verwendet es mehr. Die standardmäßigen Systemrettungslösungen (sowohl grafische als auch CLI-Lösungen) kennen LVM nicht oder kaum und das ist ein ausreichender Grund, warum ich LVM nicht verwende. Selbst wenn ich Ihren Anweisungen zur Wiederherstellung des Systems folgen würde und sie funktionieren, würde das Problem wahrscheinlich in Zukunft erneut auftreten. Neuinstallation des Betriebssystems und Beenden von LVM war die beste und schnellste Option für mich.
CubicleSoft
1
@Wolfpack in meinem fall ist das problem, dass ohne normal.mod set ich evtl. ubuntu neu installieren kann, die lgoin funktioniert nt nicht. Was kann ich machen?
HoCo_
1
@ Wolfpack'08 Bitte poste deine Lösung als Antwort neu. Das Veröffentlichen von Lösungen als Kommentare umgeht die Website-Prinzipien. Sie sollten auch erwähnen, welche Antwort unten nie funktioniert, da es mehr davon gibt.
Melebius

Antworten:

40

Grub hat ein kleines Core-Image, das beim Booten geladen wird. Das Kernimage lädt dynamisch Module, die weitere Funktionen bereitstellen. i386-pc/normal.mod not foundgibt an, dass grub normal.mod nicht laden kann. Hierbei handelt es sich um ein Grub-Modul, das den normalen Befehl bereitstellt . Um normal.mod zu laden, musst du grub mitteilen, wo es ist. Verwenden Sie dazu die Befehlszeile von grub (auch bekannt als Rescue Console). Grub startet die Befehlszeile, wenn beim Booten ein Problem auftritt, oder Sie können sie manuell starten, indem Sie beim Start von Grub die Umschalttaste gedrückt halten (um das Grub-Menü zu erzwingen) und dann die Taste 'c' drücken.

Mit grub können Sie die Laufwerke, Partitionen und Dateisysteme erkunden. Du musst:

  • Suchen Sie die Grub-Installation mit ls oder search.file
  • Setze die Grub-Variablen $ prefix und $ root
  • Laden Sie das normale Modul und führen Sie es aus

Beispiel

Das Folgende ist nur ein Beispiel. Sie müssen es an Ihr lokales Laufwerk und Ihre Partition anpassen.

wo ist normal.mod Sehen Sie sich einige wahrscheinliche Orte an

grub> search.file /i386-pc/normal.mod
error: no such device: /i386-pc/normal.mod

grub> search.file /grub/i386-pc/normal.mod
error: no such device: /grub/i386-pc/normal.mod

grub> search.file /boot/grub/i386-pc/normal.mod
hd0,msdos1

Wenn "Unknown command 'search.file'"dies angezeigt wird, ist der Befehl search.file nicht verfügbar. Dies liegt wahrscheinlich daran, dass Sie an der grub rescue>Eingabeaufforderung und nicht an der grub>Eingabeaufforderung stehen. In diesem Fall können Sie weiterhin den lsBefehl verwenden und Ihre Kenntnisse über das Partitionslayout ermitteln normal.mod.

fand es um (hd0, msdos1)

grub> ls (hd0,msdos1)/boot/grub/i386-pc/normal.mod
normal.mod

warum hat grub es nicht gefunden?
check $ prefix - absoluter Speicherort des Grub-Verzeichnisses
(dies wird festgelegt, wenn Grub von Grub-Install installiert wird)

grub> echo $prefix
(hd0,msdos2)/boot/grub

check $ root - Standardgerät für Pfade, die keinen Geräte-
Grub enthalten, setzt dies zunächst auf das Gerät mit dem Präfix $

grub> echo $root
hd0,msdos2

root und prefix zeigen auf die falsche Partition (hd0, msdos2)
setze $ root und $ prefix auf die Partition, auf der wir normal.mod gefunden haben (hd0, msdos1)

grub> set root=(hd0,msdos1)
grub> set prefix=(hd0,msdos1)/boot/grub

Laden Sie das normale Modul und führen Sie es aus

grub> insmod normal
grub> normal

Einige andere Befehle, die hilfreich sein können

ls listet alle Geräte und Partitionen auf

grub> ls
(hd0) (hd0,msdos5) (hd0,msdos1)

ls Partition

grub> ls (hd0,msdos1)
        Partition hd0,msdos1: Filesystem type ext* - Last modification time
2014-05-08 15:56:38 Thursday, UUID c864cbdd-a2ba-43a4-83a3-66e305adb1b6 -
Partition start at 1024KiB - Total size 6290432Kib

ls Dateisystem (Anmerkung / am Ende)

grub> ls (hd0,msdos1)/
lost+found/ etc/ media/ bin/ boot/ dev/ home/ lib/ lib64/ mnt/ opt/ proc/
root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ vmlinuz initrd.img cdrom/

Das
Vorhandensein des Verzeichnisses i386-pc in / boot / grub bedeutet, dass dies eine BIOS-Installation ist. Das
Vorhandensein des Verzeichnisses x86_64-efi weist auf eine EFI-Installation hin

grub> ls (hd0,msdos1)/boot/grub
i386-pc/ locale/ fonts/ grubenv grub.cfg

bain
quelle
+1 Nachdem ich diese Schritte ausgeführt habe, um meine Ubuntu-Installation zu starten, habe ich ausgeführt sudo grub-install /dev/sdX, um meine Grub zu installieren. Ich denke, die LVM-Installation hat meine Angelegenheit irgendwie verwirrt.
DavidG
Ich schätze, wenn Sie "Unknown command 'search-file' bekommen, wie ich es gerade getan habe, ist es Zeit aufzugeben. Mein Rat an die Leute ist, Ubuntu niemals ohne eine Windows Recovery-DVD zu installieren nicht genug, wenn Grub durcheinander gerät und installiere Ubuntu niemals auf einem anderen Windows-Computer, denn wenn es durcheinander gerät, sind sie wirklich sauer
Scooter
@Scooter In dieser Antwort finden Sie Anweisungen zur Neuinstallation von Grub durch Booten einer Live-CD / USB.
Bain
@bain Danke für die Antwort. In meinem Fall habe ich eine Neuinstallation von der Ubuntu-ISO-Platte durchgeführt. Ubuntu hat herausgefunden, dass Grub durcheinander geraten ist oder dass es nur automatisch darüber schreibt, aber es hat es wieder dahin gebracht, wo ich wieder in der Lage war, Windows zu booten.
Scooter
Die Grub-Rettungsshell scheint keinen dieser Befehle zu unterstützen. "Unbekannter Befehl 'search.file'"
Cerin
30

Hab das heute Nachmittag auf einer Maschine gelöst. Es scheint, dass eine Ursache für dieses Problem der Installer ist, der denkt, dass Sie einen sicheren EFI-Start haben, wenn Sie dies nicht tun und daher die falschen GRUB-Dateien laden.

Sie müssen lediglich GRUB 2 installieren. Dazu müssen Sie von der Live-Instanz booten, Ihre Root-Partition mounten und installieren.

Suchen Sie in einer Live-Instanz die Partition, auf der Ihre Root-Partition geladen ist. GParted wird Ihnen dies mitteilen, oder Sie könnten es verwenden

sudo fdisk -l

Gehen Sie zu der Partition, in der Ubuntu installiert ist.

Sobald Sie Ihre Partition haben, müssen Sie sie mounten. Angenommen, die Root-Partition ist auf / dev / sda5, dann wäre das:

sudo mount /dev/sda5 /mnt

Dann installiere GRUB 2

sudo grub-install /dev/sda --root-directory=/mnt [Verwenden Sie Kopieren und Einfügen für diese, da einige Leerzeichen erforderlich sind, um sie zu korrigieren.]

Angenommen, dies ist Ihr Problem, dann sollten Sie in der Lage sein, neu zu starten und alles wird gut funktionieren.

Die ursprüngliche Lösung hierfür war von hier: http://ubuntujournal.blogspot.com/2012/11/fix-new-install-of-ubuntu-1210-wont-boot.html

MorrisseyJ
quelle
1
Hat bei mir nicht funktioniert. Ich habe das gleiche Problem und suche immer noch nach einer Lösung.
ExpatEgghead
3
--root-directory ist jetzt --boot-directory in grub2
bain
1
Eine weitere einfache Lösung, die für mich funktioniert hat, ist das Kopieren der grup-Sicherung in /etc/grub.d/backup nach / boot / grub. Überprüfen Sie die angehängte Infodatei auf geeignete Ordner und Pfade.
Jhexp
In meinem Fall bestand das Problem darin, dass ich 2 Festplatten habe und die BIOS-Sequenz zuerst auf dem falschen Laufwerk gesucht hat. Dieses Laufwerk hatte eine alte, beschädigte Installation.
eusoubrasileiro
Wenn Sie nicht wissen können, welches von fdisk das richtige ist, kann diese SO helfen (sie hat mir dabei geholfen, das Gerät / media / ubuntu / some-name zu finden). Unix.stackexchange.com/questions/11311/…
Michael
2

Ich habe diese Informationen nicht in den Foren gefunden, daher möchte ich einige Informationen weitergeben, obwohl diese Frage vor langer Zeit gestellt wurde:

Wenn Sie eine große (z. B. 1 TB) Partition mit Ubuntu installiert haben und für / boot / keine zusätzliche Partition zugewiesen haben, könnte dies der Grund für solche Fehler sein. Beim Start von GRUB wird der Biosdisk-Treiber zum Lesen normaler Treiber aus dem Verzeichnis / boot / grub / verwendet. Manchmal könnte sich dieses Verzeichnis physisch auf der Festplatte befinden, irgendwo nach dem vom Biosdisk-Sektor unterstützten Maximum. Das Problem kann beispielsweise nach einem System-Upgrade auftreten. Auch ich bin immer mit diesem Problem nach der Neuinstallation von Ubuntu 13.10 konfrontiert, aber es kann sich unterscheiden, da es von Motherboard / BIOS abhängt.

Sie können mithilfe der Grub-Wiederherstellung überprüfen, ob nach dem Festlegen von PREFIX und ROOT das Problem mit ls / boot besteht, wenn Sie nichts sehen, aber beim Booten von einer Live-CD / einem Flash-Laufwerk Dateien dort sehen können .

Sie können verschiedene Aktionen ausführen, um das System bootfähig zu machen. Sie können dieses Problem jedoch in Zukunft (während eines Dist-Upgrades) nur vermeiden, indem Sie das Verzeichnis / boot auf einer separaten kleinen Partition ablegen.

Trauer
quelle
1

Andere Lösungen funktionieren möglicherweise nicht, wenn Sie zur grub-rescueEingabeaufforderung gelangen und / oder Ihre Konfiguration LVM verwendet. Dies sollte der Fall sein.

Booten Sie von einer Rettungsdiskette (Tipp: Ich behalte eine kleine Distribution auf einer dedizierten Partition meiner USB-Sicherungsdiskette).

Wenn Sie LVM verwenden, suchen Sie den Namen Ihrer Datenträgergruppe mit lvdisplayoder einem anderen LVM-bezogenen Befehl. Aktivieren Sie es (andernfalls mount: special drive /dev/volumegroupname/partition does not existwird beim Einhängen ein Fehler angezeigt):

vgchange -a y volumegroupname

Hängen Sie nun Ihre übliche /Partition ein, zB auf /mnt :

mount /dev/volumegroupname/partition /mnt

Mounten Sie auch einige spezielle Geräte (sowie /bootauf einer separaten Partition):

mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
mount -t sysfs /sys /mnt/sys

Dann chrootin Ihre übliche Verteilung:

chroot /mnt

Schließlich installieren Sie GRUB2 neu - Befehle können abhängig von Ihrer Distribution variieren, dies funktioniert auf Slackware (wenn Ihr Laufwerk ist /dev/sda):

grub-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg

Starten Sie neu und Sie sollten fertig sein.

Skippy le Grand Gourou
quelle
0

DIE AUSGEWÄHLTE ANTWORT FUNKTIONIERT NIEMALS.

DAS FUNKTIONIERT:

  1. Installieren Sie Ihr Betriebssystem neu , gehen Sie zu " etwas anderes tun ", erstellen Sie Ihre Partitionstabellen,
  2. Verwenden Sie Ihre Windows-Partition als primäres Startgerät .

Der zweite Schritt ist unerlässlich .

NICHT VERWENDEN/boot .

Möglicherweise gibt es eine andere Lösung: Versuchen Sie, das Startgerät während des Startvorgangs manuell zu ändern. Ich glaube jedoch nicht, dass das funktionieren wird, und ich muss es noch testen.

Dies ist ein seit langem bestehendes Problem, das in Ubuntu bis einschließlich 17.10 weiterhin besteht.

Wolfpack'08
quelle