Ceci est une ancienne révision du document !



Comment réinstaller GRUB ?

Le présent tutoriel vous explique la procédure à suivre pour réussir la réinstallation GRUB, par exemple lorsqu'il a été effacé suite à l'installation d'un autre système d'exploitation (par exemple, Microsoft® Windows®). Également pour ceux qui aurait installé sur leur disque Suse (OpenSuse)

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é.

Via le Réparateur de Démarrage

C'est la méthode la plus simple. Il suffit d'utiliser ce petit outil graphique : Réparateur de Démarrage

Réparateur de Démarrage

Via le disque SuperGrub

Cette méthode nécessite de graver 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 presser « Entrée ».
  • Une fois le système démarré et la session ouverte, taper dans un terminal la commande :
    sudo apt-get install --reinstall grub-pc 
  • Et voilà, normalement, le Grub est réparé, il suffit de redémarrer le PC (après avoir sorti le disque de SuperGrub) pour le tester.

Méthodes en lignes de commande

Procédure sans chroot

Attention : N'utilisez pas cette procédure si vous avez installé Ubuntu dans windows avec WUBI ou bien si c'est Windows qui gère votre démarrage et que vous souhaitiez conserver cette configuration
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. Vous pourriez rencontrer des erreurs du style : "chroot: cannot run command `/bin/bash': Erreur de format pour exec()".

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) d'Ubuntu 9.10 ou ultérieure (Les versions antérieures d'Ubuntu n'incluant pas GRUB 2, il n'est pas possible d'utiliser un CD-ROM d'installation ou une clé USB d'installation d'Ubuntu en version 9.04 et antérieures pour réinstaller GRUB 2.) ;
  2. Amorcez votre ordinateur avec ce CD-ROM ou cette clé USB en choisissant l'option, si besoin, Essayer Ubuntu sans rien changer sur votre ordinateur ;
  3. Montez la partition qui contenait le logiciel GRUB 2 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), ouvrer 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.
  1. Dans un terminal (Applications → Accessoires → Terminal), lancez la commande suivante:
    sudo os-prober

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

Attention : 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'apparait pas.
  1. Dans un terminal (Applications → Accessoires → Terminal), lancez la commande suivante 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):
    sudo grub-install --root-directory=/media/Maverick_LXDE /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.

  1. 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 :

Procédure par chroot

  • 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:
sudo fdisk -l                      # pour vous aider à trouver la partition sur laquelle est votre ubuntu
sudo mount /dev/sdaX /mnt          # montage de celle-ci en remplaçant le X par le bon numéro de partition
sudo mount --bind /dev /mnt/dev    # lien symbolique du dossier /dev en cours d'utilisation vers le disque monté
sudo mount -t proc /proc /mnt/proc # Pour que Grub2 trouve /proc/mounts
sudo chroot /mnt /bin/bash         # mise à la racine du disque monté
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

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

sudo umount /mnt/dev
sudo umount /mnt/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 : grub.cfg

Continuer le chargement d'Ubuntu puis dans un terminal :

sudo update-grub

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

Vous avez GRUB Legacy (GRUB 0.9x) si vous utilisez Ubuntu 8.04 LTS, ou avez migré depuis Ubuntu 9.04 (ou antérieure) vers Ubuntu 10.04 (ou ultérieure).

Avec le Live CD Ubuntu 8.04 LTS

Cette méthode fonctionne avec tout Live CD contenant le programme GRUB Legacy : Live-CD Ubuntu 8.04, SystemRescueCd (~200Mo), etc.

Étape 1

Lancez votre live-CD, ouvrez un terminal et tapez :

sudo grub

Au cas où grub n'est pas installé, installez le paquet grub.

FIXME un autre tuto indique: sudo grub ––batch , (a quoi sert ––batch???)

(29/08/2009) le manuel de GRUB indique un passage en mode batch pour un usage non interactif.

Dans le cas où vous bootez sur un liveCD d'une version différente à celle du système sur votre disque, vous obtiendrez peut-être aussi le message "Error 15 : file not found". La solution consiste alors à monter votre système (par exemple dans /media/disk) et à lancer la version de GRUB qui s'y trouve : >sudo /media/disk/usr/sbin/grub , ensuite la procédure est la même.

Étape 2

Vous arrivez sur le menu principal de GRUB. Si vous ne savez pas sur quelle partition se trouvent les fichiers de Grub, entrez à l'invite grub> :

find /boot/grub/stage1

(Si le message "Error 15 : file not found" apparait, essayez : find /grub/stage1 )

Cette commande vous indiquera la partition sur laquelle sont situés ces fichiers.

Étape 3

Imaginons que cette commande nous a fourni (hd0,1) comme réponse. Dans ce cas, il faut entrer :

root (hd0,1)

Remplacez bien entendu (hd0,1) par la partition correspondante.

Étape 4

L'étape suivante consiste à indiquer à Grub le disque sur lequel il doit (ré)installer le chargeur de système. Si par exemple, on souhaite l'installer sur le disque (hd0) (pour info, hd0 représente hda le premier disque dur):

setup (hd0)
quit
Si vous désirez installer grub ailleurs que sur la première partition pour utiliser un autre boot manager au démarrage (par exemple GAG), le mentionner dans la commande setup: exemple: setup (hd0, 1)

Voilà le travail est fini. GRUB est remis d'aplomb !

Partition non-reconnue

Avec le Live CD, les manipulations précédentes trouvent uniquement l'endroit où est installé Grub dans les fichiers du Live CD. Ce dont vous avez besoin, c'est de trouver l'endroit où est installé Grub sur votre autre partition contenant Ubuntu.

Il faut donc monter votre partition Ubuntu, afin de pouvoir y retrouver les fichiers de GRUB.

$ sudo mkdir /mnt/root
$ sudo mount -t ext3 /dev/sdXY /mnt/root

(où X est une lettre et Y est un nombre entier positif)

Vous devez ensuite monter les sous-systèmes de fichiers proc et udev sous /root :

$ sudo mount -t proc none /mnt/root/proc
$ sudo mount -o bind /dev /mnt/root/dev

Procéder ainsi permet à GRUB de trouver et reconnaître vos disques/partitions. Ensuite, vous avez à changer de dossier racine :

$ sudo chroot /mnt/root /bin/bash

Maintenant que vous êtes en chroot sur votre partition montée, tout devrait fonctionner. Vous reprenez donc la procédure qui était décrite précédemment :

# sudo grub
grub> find /boot/grub/stage1

Cela trouve donc GRUB sur une partition (hdX,Y), où X et Y sont des nombres entiers positifs.

grub> root (hdX,Y)

La partition est scannée avec succès et le type système de fichiers est reconnu.

grub> setup (hd0)
grub> quit

Voilà. Il ne reste plus qu'à redémarrer et GRUB apparaîtra à nouveau. Note : il se peut que Windows n'apparaisse pas dans GRUB à ce point. Il suffira de l'ajouter par la suite.

Astuce trouvée ici : http://ubuntuforums.org/showthread.php?t=224351

Avec le Super GRUB Disk

Depuis le cdrom de Super Grub Disk vous devez suivre les options : Français → Linux → Arranger Démarrage de Linux. SGD vous dira : « SGD a réussi ! »

Et Grub sera à nouveau sur votre MBR vous permettant de démarrer aussi bien Windows que Linux.

La restauration de Grub sur une partition en ext4 ne fonctionne qu'a partir de la version 0.9795 de SGD (0.9795)

FIXME ça serait bien si vous pouviez ajouter le tutoriel sur comment installer le super grub disk sur USB, cette partie est complètement à la trappe !

Avec le Super GRUB 2 Disk

Désormais, une nouvelle version de Super Grub Disk, est sorti, et il est possible de restaurer le Grub, si vous avez réinstallé Windows, sur une autre partition, et que cela, a écrasé le Grub, par la suite, avec cette méthode :

  • Démarrez sous Windows, normalement. Et allez sur le site de Super Grub 2 Disk afin d'y télécharger l'image disque de ce dernier.
  • Une fois le téléchargement fini, gravez l'image disque sur un CD ou DVD.
  • La gravure finie, redémarrez votre ordinateur, et amorcez sur le CD ou DVD contenant l'image disque de Super Grub 2 Disk.
  • L'image disque, une fois amorcée, doit arriver sur cette image, puis sélectionnez Detect any OS (choix surbrillancé sur l'image). Attendez que vos noyaux (ou OS) soit affichés.
  • Sélectionnez le noyau correspondant à votre OS, puis attendez d'être arrivé sur votre fenêtre de connexion.
  • Identifiez-vous, puis ouvrez un terminal, et tapez-y la commande grub-install /dev/sda. Attendez que l'exécution de la commande soit finie, et redémarrez votre ordinateur, en prenant le soin d'enlever le CD du lecteur disque afin de ne pas ré-amorcer sur cet ISO.

Avec une disquette de démarrage

Si vous n'avez pas de lecteur CD mais un lecteur de disquette, c'est la méthode la plus simple. Elle nécessite d'avoir préalablement créé une disquette démarrable de GRUB en suivant ce didacticiel.

Insérez la disquette et redémarrez l'ordinateur. GRUB apparaît. Sélectionnez Ubuntu. Une fois le démarrage terminé, ouvrez le Terminal et entrez le code suivant pour reinstaller GRUB dans le MBR :

sudo /sbin/grub-install /dev/hda
  • tutoriel/comment_restaurer_grub.1323958659.txt.gz
  • Dernière modification: Le 22/02/2012, 21:17
  • (modification externe)