web-dev-qa-db-fra.com

erreur: fichier '/grub/i386-pc/normal.mod' introuvable

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

Que puis-je faire? Je viens de m'asseoir et de regarder.

J'ai trouvé mon ancien netbook (Dell Inspiron 1010) que je n'ai pas utilisé depuis environ quatre ans. J'ai remplacé Windows XP par Ubuntu 12.10. J'ai utilisé ma clé USB bootable. J'ai installé et redémarré. J'ai reçu le message que normal.mod est introuvable.

Que devrais-je faire? Tapez exitname____, rebootou quitname__? Devrais-je ré-installer?

44
Don Metlay

Grub a une petite image de base chargée au démarrage. L'image principale charge de manière dynamique des modules offrant des fonctionnalités supplémentaires. i386-pc/normal.mod not found indique que grub ne peut pas charger normal.mod , module qui fournit la commande normale . Pour charger normal.mod , vous devez indiquer à grub où il se trouve. Pour ce faire, vous pouvez utiliser la ligne de commande grub (aussi appelée Rescue Console). Grub lancera la ligne de commande en cas de problème, ou vous pouvez le démarrer manuellement en maintenant la touche Maj enfoncée au démarrage (pour afficher le menu grub), puis en appuyant sur la touche 'c'.

En utilisant grub, vous pouvez explorer les lecteurs, les partitions et les systèmes de fichiers. Tu dois:

  • localisez l'installation grub en utilisant ls ou search.file
  • définir les variables grub $ prefix et $ root
  • charger et exécuter le module normal

Exemple

Ce qui suit est juste un exemple. Vous devrez l’adapter à la configuration de votre lecteur local et de votre partition.

où est normal.mod? regarder dans certains endroits probables

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

Si vous obtenez "Unknown command 'search.file'", cela signifie que la commande search.file n'est pas disponible. Ceci est probablement dû au fait que vous êtes à l'invite grub rescue> et non à grub>. Dans ce cas, vous pouvez toujours continuer et utiliser la commande ls et votre connaissance de la structure de votre partition pour rechercher normal.mod.

l'a trouvé à (hd0, msdos1)

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

Pourquoi Grub ne l'a-t-il pas trouvé?
vérifie $ prefix - emplacement absolu du répertoire grub
(défini lors de l'installation de grub par grub-install)

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

check $ root - périphérique par défaut pour les chemins n'incluant pas de périphérique
grub initialise ceci sur le périphérique à partir de $ prefix

grub> echo $root
hd0,msdos2

racine et préfixe pointent vers la mauvaise partition (hd0, msdos2)
définissez $ root et $ prefix sur la partition où nous avons trouvé normal.mod (hd0, msdos1)

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

charge et exécute le module normal

grub> insmod normal
grub> normal

Quelques autres commandes qui peuvent être utiles

ls répertorie tous les périphériques et partitions

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

partition ls

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 système de fichiers (note/à la fin)

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/

regardez à l'intérieur de/boot/grub
La présence du répertoire i386-pc signifie qu’il s’agit d’une installation du BIOS.
La présence du répertoire x86_64-efi indiquerait une installation EFI

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

38
bain

Résolu ceci sur une machine cet après-midi. Il semble que l’une des causes de ce problème soit que le programme d’installation pense qu’il dispose du démarrage sécurisé EFI, ce qui est le cas, et charge donc les fichiers GRUB incorrects.

Ce que vous devez faire, c'est installer GRUB 2. Pour ce faire, vous devez démarrer sur l'instance active, montez votre partition racine et installez-la.

À partir d'une instance en direct, recherchez la partition sur laquelle votre partition racine est chargée. GParted vous le dira, ou vous pourriez utiliser

Sudo fdisk -l

Choisissez la partition dans laquelle Ubuntu est installé.

Une fois que vous avez votre partition, vous devez la monter. En supposant que la partition racine soit sur/dev/sda5, ce serait:

Sudo mount /dev/sda5 /mnt

Puis installez GRUB 2

Sudo grub-install /dev/sda --root-directory=/mnt [utilisez copier et coller pour celui-ci car il y a des espaces dont vous avez besoin pour obtenir les bons résultats.]

En supposant que ce soit votre problème, vous devriez alors pouvoir redémarrer et tout fonctionnera correctement.

La solution originale pour cela était d'ici: http://ubuntujournal.blogspot.com/2012/11/fix-new-install-of-ubuntu-1210-wont-boot.html

29
MorrisseyJ

Je n'ai pas trouvé cette information sur les forums, alors je souhaite partager certaines informations malgré le fait que cette question a été posée il y a longtemps:

Si vous avez une grande partition (par exemple, 1 To) sur laquelle Ubuntu est installé et que vous n'avez pas alloué de partition supplémentaire pour/boot /, cela peut être la cause de telles erreurs. Lorsque GRUB démarre, il utilise le pilote de biosdisk pour lire les pilotes normaux à partir du répertoire/boot/grub /. Parfois, ce répertoire peut être physiquement situé sur le disque dur quelque part après le maximum pris en charge par le secteur biosdisk. Le problème peut apparaître, par exemple, après la mise à niveau du système. De plus, je suis toujours confronté à ce problème après la nouvelle installation d’Ubuntu 13.10, mais il peut varier, car cela dépend de la carte mère/du BIOS.

Vous pouvez vérifier que, à l'aide de la récupération de fichier grub - après avoir défini les paramètres PREFIX et ROOT corrects, essayez de ls/boot - si vous ne voyez rien, mais que vous pouvez voir les fichiers lors du démarrage à partir du lecteur cd/flash en direct - par rapport au problème décrit ci-dessus. .

Vous pouvez faire différentes choses pour rendre le système amorçable, mais le seul moyen d'éviter ce problème à l'avenir (lors des dist-upgrades) est de placer le répertoire/boot sur une petite partition séparée.

2
Grief

! LA REPONSE CHOISIE NE FONCTIONNE JAMAIS.

CELA FONCTIONNE:

  1. Réinstallez votre système d'exploitation , allez à " faites autre chose ", créez vos tables de partition,
  2. Utilisez votre partition Windows comme périphérique de démarrage principal .

La deuxième étape est essentielle .

N'UTILISEZ PAS /boot.

Il pourrait y avoir une autre solution: essayez de changer manuellement votre périphérique d’amorçage au démarrage; Cependant, je ne pense pas que cela fonctionnera et je n'ai pas encore testé.

C’est un problème de longue date qui a persisté dans Ubuntu jusqu’à 17.10 inclus.

0
Wolfpack'08

D'autres solutions risquent de ne pas fonctionner si vous obtenez l'invite grub-rescue et/ou si votre configuration utilise LVM, celle-ci devrait l'être.

Démarrez sur un disque de secours (conseil: je conserve une petite distribution sur une partition dédiée de mon disque USB de sauvegarde).

Si vous utilisez LVM, recherchez le nom de votre groupe de volumes avec lvdisplay ou une autre commande associée à LVM. Activez-le (sinon vous obtiendrez une erreur mount: special drive /dev/volumegroupname/partition does not exist en essayant de monter):

vgchange -a y volumegroupname

Montez maintenant votre partition / habituelle, par exemple. sur /mnt:

mount /dev/volumegroupname/partition /mnt

Montez également quelques périphériques spéciaux (ainsi que /boot si sur une partition séparée):

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

Puis chroot dans votre distribution habituelle:

chroot /mnt

(Évidemment

Enfin, réinstallez GRUB2 - les commandes peuvent varier en fonction de votre distribution, cela fonctionne sur Slackware (si votre lecteur est /dev/sda):

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

Redémarrez et vous devriez avoir terminé.

0