Cette documentation traite uniquement d'une réinstallation en mode LEGACY et non EFI

Comment réinstaller GRUB ?

Le présent tutoriel vous explique la procédure à suivre pour réussir la réinstallation GRUB.

Cela peut arriver par exemple lorsqu'il a été effacé suite à l'installation ou la mise à jour d'un autre système d'exploitation (notamment Microsoft® Windows®).

Si vous redémarrez votre ordinateur et vous constatez que vous ne disposez plus d'un menu d'amorçage vous permettant de choisir entre le chargement d'Ubuntu ou de votre autre système d'exploitation (c'est ce qui se produit généralement lorsque vous installez un nouveau système d'exploitation en multi-amorçage avec Ubuntu), le chargeur d'amorçage GRUB est écrasé par un autre chargeur d'amorçage. GRUB doit être réinstallé pour qu'Ubuntu puisse être à nouveau chargé.

Dans le cas où cette doc est utilisée pour changer l'emplacement du chargeur d'amorçage de Grub, il est nécessaire d'enregistrer ce changement afin qu'il soit pris en compte par Grub. Sinon lors d'une mise à niveau de Ubuntu, on risque d'avoir un console GRUB rescue> au redémarrage. Après réparation par l'une des méthodes présentées ci-dessous, il convient donc de faire cette "régularisation" suivant ce (Tuto)
Si la console "GRUB rescue" apparaît au démarrage, avant d'entreprendre une procédure compliquée, il convient de déconnecter tous les disques durs annexes et de redémarrer. Il peut arriver que le disque principal ne soit pas reconnu si certains disques annexes sont connectés dès le départ.
Beaucoup de commandes ici vont être faites en tant qu'administrateur, faites attention à la dangerosité de vos manipulations.

Taper dans un terminal :

sudo os-prober
sudo update-grub
sudo grub-install /dev/sda

Explications :

  • os-prober va chercher tous vos systèmes d'exploitation
  • update-grub va mettre à jour Grub avec les systèmes d'exploitation trouvés
  • grub-install /dev/sda : permet d'installer Grub sur le disque sda. If faut remplacer /dev/sda par le disque de son choix :
    /dev/sda si on veut pointer sur le disque sda
    /dev/sdb si on veut pointer sur le disque sdb
    /dev/sdc si on veut pointer sur le disque sdc
    etc…

Cette solution marche bien par exemple si GRUB est toujours disponible mais tout simplement ne s'est pas mis à jour lorsque vous avez effectué une installation ou un upgrade.

C'est la méthode conseillée si la méthode précédente n'a pas marché. Il suffit d'utiliser ce petit outil graphique : Réparateur de Démarrage

Réparateur de Démarrage

Cet outil fonctionne aussi pour les ordinateurs démarrant avec l'UEFI.

Ces procédures sont sans doute mal adaptées si votre PC utilise l'UEFI

Via le disque SuperGrub

  • Télécharger le disque SuperGrub à la page suivante.
  • Graver l'image sur un disque vierge.
  • Mettre le disque dans le lecteur & démarrer l'ordinateur sur le disque.
  • Choisir l'option « Detect any OS », puis sélectionner la ligne du système Ubuntu, et appuyer sur « Entrée ». Remarque: si votre système Ubuntu n’apparaît pas, essayez une autre méthode. Dans le cas d'une installation faite en mode UEFI, c'est un peu différent : voir ici
  • Une fois le système démarré et la session ouverte :
    • Soit (réinstallation sans purge): ouvrir un terminal, puis saisissez en tant qu'administrateur la commande
      blkid

      pour connaître le nom (sdX= sda, sdb..) du disque dans lequel vous souhaitez installer GRUB, puis saisissez en tant qu'administrateur les commandes

      grub-install /dev/sdX

      puis

      update-grub

      .

    • Soit (réinstallation avec purge): connecter internet, ouvrir un terminal, puis saisir en tant qu'administrateur la commande suivante (remplacer grub-pc par grub-efi si besoin):
      apt-get install --reinstall grub-pc grub-common

      (remarque: ceci effectue une purge partielle de GRUB, pour une purge complète, utiliser l'option "Purger GRUB" de Boot-Repair)

  • Des fenêtres de configuration vont apparaître, vous devrez alors sélectionner le disque dans lequel vous souhaitez installer GRUB via les touches du clavier (touches Espace, Tab et flèches).
  • Redémarrer le PC (après avoir sorti le disque de SuperGrub).

Via un CD Ubuntu (procédure sans chroot)

Si vous n'avez plus GRUB2 suite, par exemple, à l'installation d'un autre système d'exploitation, voici les étapes à suivre pour le remettre en place :

  1. Munissez-vous d'un CD d'installation (ou clé USB d'installation) ;
  2. Amorcez votre ordinateur avec ce CD-ROM ou cette clé USB en choisissant l'option Essayer Ubuntu sans rien changer sur votre ordinateur ;
  3. Montez la partition qui contenait le logiciel GRUB2 auparavant. Dans le cas général, il s'agit de la partition sur laquelle Ubuntu est installé. Dans la session d'essai d'Ubuntu (lancée à partir du CD d'installation), ouvrez le menu Raccourcis et sélectionnez la partition à monter dans la liste des partitions existantes ;
  4. Allez dans Système→Administration→Utilitaire de disques (System→Administration→Disk Utility) et :
    1. Notez l'identifiant de périphérique de votre disque durnotez l'identifiant de « Périphérique » de votre disque dur primaire, en haut à droite (généralement /dev/sda),
    2. cliquez sur la partition Linux principale, qui contenait GRUB 2 et qui a été montée précédemment,
    3. notez le nom de montage de cette partition en respectant les majuscules - « Point de montage », en bas à droite (ex: "/media/Maverick_LXDE").

      (L'image est pour Ubuntu 10.04 LTS.)

    4. NB : Si le nom est trop compliqué (une suite de chiffres), utiliser la commande suivante dans un terminal :"sudo tune2fs -L NomFacile /dev/sdaX" (X est le n° de la partion Ubuntu), puis avec l'Utilitaire de disques, démonter la partition puis la remonter : le point de montage est devenu /media/NomFacile
Pour faciliter l'identification de la partition Ubuntu et simplifier les restaurations futures de Grub, il est recommandé de donner un nom à cette partition. Pour cela, sur une session Ubuntu normale (lorsque grub fonctionne encore), ouvrez l'Utilitaire de disques, cliquez sur la partition Ubuntu et cliquez sur Renommer le système de fichiers (en bas à droite). La partition pourra être nommée "Ubuntu" ou "Maverick_LXDE" par exemple. Évitez d'inclure le caractère ESPACE dans le nom.

5. Dans un terminal (Applications → Accessoires → Terminal), lancez la commande suivante en tant qu'administrateur :

os-prober

et vérifiez que tous vos OS sont listés.

os-prober liste les systèmes qui sont installés en plus de la distribution (donc Ubuntu pour le cas présent) sur laquelle il est exécuté, donc pas d'inquiétude si Ubuntu n’apparaît pas.

6. Dans un terminal (Applications → Accessoires → Terminal), lancez la commande suivante en tant qu'administrateur, en remplaçant "/media/Maverick_LXDE" (voir image) par votre point de montage et /dev/sda par l'identifiant de votre disque dur primaire (noté précédemment):

grub-install --root-directory=/media/Maverick_LXDE /dev/sda


Si vous avez une partition de boot séparée, la commande sera alors ("boot" au lieu de "root") :

grub-install --boot-directory=/media/boot_partition /dev/sda
Attention : les caractères ESPACE dans le nom du point de montage (dans mon cas /media/Ubuntu 10.10/) posent un problème de parsing au programme grub-install du Live CD Ubuntu 10.04. Malgré un échappement avec \ ou une encapsulation dans des guillemets :
#Attention, ces lignes ne fonctionnent pas !
sudo grub-install --root-directory=/media/Ubuntu\ 10.10 /dev/sda
sudo grub-install --root-directory="/media/Ubuntu 10.10" /dev/sda

# Elles répondent la ligne suivante :
cp: la cible `10.10/boot/grub' n'est pas un répertoire.

Dans ce cas, utilisez l'astuce du point 4.4 précédent visant à remonter la partition avec un autre nom.

7. Redémarrez en enlevant votre live-cd ou votre clé-usb.

Si cette procédure n'a pas fonctionné, essayez la procédure par chroot ci-dessous :

Via un CD Ubuntu (procédure par chroot)

Attention, cette méthode peut casser votre disque dur. (cette phrase est une blague ?)
Dans la suite de ce tuto, prenez un Live CD de la même architecture (32 ou 64 bits) que le système d'exploitation que vous souhaitez réparer. Sinon vous pourriez rencontrer des erreurs du style : "chroot: cannot run command `/bin/bash': Erreur de format pour exec()".
  • démarrez sur votre PC avec un live-cd Ubuntu
  • démontez les partitions contenant vos OS (sinon ils ne seront pas détectés)
  • lancez un terminal (ou console) et entrez les commandes suivantes en tant qu'administrateur :
fdisk -l                      # pour vous aider à trouver la partition sur laquelle est votre ubuntu
mount /dev/sdaX /mnt          # montage de celle-ci en remplaçant le X par le bon numéro de partition
mount --bind /dev /mnt/dev    # lien symbolique du dossier /dev en cours d'utilisation vers le disque monté
mount --bind /dev/pts /mnt/dev/pts   # lien symbolique du dossier /dev/pts en cours d'utilisation vers le disque monté
mount --bind /sys /mnt/sys    # lien symbolique du dossier /sys en cours d'utilisation vers le disque monté
mount -t proc /proc /mnt/proc # Pour que Grub2 trouve /proc/mounts
chroot /mnt /bin/bash         # mise à la racine du disque monté
mount -a                           # montage des partitions dans le chroot
apt-get install grub-pc            # installation du logiciel Grub2 (sur le disque maintenant à la racine)
update-grub                        # création d'un nouveau fichier de configuration : grub.cfg
grub-install /dev/sda              # installation de grub sur le MBR

Si la dernière commande sort une erreur, tapez :

grub-install --force /dev/sda

Démontez les partitions montées dans le chroot :

umount -a

(Ignorez les éventuelles erreurs signalées.)

À partir de là, vous pouvez sortir du disque monté en effectuant ctrl+D. Puis, démontez ce disque :

sudo umount /mnt/{dev/pts,dev,sys,proc}
sudo umount /mnt

Redémarrez et vous devriez, à présent, être capable de booter correctement.

Si cela ne fonctionne toujours pas, posez-vous la question, ai-je touché récemment à mes câbles, disques dur ? , une petite vérification dans le SETUP de l'ordinateur et un Load-Bios-Defaut, peut résoudre le problème.

Si vous avez d'autres systèmes d'exploitation sur d'autres partitions, (comme Windows par exemple), il est possible que ceux-ci n'apparaissent pas dans la liste de choix. Pour rétablir cette liste, il suffit de générer un nouveau fichier de configuration :

Dans un terminal Ubuntu, en tant qu'administrateur :

update-grub

Vous retrouverez alors la liste complète des systèmes d'exploitation au prochain démarrage.

Cette méthode est peut-être la moins conventionnel mais redoutablement efficace. Certains l'utilisent en dernier recours, d'autres dès que Grub ne marche pas. Avec une bonne connexion internet et une mémoire SSD, ça peut etre fait en 15 mn ! Le concept :

  1. Installer une distribution Linux sur une autre partition
  2. Changer l'ordre de démarrage de Grub

Lors de l'installation d'une autre distribution, l'installateur va detecter tous les systèmes d'exploitation et va installer Grub correctement. Il mettra cette nouvelle distribution en démarrage par défaut, il vous suffira de selectionner au prochain démarrage votre ancienne distribution

  • tutoriel/comment_restaurer_grub.txt
  • Dernière modification: Le 17/03/2020, 13:12
  • (modification externe)