Réinstaller Grub2

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

Attention! Ce document n'a pas été validé par la communauté. Soyez prudent vis-à-vis de son contenu! Si au cours de vos manipulations un problème survenait, vous ne pouvez en aucun cas incriminer ce site. Posez vos questions sur le forum

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 part 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'ammorç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 click, 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 ou se trouve notre système :

grub rescue> set root=(hd0,1)

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

A ce niveau, vous retrouvez votre menu "habituel" ou 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 de le réinstaller sur 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 vote ordinateur avec Super-grub-disk, 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 LiveCD et démarrez votre machine avec. N'inmporte quel LiveCD à 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  :
$ sudo mkdir /mnt/chroot
$ sudo mount /dev/hda1 /mnt/chroot
  • Si vous aviez créé une partition séparée pour /boot, il faut la monter :
$ sudo mount /dev/hdxy /mnt/chroot/boot

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éé, il faut monter les périphériques que le Live CD a trouvé,
$ sudo mount --bind /dev/ /mnt/chroot/dev
$ sudo mount -t proc /proc /mnt/chroot/proc

A Vérifier !!!! Je ne suis pas absolument certain sur qu'il soit indispensable de monter /proc ?

  • Le système est prêt à être "chrooté" :
$ sudo chroot /mnt/chroot
  • Vous êtes maintenant en tant que root sur votre système installé en dur.

Troisième étape: Réinstaller GRUB 2

Le paquer '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 besoin, et lancez ensuite la commande :
# update-grub
  • Une fois le fichier /etc/grub/grub.cfg "réparé", tapez :
# grub-install /dev/hda 

Je pose 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
  • 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 chroot /mnt/chroot
  6. # update-grub
  7. # grub-install /dev/hda (essayez grub-install --recheck /dev/hda si cela rate)
  8. # exit
  9. $ sudo umount /mnt/chroot/dev
  10. $ sudo umount /mnt/chroot

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