GRUB est une application permettant de choisir sous quel OS booter. Elle s’installe sur la MBR du disque dur. Il arrive parfois qu’elle ne fonctionne plus ( souvent suite à une réinstallation de Windows ) et ainsi il n’est plus possible de démarrer l’ordinateur. L’utilisation de la commande chroot avec un LiveCD est une manière possible de réparer GRUB.

Introduction

Dans un système UNIX, la racine des répertoires ( root en anglais ) est noté « / » . La commande chroot permet de faire croire à un processus que la racine « / » est ailleurs ! Vous pouvez donc par exemple avoir un système d’exploitation complet dans /mnt/ubuntu . En utilisant la commande :

chroot /mnt/ubuntu bash -i
Vous lancez un shell Bash depuis le système de fichier « /mnt/ubuntu » pour qui « /mnt/ubuntu » est en fait la racine du système. « /mnt/ubuntu » est devenue une nouvelle « / » indépendante de la racine initiale. Toute commande effectuée à l’intérieur de ce bash n’aura aucune connaissance du vrai répertoire racine.

Tout ce passe comme si vous étiez sur une autre machine UNIX.

Et GRUB alors ?

L’astuce est la suivante : nous allons booter sur notre LiveCD et chrooter sur notre linux installé. Pour ensuite réinstaller le GRUB facilement

C’est parti !

Alors tout d’abord il vous faut un LiveCD, n’importe lequel devrait suffire, Knoppix par exemple. Insérez le dans votre ordinateur et redémarrez. Une fois le démarrage terminé, ouvrez une console.

Passez en mode superutilisateur (root) en tapant la commande suivante sur Knoppix:
su -
Maintenant il faut créer notre espace de travail et monter les partitions de notre installation Linux. Il faut créer un répertoire pour notre point de montage :
mkdir /mnt/help
Si votre « /boot » est dans une partition differente de la racine du système il faut aussi créer le dossier boot :
mkdir /mnt/help/boot
Il est maintenant temps de chargé les données dans ces dossiers. Dans mon système la partition /dev/hda4 correspond à la racine de mon système. Adapter donc la commande suivante pour vous :

mount /dev/hda4 /mnt/help
mount -o bind /dev /mnt/help/dev
mount -o bind /proc /mnt/help/proc
cp /proc/mounts /mnt/help/etc/mtab

Et si votre « /boot » est sur une autre partition monter la aussi comme ceci :
mount /dev/hda5 /mnt/help/boot
Maintenant il suffit de rentrer dans l’environnement de travail avec chroot :
chroot /mnt/help/ /bin/bash
À partir de maintenant vous n’êtes plus dans le LiveCD mais sur le système Linux que vous avez installé. Donc toute modification est prise en compte !

Réparons GRUB

Lancez la commande « grub » : un prompt devrait apparaître. Lancer ensuite :

grub> find /boot/grub/stage1  # Vous obtenez la réponse sous la forme hdx,y
# avec x et y deux nombres
grub> root (hdx,y)            # Avec les nombres que vous avez eu au dessus
grub> setup (hd0)             # On réecrit la MBR
grub> quit                    # On quitte

Et voila normalement c’est réparé, vous pouvez quitter le LiveCD et essayer de rebooter sur votre système.