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 exit
name____, reboot
ou quit
name__? Devrais-je ré-installer?
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:
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
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
search
ou search.file
ne sont pas reconnues, définissez $prefix
correctement puis exécutez insmod search
, pour ls
faites insmod ls
etc. Exécutez find /boot/grub -name *.mod
sur une installation Linux opérationnelle pour voir tous les modules Grub chargés dynamiquement.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
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.
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.
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é.