web-dev-qa-db-fra.com

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

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 et pourtant j'ai vu un des commentaires disant que c'é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 avez également 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?

17
Griffin

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
9
flittermice

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 Arch, 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 désordre comme celui-ci se produit, la réinstallation de grub sur votre mbr (en utilisant grub-install ) devrait le réparer de façon permanente 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)

8
Cestarian

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

Le programme d'installation a créé /boot/grub/x86_64-efi modules mais pas la version régulière /boot/grub/i386-pc modules.

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
6
jamesallman

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 dessus, en conservant la partition Windows et en remplaçant 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 à une erreur non identifiée GRUB, 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 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.

1
dkergyl

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.

0
Wolfpack'08

Je suis entré dans 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 à partir de/mnt/usr/... (vous pouvez trouver où se trouve le vôtre par find /|grep i386) dans/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.

0
Pavel Anaschenko

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.

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

0
Celso de Carvalho