~~Title: Réparer le GRUB ~~ ~~SNIPPET_O1777454101~~info:faq:title~~ {{page>info:title}} .
ls
Nous obtenons la liste des partitions et nous allons les explorer pour trouver celle qui nous intéresse :
ls (hd0)/
ls (hd0,msdos1)/
ls (hd0,msdos1)/boot/grub
Nous permet de savoir que c'est la partition ''msdos1'' du disque ''hd0'' qui est celle que nous cherchons.
Nous allons donc créer 2 variables qui nous permettront de charger l'environnement en mémoire :
set root=(hd0,msdos1)
Il nous faut maintenant activer le noyau Linux et l'image de démarrage initrd.
Nous avons besoin pour cela de savoir quelle partition est notre partition de démarrage. L'identification se fait à partir du nom de l'espace assigné à ''root'' :
* ''(hd0,*1)'' <=> ''/dev/sda1''
* ''(hd0,*2)'' <=> ''/dev/sda2''
* ''(hd1,*1)'' <=> ''/dev/sdb1''
* ''(hd2,*1)'' <=> ''/dev/sdc1''
* ...
linux $root/boot/vmlinuz-5.15.0-92-generic root=/dev/sda1
initrd $root/boot/initrd.img-5.15.0-92-generic
boot
==== Cas du grub-rescue ====
Si ce qui est affiché à l'écran n'est pas ''grub>'' mais ''grub-rescue'' il faut repasser en mode ''normal'' pour pouvoir démarrer le poste.
set prefix=(hd0,msdos1)/boot/grub
set root=(hd0,msdos1)
Nous allons ensuite activer les modules ''linux'' et ''normal'' :
insmod normal
normal
insmod linux
Nous pouvons alors reprendre le fonctionnement décrit pour grub :
linux $root/boot/vmlinuz-5.15.0-92-generic root=/dev/sda1
initrd $root/boot/initrd.img-5.15.0-92-generic
boot
==== Le cas de l'UEFI ====
La partition de démarrage est alors dans le chemin suivant :
(hd0,1)/efi/boot/grub
==== Remettre en place une solution permanente ====
Il faut ensuite mettre à jour le système de démarrage.
Il existe des solutions telles que [[https://help.ubuntu.com/community/Boot-Repair|Boot-Repair]]. Cependant, il est toujours préférable de savoir ce qu'il se passe.
La première information consiste à connaitre le contenu du fichier de configuration :
cat /etc/default/grub
C'est souvent suite à une manipulation de ce fichier que la problématique intervient.
Dans l'un de nos cas de figure, il s'agissait "simplement" de l'ordre des options ajoutées qui a généré le blocage.
Nous avons simplement eu à remplacer ''nouveau.noaccel=1 acpi_osi=linux'' par ''acpi_osi=linux nouveau.noaccel=1''
Si vous avez mis à jour ce fichier récemment, il peut être pertinent de vérifier ce qu'il contient.
Il faut ensuite mettre à jour le système d'amorçage :
sudo update-grub
Et réinstaller la partition sur le disque :
sudo grub-install /dev/sda
sudo reboot -fn
Il existe aussi un utilitaire [[https://github.com/arvidjaar/bootinfoscript|boot-info-script]] qui permet d'identifier la configuration de démarrage.
Cela permet ensuite d'identifier les éventuels problèmes de configuration.
Voici un ZIP qui contient la version 0.78 du 9 octobre 2019 : {{ :info:faq:linux:bootinfoscript.zip |}}
==== Si ce n'est pas réglé ====
Il faut dans ce cas se tourner vers des solutions plus complexes ou vers un professionnel.
Nous pouvons noter notamment [[https://www.supergrubdisk.org/|Super GRUB2 live rescue disk]]
Vous pouvez aussi consulter la documentation officielle [[https://www.gnu.org/software/grub/manual/grub/grub.html|GNU GRUB Manual]].
==== Pour aller plus loin ====
Pour mieux comprendre le fonctionnement du GRUB, vous pouvez consulter la page de documentation ubuntu en français ici : [[https://doc.ubuntu-fr.org/tutoriel/grub2_parametrage_manuel]]
Elle contient des informations relatives à la configuration manuelle du GRUB.