Les informations MBR ou UEFI de Grub sont corrects, et au démarrage, votre PC donne bien la main à Grub.
Mais ce dernier affiche un message d'erreur du type :
- Error: No Such Partition. Entering Rescue Mode
- unknown filesystem grub
- /grub/i386-pc/normal.mod’ not found
Cela se produit lorsque les fichiers de configuration GRUB sont manquants, corrompus ou contiennent des erreurs de configuration.
Pour pouvoir continuer de démarrer sur Linux, GRUB dispose d'un shell en mode rescue.
Avec ce dernier vous passez des commandes pour spécifier la partition de démarrage, etc
Cela permet de contourner les problèmes de démarrage dus à une mauvaise configuration de GRUB.
Cet article vous guide pour utiliser le GRUB rescue shell pour corriger les erreurs de démarrage Linux.
Table des matières
GRUB : le rescue shell pour corriger les erreurs de démarrage Linux
Au besoin, le fonctionnement général de GRUB est décrit dans cet article.
Cela permet de bien comprendre de quoi nous parlons.
Lorsqu'un message d'erreur empêche le démarrage de l'OS par GRUB, ce dernier ouvre le mode rescue.
Par exemple : Error: No Such Partition. Entering Rescue Mode
Cela se produit lorsque la configuration de démarrage est incorrecte ou des fichiers systèmes GRUB sont manquants ou corrompu.
Il donne alors accès au mode rescue, depuis ce dernier vous pouvez restaurer la configuration GRUB.
On accède aussi au mode rescue de GRUB depuis la page de démarrage.
La distribution Ubuntu ou Debian y a donne accès par la touche ESC ou Maj.
Puis on appuie sur la touche c pour ouvrir le mode ligne de commandes de GRUB.
Ce dernier est alors un shell bash minimale.
Vous pouvez notamment indiquer la partition système et le noyau linux sur lequel démarrer.
Ainsi lorsque la configuration de GRUB est erronnée, perdu ou corrompue, cela permet de booter sur Linux.
Les commandes du GRUB rescue shell
La commande help liste toutes les commandes disponible en ligne de commandes sur GRUB.
Il y en a pas beaucoup.
Voici les principales commandes du shell rescue de GRUB :
Commandes | Descriptions |
boot | Démarrez un noyau Linux ou un chargeur de chaîne qui a déjà été défini |
cat filename | Affichez le contenu du fichier spécifié. |
configfile filenames | Chargez le fichier de configuration spécifié |
linux filename | Chargez le noyau Linux spécifié |
ls [arg] | Répertorier les appareils ou les fichiers sur un appareil |
lsmod | Liste des modules chargés |
reboot | Redémarrer l'ordinateur |
set envvar=valeur | Définir une variable d'environnement égale à une valeur |
initrd filename | Chargez le fichier de disque RAM initial spécifié |
insmod module_name | Chargez le module spécifié (pilote). |
La commande set liste les variables d'environnement :
Parmi les plus importantes :
- set root identifie la partition à partir de laquelle le noyau et le disque RAM initial sont lus
- set prefix indique le dossier où se trouve les fichiers de configuration grub. En général, /boot/grub mais il faut spécifier le disque car /boot peut se trouver sur une partition séparée de la partition racine /
On commence par lister les disques :
ls
En mode rescue de Grub, la liste des disques prend la forme suivante : (hdx,y)
Avec :
- hd0 est le premier disque, hd1 le second, etc
- en MBR : les disques se nomment msdos : (hdx,msdos1), (hdx, msdos2)
- En GPT : les disques se nomment gpt : (hdx,gpt1), (hdx, gpt2)
Ce qui fait que hd0,2 correspond au premier disque, 3e partition Grub Legacy.
Au besoin lire :
Puis on vérifie le contenu de chaque partition de disque :
ls (hd0,msdos1)
Exemple avec disque en MBR avec des partitions msdosX :
Dans cet autre exemple, nous sommes avec un disque GPT soit donc avec un PC en UEFI, où :
- hd0,gpt1 est formaté en FAT, c'est donc la partition EFI
- hd0,gpt2 est formaté en ext, c'est donc que notre partition système /
Ensuite on peut confirmer le contenu de la partition, par exemple pour lister le contenu de hd0,gpt2 :
ls hd0,gpt2/
Cela confirme bien qu'il s'agit de la partition système et que le contenu du dossier /boot est valide avec les différents noyaux Linux disponibles.
Enfin l'affichage d'un contenu avec la commande cat.
Par exemple pour afficher le contenu du le fichier /boot/grub/grub.cfg
cat hd0,gpt2/boot/grub/grub.cfg
Ces commandes permettent donc de naviguer dans vos partitions de disques et afficher le contenu des fichiers.
Cela peut vous aider à déterminer si la partition système est valide ou corrompue et endommagée.
A partir de là, une fois l'environnement identifié, on peut passer des commandes pour démarrer son Linux depuis le mode rescue de Grub.
Démarrer sur Linux depuis Grub Rescue en cas d'erreur
Dans notre exemple, la partition système est hd0,gpt2.
Il faut donc demander à booter sur cette dernière.
Pour cela on corrige les variables boot et prefix à l'aide de set.
Puis on demande un démarrage normal.
set boot=(hd0,gpt2)
set prefix=(hd0,gpt2)/boot/grub
insmod normal
normal
Si tout va bien cela permet de démarrer sur votre Linux pour dépanner.
Par contre, cela ne répare pas GRUB si la configuration est erronée, il faut la corriger par la suite.
Note que l'on peut aller plus loin en spécifiant le noyau linux sur lequel charger grâce aux commandes linux et initrd :
set boot=(hd0,gpt2)
linux (hd0,gpt2)/boot/vmlinuz-3.13.0-29-generic root=/dev/sda1
initrd (hd0,gpt2)/boot/initrd.img-3.13.0-29-generic
boot
Réparer GRUB après le démarrage de l'OS
Enfin une fois sur votre Linux, il ne reste plus qu'à réinitialiser GRUB.
On réinstalle grub dans le disque avec grub-install.
Attention cette commande ne restaure pas les fichiers corrompus ou supprimés.
sudo grub-install /dev/sdX
Remplacez X par la lettre du disque où se trouve /boot.
Vous pouvez lister les disques à l'aide de la commande lsblk.
Plus de détails :
Enfin on met à jour la configuration de grub avec update-grub :
sudo update-grub
Enfin testez si le démarrage de votre Linux est réparé et à nouveau fonctionnel.
Liens
Vous êtes autorisé à partager et modifier cet article, à condition de créditer le site ainsi que la licence, d'utiliser la même licence si vous modifiez l'oeuvre et de ne pas en faire d'utilisation commerciale.
Trouver la solution sur le forum d'aide
Vous êtes arrivé au terme de l'article GRUB : Utiliser le mode rescue shell pour corriger les erreurs de démarrage Linux mais vous n'avez pas trouvé la solution à votre problème...Suivez ces articles du forum pour trouver une réponse :
- Double Boot Win10-Linux et GRUB...
- Corriger mon pc !!!...
- problème pour créer le Macrium Reflect bootable Rescue media...
- Pourquoi est-ce que c'est grisé sous Google Chrome "Utiliser un service de prédiction pour charger les pages plus..."?...
- La ligne Grub pour charger Windows ne boot pas...
Plus de détails : Comment obtenir de l'aide sur le forum