Résolution des erreurs de GRUB sous Gentoo
1.
Préface
Remerciements
Nos remerciements vont à :
Earthwings,
penetrode,
loyaltonone,
pilla,
airhead,
nephros,
yamakawa
et à tous les autres participants du
fil de
discussion ayant permis la rédaction du présent texte.
Avertissement
Les exemples présentés dans ce document ne sont rien de plus que des
exemples ; n'oubliez pas de substituer aux noms de partitions et aux
autres paramètres suggérés les valeurs spécifiques à votre système. Les
suggestions ci-bas sont données à titre indicatif seulement. Suivez-les à vos
propres risques.
2.
Grub loading, please wait...
Problème
Exemple de code 2.1 : Sortie de GRUB |
GRUB loading stage 1.5
GRUB loading, please wait...
|
Après ce message, le système arrête. Si vous essayez de démarrer à partir d'une
disquette GRUB, toutefois, le problème disparaît.
Solution
D'après
The_Bell,
vous devriez essayer de changer l'ordre de démarrage des périphériques dans
votre BIOS.
Configurez votre BIOS pour qu'il ne tente pas de démarrer à partir du lecteur
de disquettes.
penetrode
suggère que ce problème peut être dû à un mauvais choix de CFLAGS. Même si le
fichier ebuild actuel de GRUB filtre déjà le paramètre
-fstack-protector, cela ne peut pas faire de mal de recompiler GRUB avec
des CFLAGS « propres » si le problème persiste :
Exemple de code 2.2 : Recompiler GRUB avec des CFLAGS décents |
# CFLAGS="-O2 -march=i686 -fomit-frame-pointer -pipe" emerge grub
|
3.
Grub Error 12
Problème
Exemple de code 3.1 : Sortie de GRUB |
12 : Invalid device requested.
|
Un tel message est affiché si la chaîne de texte définissant le périphérique
est correcte mais qu'une erreur survient tout de même, cette erreur étant
indéfinie.
Solution
Lorsque vous avez installé GRUB dans votre secteur de démarrage en utilisant
les commandes interactives, avez-vous exécuté les deux commandes
ci-dessous ?
Exemple de code 3.2 : Commandes d'installation interactive |
grub> root (hd0,0)
grub> setup (hd0)
|
Vous devez remplacer (hd0,0) par votre partition de démarrage et (hd0) par le
disque dur que vous avez choisi. Souvenez-vous que (hd0) installera le chargeur
de démarrage dans le secteur d'amorçage du premier disque dur (le
« primary master »).
4.
Grub Error 15
Situation
Cette erreur peut se produire à deux endroits dans la configuration de
GRUB : soit pendant la configuration initiale (lorsque vous installez GRUB
dans le secteur d'amorçage) ou après le démarrage du système, lorsque vous
essayez de lancer Linux (ou un autre système d'exploitation).
Exemple de code 4.1 : Sortie de GRUB - Configuration initiale |
grub> root (hd0,0)
Filesystem type is xfs, partition type 0x83
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... no
Error 15: File not found
|
Exemple de code 4.2 : Sortie de GRUB - Démarrage d'un système d'exploitation |
Booting 'Gentoo Linux'
root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
kernel (hd0,0)/boot/kernel-2.4.20 root=/dev/hda3 vga=792
Error 15: File not found
Press any key to continue...
|
Solution - Configuration initiale
Cette erreur se produit lorsque le nom de fichier spécifié ne peut être trouvé,
mais que le reste de la configuration est correcte (incluant le choix des
disques et des partitions).
Cette erreur est fréquemment due à l'absence de l'image du noyau. Assurez-vous
que le fichier auquel vous faites référence existe bel et bien sur votre
partition de démarrage.
Pour trouver le nom exact de votre noyau, démarrez à partir du CD
d'installation, montez votre partition racine et la partition de démarrage (si
nécessaire). Ensuite, « chrootez » dans votre système et listez les
fichiers pour savoir quelles images de noyaux sont disponibles :
Exemple de code 4.3 : Vérifier l'existence d'une image d'un noyau |
# cd /boot
# ls
|
Ces commandes listeront tous les noyaux présents sur votre partition de
démarrage. Si votre noyau choisi ne s'y trouve pas, vérifiez que vous avez bien
compilé le noyau (avec genkernel ou manuellement) :
Exemple de code 4.4 : Recompiler le noyau |
# cd /usr/src/linux/
# make menuconfig
# make
|
Vérifiez aussi que vous avez copié le noyau dans votre partition de
démarrage :
Exemple de code 4.5 : Copier le noyau |
# cp /usr/src/linux/arch/i386/boot/bzImage /mnt/gentoo/boot
|
Vérifiez que le nom du noyau est exactement le même que celui référencé
dans votre fichier grub.conf. Assurez-vous aussi que la ligne
kernel de votre grub.conf réfère à la bonne partition
(explicitement ou implicitement).
Vérifiez enfin que vous n'avez pas configuré le BIOS pour qu'il ignore le
disque sur lequel votre image de noyau et GRUB sont installés. De plus, la
partition qui accueille les fichiers de GRUB ne doit pas utiliser de RAID-5 (ni
toute autre forme de « striping ».)
Solution - Démarrage d'un système d'exploitation
Avant tout, vérifiez que les lignes root et setup que vous
utilisez sont correctes.
Si vous êtes certain que ces lignes sont valides, peut-être
utilisez-vous une version de GRUB boguée (0.93.20031222). Mettez à jour votre
arbre Portage ou masquez cette version de GRUB :
Exemple de code 4.6 : Masquer GRUB |
# echo "=sys-boot/grub-0.93.20031222" >> /etc/portage/package.mask
# emerge grub -p
|
Vous pouvez aussi essayer le script grub-install recommandé par les
développeurs de GRUB :
Exemple de code 4.7 : Utiliser grub-install |
# grub-install --root-directory=/boot /dev/hda
|
Si toutes ces suggestions échouent, peut-être votre partition de démarrage
est-elle corrompue. Vérifiez l'intégrité de votre partition :
Exemple de code 4.8 : Analyser une partition pour y repérer des erreurs |
# fsck -y /dev/hda1
|
5.
Grub Error 17
Situation
Exemple de code 5.1 : Sortie de GRUB |
root (hd0,0)
filesystem type unknown partition type 0x7
Error 17 : Cannot mount selected partition
|
Solution
Cette erreur survient lorsque la partition référencée existe mais que le
système de fichiers qui s'y trouve ne peut être reconnu par GRUB.
Vérifiez que root(x,y) est correctement paramétré dans votre grub.conf.
Assurez-vous aussi, si vous essayez de démarrer Windows, que votre fichier
grub.conf contient root (hdX,Y) (ou rootnoverify
(hdX,Y)) et chainloader (hdX,Y)+1.
6.
Grub Error 18
Situation
Exemple de code 6.1 : Sortie de GRUB |
kernel (hd1,4)/bzImage root=/dev/hdb7
Error 18: Selected cylinder exceeds max supported by BIOS
|
Solution
Cette erreur survient lorsque GRUB essaie de lire un bloc dont l'adresse
linéaire est située au-delà de la région traduite par le BIOS. Cela se produit
généralement lorsque le disque dur a une capacité plus grande que ce que peut
gérer le BIOS (512 Mo pour les disques (E)IDE sur les vieux ordinateurs ou
8 Go dans la plupart des cas).
Essayez de mettre à jour votre BIOS et/ou déplacez votre partition de démarrage
au début du disque (ou du moins à l'intérieur de la plage accessible à GRUB).
7.
GRUB GRUB GRUB GRUB GRUB ...
Situation
Exemple de code 7.1 : Sortie de GRUB |
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB
...
|
Solution
D'après
airhead,
cela peut être causé par un BIOS tentant de détecter les disques
automatiquement. Configurez l'entrée pour votre disque dur dans le BIOS pour
utiliser « User Type HDD ».
Une autre possibilité est que vous aviez déjà GRUB d'installé dans le MBR et que
vous essayiez de le réinstaller (par exemple si vous avez ajouté un nouveau
disque) en utilisant des mauvaises commandes setup et root.
8.
Probing Devices to Guess BIOS Drives. This May Take a Long Time.
Situation
Lorsque vous essayez d'installer GRUB, ce dernier gèle après avoir affiché la
ligne suivante :
Exemple de code 8.1 : Sortie de Grub |
# grub
Probing devices to guess BIOS drives. This may take a long time.
|
Solution
Un utilisateur a rapporté que la cause de ce problème sur son ordinateur était
une configuration trop exotique des disques, par exemple un mélange de disques
DMA ultra/non-ultra branchés au même cable.
9.
GRUB gèle tout simplement lors de l'installation
Situation
Lors de l'installation, GRUB gèle complètement :
Exemple de code 9.1 : Sortie de GRUB |
# grub
|
Solution
Si vous n'avez pas de lecteur de disquettes, avez-vous oublié d'ajouter
l'option --no-floppy ?
Exemple de code 9.2 : Installer GRUB avec l'option --no-floppy |
# grub --no-floppy
|
10.
Uncompressing Linux... Ok, booting the kernel.
Situation
Le système gèle après l'affichage de la ligne suivante :
Exemple de code 10.1 : Sortie de Linux |
Uncompressing Linux... Ok, booting the kernel.
|
Solution
Strictement parlant, il ne s'agit pas d'une erreur de GRUB. Cela peut arriver
lorsque l'ACPI est défectueux et qu'il est activé dans le noyau. Essayez de
désactiver l'ACPI dans votre BIOS ou dans votre noyau.
11.
GRUB ne fait qu'afficher une invite de commandes
Situation
Lorsque vous démarrez le système, vous recevez une invite de GRUB plutôt que la
liste des entrées que vous avez définies dans votre fichier
grub.conf.
Solution
Montez votre partition de démarrage et vérifiez que le fichier
grub/grub.conf existe.
Exemple de code 11.1 : Monter et vérifier |
# mount /dev/hda1 /mnt/gentoo/boot
# cat /mnt/gentoo/boot/grub/grub.conf
|
Assurez-vous aussi que le lien symbolique menu.lst existe :
Exemple de code 11.2 : Vérifier le lien symbolique |
# ls -l /mnt/gentoo/boot/grub/menu.lst
lrwxrwxrwx 1 root root 9 Mar 7 14:00 /mnt/gentoo/boot/grub/menu.lst -> grub.conf
|
Si ce n'est pas le cas, recréez le lien :
Exemple de code 11.3 : Recréer le lien symbolique menu.lst |
# cd /mnt/gentoo/boot/grub
# ln -snf grub.conf menu.lst
|
Si le lien existait bel et bien, réinstallez plutôt GRUB :
Exemple de code 11.4 : Réinstaller Grub |
# grub-install --root-directory=/boot /dev/hda
|
12.
Could Not Find Device For /boot/boot: Not Found Or Not a Block
Device
Situation
Lorsque vous exécutez grub-install pendant l'installation de GRUB, vous
obtenez l'erreur suivante :
Exemple de code 12.1 : Sortie de GRUB |
# grub-install --root-directory=/boot /dev/hda
Could not find device for /boot/boot: not found or not a block device
|
Solution
Vérifiez que nous n'avez pas oublié de faire ce qui suit :
Exemple de code 12.2 : Mise à jour du fichier mtab |
# grep -v rootfs /proc/mounts > /etc/mtab
|
13.
Le système redémarre lorsque l'on tape Entrée dans le menu GRUB
Situation
Aussitôt que vous tapez Entrée dans le menu GRUB lors du démarrage du système,
le système redémarre.
Solution
Essayez de régler le problème en enlevant le support pour le
« framebuffer » de votre noyau. Si cela ne marche pas, enlevez aussi
l'ACPI et l'APM.
14.
L'écran n'affiche plus rien après que l'on ait tapé Entrée dans le menu
GRUB
Situation
Aussitôt que vous tapez Entrée dans le menu GRUB lors du démarrage du système,
l'écran cesse d'afficher quoi que ce soit. Toutefois, le système répond toujours
(la diode du verrouillage numérique peut être commutée, par exemple).
Solution
Désactivez le « framebuffer » (cela se fait typiquement en supprimant
vga=XYZ de votre grub.conf) et vérifiez l'architecture du
processeur dans la configuration de votre noyau.
15.
Image de GRUB manquante
Situation
Lors du démarrage du système, vous ne voyez pas la superbe image de démarrage
de Gentoo.
Solution
Vérifiez d'abord si le fichier de l'image de démarrage que vous utilisez dans
grub.conf existe vraiment. Si c'est le cas, vérifiez l'ebuild de
GRUB. Peut-être que le correctif pour ajouter l'image de démarrage a été
commenté dans la version que vous utilisez.
16.
Impossible de démarrer Windows à partir d'un second disque dur
Situation
Après que vous ayez sélectionné l'entrée pour Windows, le système refuse de
démarrer sans donner de raison claire.
Solution
cyrillic
soutient qu'il est possible de régler ce problème en changeant l'ordre des
disques dans l'entrée pour Windows dans votre fichier grub.conf
comme suit :
Exemple de code 16.1 : Changer l'ordre des disques |
title Windows XP
map (hd0) (hd1)
map (hd1) (hd0)
chainloader (hd1,0)+1
|
17.
Erreur de segmentation lors de l'installation de GRUB
Situation
La situation décrite ci-dessous ne s'applique qu'à l'installation de
grub-0.95.x dans le secteur d'amorçage.
Exemple de code 17.1 : Installer GRUB |
grub> root (hd0,0)
grub> setup (hd0)
Segmentation fault
|
Solution
Un bogue relié à ce problème a été découvert et réglé dans grub 0.96. On sait
également que grub 0.94 r1 et grub 0.94 r2 fonctionnent correctement.
Toutefois, si cela ne règle pas le problème, vous pouvez essayer d'installer
grub-static, présentement stable sur l'architecture amd64 et instable sur x86
(~x86). Consultez le rapport de bogue suivant pour plus d'information :
#79378.
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|