Réinstaller Grub2

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

GRUB 2: Guide de survie en cas de problèmes de démarrage...

Grub2 est en constante évolution depuis sa sortie, si vous êtes sous Lenny, Squeeze ou Sid il peut y avoir de légères différences... Je pars du principe que vous avez déjà installé Grub2 dans le MBR de votre disque. Sachez qu'il est possible de l'installer dans le PBR des partitions. Dans ce cas particulier, il faudra un programme d'amorçage (ce peut être depuis Windows, ou un Gestionnaire libre - GAG, SBM, AirBoot...)

Si Grub2 est en panne pour une raison X ou Y, voici un guide de survie...

Avec un DVD d'install de debian

Si vous avez un DVD d'install de debian (en 64b si votre debian est en 64b), vous pouvez réinstaller GRUB2 en quelques clics, laissez vous guider par les menus

Le mode Rescue

Grub2 ne démarre pas le système, et vous donne seulement accès au "mode rescue"

Entering rescue mode...
grub rescue>

Pour obtenir la liste des commandes qu'il est alors possible de passer à Grub2, tapez help.

Commençons pas faire l'inventaire des disques et partitions :

grub rescue> ls
(hd0) (hd0,1) (hd0,2) (hd0,3) (hd1) (hd1,1)

Spécifions le raccourci vers nos fichiers :

grub rescue> set prefix=(hd0,1)/boot/grub

"Fixons" la partition où se trouve notre système :

grub rescue> set root=(hd0,1)

En cas de partition /boot séparée... Dans l'exemple qui suit, /boot se trouve sur (hd0,1) et la racine de votre système sur (hd0,2)

grub rescue> set prefix=(hd0,1)/grub
grub rescue> set root=(hd0,2)

Chargeons les modules :

grub rescue> insmod linux
grub rescue> insmod boot
grub rescue> insmod normal

Et enfin, activons le mode normal (ouf !)

grub rescue> normal

À ce niveau, vous retrouvez votre menu "habituel" où vous pouvez faire les modifications plus aisément.

Si vous ne parvenez pas à démarrer votre machine avec les manipulations ci-dessus, lisez la suite...

La solution la plus simple

1. Procurez-vous Super Grub Disk sur le site officiel ou sur linux-live-cd.org
Petite explication sur Super Grub Disk :
La principale utilité de Super Grub Disk est de démarrer un système dont le Grub est en panne. Il peut aussi réparer Grub et le réinstaller sur le MBR ou sur une autre partition - PBR -(utilisateurs avancés).
Il peut également restaurer le MBR d'origine en désinstallant Grub sans risquer de rendre votre ordinateur inutilisable après formatage de la partition Linux.
Lorsque vous démarrez votre ordinateur avec Super Grub Ddisk, vous tombez sur un menu plus ou moins clair. Laissez-vous guider, vous devriez parvenir à trouver la bonne option pour démarrer sur votre Debian (Un tuto de Super Grub Disk viendra...)
2. Démarrer votre système en panne avec ce disque.
3. Réinstaller ou réparez Grub2

Solution avec un chroot

  • Trouvez un Live CD et démarrez votre machine avec. N'importe quel Live CD à base de Debian fera l'affaire (Knoppix, Ubuntu, Sidux...)

Attention, si votre système est en 64bits, il faudra démarrer avec un LiveCD en 64bits

Deuxième étape: montage, et chrootage

  • Ouvrez un terminal et tapez sudo fdisk -l (Permet de vérifier quelle partition est à "chrooter"...)
  • Il faut trouver laquelle des partitions listée est votre installation GNU/Linux. Sur une installation "simple" ça ressemblera à ceci :
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        5624    45174748+  83  Linux
/dev/hda2            5625        6110     3903795   82  Linux swap / Solaris
/dev/hda3            6111       14946    70975170    5  Extended
/dev/hda5            6111       14946    70975138+  8e  Linux LVM

La partition qui vous intéresse est /dev/hda1

  • Il faut créer un répertoire ou vous allez monter cette partition, et monter votre partition système  :
# mkdir /mnt/chroot
# mount /dev/hda1 /mnt/chroot

Il est d'ailleurs probable que dans ce cas, /dev/hda1 soit votre partition /boot et /dev/hda2 la racine de votre système, soyez attentif à ce que vous faites.

  • Une fois que la partition système est montée, il faut monter les périphériques que le Live CD a trouvé,
# mount --bind /dev/ /mnt/chroot/dev
# mount -t proc /proc /mnt/chroot/proc
# mount -t sysfs /sys /mnt/chroot/sys
  • Le système est prêt à être "chrooté" :
# chroot /mnt/chroot

Il peut parfois être nécessaire, en fonction de votre système ou du LiveCD à partir duquel vous avez démarré d'ajouter /bin/bash à la commande

# chroot /mnt/chroot /bin/bash
  • Si vous aviez créé une partition séparée pour /boot, il faut la monter (Nous montons cette partitions dans le chroot, sinon grub-mkconfig ne détecte pas que /boot est sur une partition séparée)
# mount /dev/hdxy /boot


  • Vous êtes maintenant en tant que root sur votre système installé en dur.

Troisième étape: Réinstaller GRUB 2

Le paquet 'grub2' n'est pas indispensable, c'est ce que l'on appelle un "méta-paquet" il ne sert qu'a installer grub-pc et grub-common.

  • Editez le fichier /etc/default/grub (uniquement si vous savez ce que vous faites!) selon vos besoins, et lancez ensuite la commande :
# update-grub
  • Une fois le fichier /etc/grub/grub.cfg "réparé", tapez :
# grub-install /dev/hda 

Je suppose ici que vous voulez installer GRUB sur le MBR du disque dur. Si vous savez ce que vous faites et que vous voulez l'installer sur le PBR d'une partition, tapez grub-install --force /dev/hda1

  • Si l'étape se passe mal, essayez avec la commande
# grub-install --root-directory=/mnt/chroot/ --recheck /dev/hda

Pour des problèmes plus sérieux, et si les commandes ci-dessus ne donnent pas de résultat

Sortons l'artillerie lourde !

  1. D'abord installons, si ce n'est pas déjà fait os-prober
# aptitude install os-prober
  1. Effacer votre grub.cfg pour repartir de zéro :

Avant de lancer la commande ci-dessous, faire une sauvegarde (cp /boot/grub/grub.cfg /boot/grub/grub.bak)

# rm /boot/grub/grub.cfg
  1. Vérifiez que tous vos systèmes sont bien présents :
# os-prober
  1. Reconstruction du fichier /boot/grub/grub.cfg
# grub-mkconfig -o /boot/grub/grub.cfg
  1. Réinstallation de Grub2 dans le MBR avec les options de vérification
# grub-install --root-directory=/mnt/chroot/ --recheck /dev/hda
  1. Vérifiez que Grub2 est bien installé dans votre MBR :
# dd if=/dev/sda bs=512 count=1 | strings
1+0 enregistrements lus
1+0 enregistrements écrits
512 octets (512 B) copiés, 1,788e-05 s, 28,6 MB/s
ZRr=
`|f
\|f1
GRUB
Geom
Hard Disk
Read
Error

C'est bon, il est présent ! > reboot (reboute) pour vérifier ! (n'oubliez pas de croiser les doigts...)

Démontage (c'est plus propre)

  • Sortir du chroot :
$ exit
  • Une fois que vous revenu à la console de base, démontez tous vos montages antérieurs

Si vous aviez un /

$ sudo umount /mnt/chroot/boot
$ sudo umount /mnt/chroot/dev
$ sudo umount /mnt/chroot/proc
$ sudo umount /mnt/chroot/sys
$ sudo umount /mnt/chroot
  • Vous pouvez maintenant redémarrer votre machine, avec GRUB 2 correctement installé qui chargera votre système.

Rappel des commandes

Voici la liste de commandes que vous aurez à taper :

  1. $ sudo fdisk -l
  2. $ sudo mount /dev/hda1 /mnt/chroot
  3. $ sudo mount --bind /dev /mnt/chroot/dev
  4. $ sudo mount -t proc /proc /mnt/chroot/proc
  5. $ sudo mount -t sysfs /sys /mnt/chroot/sys
  6. $ sudo chroot /mnt/chroot
  7. # update-grub
  8. # grub-install /dev/hda (essayez grub-install --recheck /dev/hda si cela rate)
  9. # exit
  10. $ sudo umount /mnt/chroot/dev
  11. $ sudo umount /mnt/chroot/proc
  12. $ sudo umount /mnt/chroot/sys
  13. $ sudo umount /mnt/chroot

Lol 4 février 2010 à 16:43 (UTC)