Comment réinstaller grub dans le secteur de démarrage du disque dur ?
Les distributions Linux utilisent pour démarrer le chargeur d’amorçage grub. Celui-ci est installé dans le secteur de démarrage du disque dur, et il est appelé par le micro-programme de l’ordinateur (le BIOS, ou l’UEFI sur les ordinateurs récents) quand celui-ci désire démarrer depuis le disque dur.
De façon exceptionnelle, il peut arriver que le secteur de démarrage soit endommagé. Il peut y avoir plusieurs sortes de raisons à ça, comme une anomalie physique sur le disque (où il faudra malheureusement le remplacer), ou une erreur de manipulation avec un outil de configuration de périphérique de stockage. Certains vieux virus s’attaquaient également à cette zone.
Dans d’autres cas, et notamment lorsqu’on utilise un double boot Windows/Linux, il peut arriver que le logiciel d’installation de Windows écrase le secteur de démarrage (lors d’une réinitialisation de Windows par exemple, ou lors d’une mise à jour majeure du système d’exploitation de Microsoft) supprimant ainsi grub. Dans ce cas, on ne peut plus démarrer sur la distribution Linux, mais seulement sur Windows.
Nous allons ici réparer un tel problème, en voyant comment réinstaller grub dans le secteur de démarrage du disque dur.
Attention, les opérations décrites ci-dessous ne sont pas anodines, et peuvent endommager un système sain si elles sont utilisées hors contexte, ou sans faire attention à ce qu’on fait. En aucun cas l’auteur, ou astuces-aide-informatique.info ne sauraient être tenus responsables si des dégâts étaient infligés au système par une mauvaise utilisation des opérations décrites.
Démarrage de l’ordinateur depuis un média d’installation d’une distribution Linux
L’exemple sera pris ici avec le média d’installation d’Ubuntu 20.04. Nous n’allons pas lancer le programme d’installation à proprement parler, mais utiliser la clé en mode « live USB ». Pour des informations complémentaires sur ce qu’est un live USB et comment l’utiliser, je vous conseille la lecture de l’article décrivant comment essayer Ubuntu sans modifier son ordinateur.
Montage des différentes ressources nécessaires et chroot
Derrière ce titre un peu abscons se cachent quelques commandes Linux qui sont nécessaires pour préparer l’environnement d’installation de grub. En effet, celui-ci a besoin d’avoir connaissance du ou des environnements dont il va avoir la charge de démarrage, mais aussi du matériel (ici le disque dur) sur lequel il va être installé.
C’est le fameux chroot (change root = changer la racine du système) qui va permettre de quitter le contexte « live USB » et de nous placer dans le contexte du système Linux existant à amorcer et ainsi installer grub. Mais avant de quitter le contexte live USB, nous avons besoin de réaliser des opérations préparatoires, qui sont nécessaires pour que le contexte « chrooté » ait un accès direct au matériel de l’ordinateur.
Toutes les opérations seront des commandes exécutées dans un émulateur de terminal.
Création du dossier dans lequel réaliser le chroot, et montage de la partition contenant le système Linux pour lequel on veut voir comment réinstaller grub
Il faut créer un répertoire vierge dans l’arborescence de fichiers du système live, par exemple dans /media :
sudo mkdir /media/ubuntu
A présent, nous avons besoin de déterminer quelle est la partition du disque dur qui contient le système Linux pour lequel nous voulons réparer le démarrage. Pour ça on utilise d’abord la commande lsblk qui liste les périphériques de type « bloc » (c’est-à-dire les périphériques de stockage).
lsblk
On recherche dans le résultat tous les périphériques de type « disk ». Dans notre exemple, il n’y en a qu’un, c’est vda : /dev/vda pour être plus précis. On retrouve aussi souvent des périphériques de type disque dur sous l’appellation /dev/sda, /dev/sdb … dans les systèmes modernes.
Ici, nous savons que nous avions installé Ubuntu sur une partition de 20Go, donc il n’y a pas d’ambiguïté, notre système est installé sur la partition numérotée 5, à savoir /dev/vda5.
Il est important de trouver la bonne partition, sinon nous ne réussirons pas notre chroot.
En cas de doute, on pourra avoir une confirmation supplémentaire avec la commande fdisk lancée sur le périphérique disque qu’on pense être le bon :
sudo fdisk -l /dev/vda
On a la confirmation ici que /dev/vda5 est une partition contenant un système de fichiers de type Linux, sur le seul disque dur de notre système. Nous allons pouvoir monter ce système de fichiers dans le répertoire /media/ubuntu que nous avons créé au préalable, avec la commande mount.
sudo mount /dev/vda5 /media/ubuntu
Montage de /dev, /proc et /sys
Ce sont trois répertoires de l’arborescence Linux qui, très schématiquement, contiennent des fichiers représentant entre autres les composants matériels de l’ordinateur comme le processeur, la mémoire, les disques durs…Ces trois répertoires appartiennent au contexte « live USB » du système, car le noyau Linux a été chargé en démarrant le système depuis la clé USB. Hors, on a besoin que ces répertoires, et donc les composants matériels qui sont derrière, soient accessibles à notre contexte « chroot ». Pour ce faire, nous allons les monter à l’intérieur du dossier /media/ubuntu, avec les 3 commandes suivantes :
sudo mount --bind /dev /media/ubuntu/dev
sudo mount -t proc /proc /media/ubuntu/proc
sudo mount -t sysfs /sys /media/ubuntu/sys
Le chroot
A présent, toutes les conditions sont réunies pour réaliser le chroot, au travers duquel le programme d’installation de grub aura non seulement accès au contexte de notre système à réparer, mais en plus aura un accès direct au matériel, comme par exemple le disque dont le secteur de démarrage est à réparer.
Cela se fait tout simplement avec la commande suivante:
sudo chroot /media/ubuntu
grub-install : comment réinstaller grub dans le secteur de démarrage du disque dur
A présent, la réinstallation de grub est très rapide, en invoquant la commande grub-install sur le disque dur sur lequel on veut effectuer l’installation (ici /dev/vda).
grub-install /dev/vda
L’opération est terminée. On peut cependant se rassurer en demandant à grub de relire et appliquer la configuration dans laquelle on l’avait laissé avant la panne/mauvaise manipulation etc… avec la commande (optionnelle) suivante :
update-grub
Il reste enfin à quitter le chroot avec la commande exit…
…et à redémarrer l’ordinateur, qui devrait alors de nouveau afficher le menu de démarrage grub que l’on avait perdu, avec les derniers réglages que l’on utilisait.
Commentaires
Laisser un commentaire