Erreur Grub: fichier '/grub/i386-pc/normal.mod' introuvable?

17

J'ai récemment installé arch (j'espère avec succès) sur ma machine. Quand je suis allé redémarrer, j'ai eu un problème. J'ai un écran noir avec un texte disant

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

J'ai depuis googlé à la recherche d'une réponse. J'en ai presque trouvé un ici sur les forums Ubuntu, puis j'ai vu l'un des commentaires disant qu'il était faux. Il y a aussi une autre réponse mais je ne sais pas si je veux installer à partir du CD live par peur de gâcher les choses.

Vous comprendrez ma crainte si vous aussi avez passé 7 heures à configurer cela après avoir constamment rencontré des problèmes de partitionnement, de commande, de didacticiel et de système. Quelle joie.

Quelqu'un connaît une solution simple pour faire fonctionner grub?

Griffon
la source
La deuxième suggestion (avec le liveCD et le chroot) vaut probablement la peine d'être essayée. Ou une variante: je ne suis pas un utilisateur d'Arch mais je l'ai déjà installé, et d'après ce dont je me souviens, vous voudrez peut-être envisager cette suggestion en relation avec les différentes étapes de l'installation d'Arch, dont certaines impliquent un chroot. Si vous pouvez revenir à une étape précédente en démarrant le CD arch puis en montant et en chrootant dans votre installation, vous devriez pouvoir essayer grub-install. Vous n'avez pas à répéter l'une des étapes, utilisez-les simplement comme guide pour vous faire chrooter à partir d'un liveCD.
goldilocks
Bien que je ne sois pas à l'ordinateur en ce moment, je crois que j'ai essayé l'installation de grub et cela n'a pas fonctionné.-
Griffin
@Griffin Cela n'a pas fonctionné car "grub-install" a échoué, ou cela n'a pas résolu le problème?
derobert
@derobert grub-install n'était pas une commande valide \
Griffin
@goldilocks Le second ne fonctionne pas non plus
Griffin

Réponses:

9

Une chose vraiment ennuyeuse ...

Comme apparemment le répertoire / boot / grub / i386-pc n'était tout simplement pas en place, j'ai finalement résolu le problème en copiant l'ensemble / usr / lib / grub / i386-pc vers / boot / grub. C'est tout.

cp -r /usr/lib/grub/i386-pc /boot/grub
flittermice
la source
Je l'ai également fait parce qu'il manquait également. Malheureusement, cela ne l'a pas corrigé.
Wolfpack'08
8

Je suis au milieu d'un problème similaire (d'ailleurs d'ailleurs sur arch)

Grub ne parvient pas à trouver ce fichier et à s'exécuter car il utilise un «préfixe» incorrect

Voici ce que vous faites. Vous démarrez en mode de sauvetage grub, puis vous découvrez simplement comment le faire démarrer.

D'abord, vous exécutez set cela listera les variables, par exemple la mienne est

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

Maintenant, le préfixe est la variable où grub recherche le fichier normal.mod. Dans mon cas hd1, msdos3 est identique à / dev / sdb3 (de même, hd0, msdos1 serait / dev / sda1) ce que vous voudrez peut-être faire pour voir une liste de partitions valides est de taper ls

Maintenant, dans mon cas, encore une fois, grub a été installé sur / dev / sdb1 qui a été monté en tant que / boot dans ma partition d' archive , donc le préfixe correct serait (hd1, msdos1) / grub

Donc, pour que je démarre, je dois faire ceci:

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

Dans votre cas, vous devrez vous souvenir ou deviner sur quelle partition vous avez installé grub. Vous pouvez deviner mal, cela ne fera aucun mal, la commande insmod échouera simplement et vous pouvez réessayer avec une autre partition.

Après cela, grub se charge normalement, et je peux choisir dans la liste ce que je veux démarrer. Normalement, quand un gâchis comme celui-ci se produit, la réinstallation de grub sur votre mbr (à l'aide de grub-install ) devrait le réparer définitivement afin que vous n'ayez pas à le faire à chaque démarrage. J'ai cependant beaucoup de difficulté à savoir quoi faire si le réparer n'est pas aussi simple (ou je partagerais ce que vous devriez faire).

Ce n'est qu'en cas d'échec (par exemple, si le préfixe est correct mais que vous ne pouvez toujours pas démarrer) que vous devez recourir à des CD en direct ou à des secours pour contourner le problème (il est préférable d'éviter cela)

Cestarian
la source
Cela peut être un peu une vieille question, mais j'ai trouvé que quelqu'un devait répondre à la façon d'utiliser réellement grub rescue au lieu de fouiller en utilisant des CD et des usb en direct pour réparer les choses. Nous n'avons pas toujours de médias en direct pour nous aider, et même si c'est le cas, il est généralement préférable de travailler à partir de notre environnement préféré.
Cestarian
Grande explication! (Surtout la note sur "deviner mal ne fera rien de mal"). J'ai rencontré le même problème avec un système à double démarrage Windows + Ubuntu, après avoir pensé à tort que la suppression d'une partition Windows n'aurait aucun impact sur Ubuntu. Quoi qu'il en soit, ce message a vraiment aidé à comprendre comment corriger l'erreur. Comme je ne me souvenais pas de la partition contenant grub, je les ai tous listés ls, puis je les ai essayés un par un jusqu'à ce que je frappe la bonne combinaison :-)
Leigh
@Leigh heureux d'avoir aidé quelqu'un :)
Cestarian
1
Réparer quelque chose est toujours bon, mais comprendre comment vous l'avez corrigé est encore mieux :-) Bravo.
Leigh
Vous êtes un génie
Ashish Doneriya
5

Je viens d'avoir ce problème aujourd'hui après une nouvelle installation de Mint 15.

Le programme d'installation a créé des /boot/grub/x86_64-efimodules mais pas les /boot/grub/i386-pcmodules standard .

Une réinstallation de Grub à partir du Live CD a résolu le problème.

Remplacez / dev / sda et / dev / sda1 par votre périphérique de démarrage et votre partition de démarrage et exécutez les commandes suivantes à partir du Live CD:

sudo mount /dev/sda1 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda
sudo reboot
jamesallman
la source
1

Merci pour votre message. J'ai résolu un message d'erreur presque identique - "fichier '/grub2/i386-pc/normal.mod' introuvable" après une nouvelle installation de Linux CentOS 5.11 sur un vieil ordinateur Dell Optiplex avec Windows Vista, afin de créer un double -boot système.

Ce qui a compliqué ma situation, c'est que j'avais déjà essayé et échoué à installer la nouvelle distribution Fedora 20, qui utilise GRUB2 au lieu de GRUB (LEGACY), sur les partitions par défaut de FEDORA. Ensuite, j'ai essayé d'installer CentOS directement sur cela, en gardant la partition Windows et en écrasant les partitions FEDORA.

Pendant l'installation de CentOS, j'ai laissé ma première partition (Windows) seule (hd0,0) et créé le répertoire / boot sur une deuxième partition (boot) (hd0,1). J'ai alors choisi de ne pas modifier le MBR à l'époque et j'ai plutôt choisi l'autre option (bootloader sur une autre partition).

Après ce qui semblait être une installation réussie, il a redémarré avec l'erreur ci-dessus.

Je soupçonne que les informations de démarrage sur la première partition pointaient toujours vers l'emplacement GRUB2. Le processeur n'a pas pu trouver normal.mod, peut-être parce que les partitions FEDORA00 précédemment créées ont été supprimées.

Voici mes étapes:

  1. Démarrez à partir de mon CD d'installation de Centos 5 en mode de secours ("sauvetage Linux").

  2. Montez le lecteur local: chroot / mnt / sysimage

  3. Passer en mode mono-utilisateur: su

  4. Mettre à jour l'installation de CentOS: mise à jour yum

  5. Utilisez l'éditeur emacs pour ajouter "Microsoft Windows Vista" au fichier grub.conf: emacs /boot/grub/grub.conf, et faites de Vista le système d'exploitation par défaut.

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

  6. Tentative de mise à jour du MBR: grub-install / dev / hda

  7. Redémarrez sur une erreur GRUB non identifiée, dans laquelle le CPU s'est bloqué après l'affichage de "GRUB".

  8. Redémarrez à partir du disque d'installation de Windows Vista d'origine (ou d'un autre disque de récupération Windows) et sélectionnez l'option pour réparer le disque. Recevez un message indiquant que le MBR a été réparé.

  9. Redémarrez correctement dans Windows Vista.

Je suis sûr qu'il existe des solutions plus élégantes, mais cela a fonctionné pour moi. J'ai également tenté de télécharger le package de migration GRUB vers GRUB2, comme décrit sur http://help.ubuntu.com/community/Grub2/Upgrading , en essayant:

$ yum install grub-pc

Mais il n'a pas pu trouver le paquet. J'aurais peut-être dû essayer yum install grub.

dkergyl
la source
0

Ajout à flittermice ...

si vous démarrez à partir d'une clé USB et que vous avez le dossier i386, vous pouvez ouvrir le dossier i386 sur la partition cassée en tant que root, puis copier le dossier i386 de travail à partir de l'USB.

Jacob David C. Cunningham
la source
0

J'ai intégré mon système CentOS 6.7 en deux étapes. Tout d'abord, j'ai suivi les conseils de flittermice ci-dessus, démarré à partir du CD live, monté mon / dev / sda2 en tant que / mnt et juste copié le dossier i386-pc depuis / mnt / usr / ... (vous pouvez trouver où se trouve le vôtre par find /|grep i386) à / boot / grub et redémarré.

Cela m'a donné grub> au lieu de grub rescue> ;-).

Ensuite, j'ai suivi un guide ici [ https://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux/] pour trouver et démarrer dans ma partition. C'était (hd0,2), car (hd0,1) a été pris par le swap.

Plus tard, j'ai compris que rendre ce démarrage "automatique" n'était pas possible, probablement parce que mon / boot était sur ext4 avec une taille d'inode de 256 et que l'ancien grub1 nécessite 128. J'essaierai de suivre quelques commandes de [ http: // kb.kristianreese.com/index.php?View=entry&EntryID=113] pour préparer la partition avant l'installation.

Pavel Anaschenko
la source
0

Réinstallez Ubuntu. Allez à "faire autre chose". Sélectionnez votre partition d'installation Windows comme emplacement où elle doit installer le chargeur de démarrage.

Si vous avez une installation Windows existante, vous devez installer grub sur la même partition; sinon, vous aurez le problème vu dans la question.

Ceci est valable pour 14, 15, 16, 17 Ubuntu toutes les versions et probablement les versions antérieures. Lorsqu'on vous demande où installer le chargeur de démarrage, ne créez pas et ne sélectionnez pas de partition / boot; utilisez plutôt la partition Windows.

Je vous remercie.

Wolfpack'08
la source
0

Essayez le cd live grub: http://ccm.net/faq/2677-super-grub-disk-live-cd Puis le terminal: cp -r / usr / lib / grub / i386-pc / boot / grub était le seule chose Cette méthode a fonctionné pour moi.

Celso de Carvalho
la source