Grub, error 22 ?
Qui n'a jamais eu un jour ce message d'erreur au démarrage de sa machine Linux ? Et comme c'est au démarrage, cela nous laisse complétement désemparé !
Ce message "Grub, error 22" signifie que notre système n'arrive pas à se lancer, donc en clair que le "lanceur" Grub est mal configuré (il ne trouve pas la partition où se trouve son fichier de configuration : menu.lst).
Cela arrive souvent suite à une installation en double boot, ou une installation dans une configuration matérielle un peu complexe. Mais nous pouvons l'avoir également lors de la suppression d'un Linux installé en double boot avec Windows.
Par exemple, cela m'est arrivé lorsque j'ai installé une CentOS 5.4 de secours (de mon serveur) sur une clé USB !
Comment s'en sort-on ?
1 - Premier cas de figure : mauvaise configuration !
Pour s'en sortir, c'est assez simple, et plus ou moins long selon la méthode utilisée.
Utiliser l'outil Grub
Cette méthode est la plus simple à mettre en œuvre. Elle fonctionne avec :
- tout Live CD contenant le programme Grub (je pense que c'est le cas aujourd'hui de toutes les distributions classiques);
- un CD spécial de réparation comme SystemRescueCd (~200Mo);
- ou encore avec le CD d'installation de votre distribution lorsqu'il vous propose une session de dépannage.
C'est ce dernier cas que j'ai utilisé avec ma CentOS 5.4 : démarrer sur le CD, à l'invite de boot taper linux rescue, après quelques renseignements (clavier, réseau), on se retrouve sous un shell d'où on va pouvoir lancer les commandes voulues et notre système de fichiers qui est monté sous /mnt/sysimage. Pour se retrouver dans l'environnement défaillant il suffit de "chrooter" en lançant la commande : chroot /mnt/sysimage.
Avec un live-CD ou autre, la démarche est sensiblement la même, l'idée est de se retrouver sous un shell en administrateur dans le système de fichiers qui ne démarre pas.
Ensuite les étapes sont les mêmes :
# grub
Vous arrivez alors 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.
Imaginons que cette commande nous ait fourni (hd4,0) comme réponse (oui je sais c'est curieux, mais dans mon cas c'est juste, car mon système est sur une clé repérée comme étant /dev/sde). Dans ce cas, il faut entrer :
> root (hd4,0)
L’étape suivante consiste à indiquer à Grub le disque sur lequel il doit (ré)installer le chargeur de système. En principe on l'installe sur le premier disque dur, c.a.d hd0 (pour info, hd0 représente hda ou sda le premier disque dur). Pour ma part, je l'installe sur ma clé soit hd4:
> setup (hd4) > 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à c'est terminé le système redémarrera maintenant correctement.
2 - Second cas de figure : suite à la suppression du Linux !
Vous avez fait une installation en double-boot Windows - Linux. Et puis vous ne vous êtes pas adapté à Linux, ou vous avez décidé de l'installer sur un micro dédié, enfin peu importe la raison vous décidez de supprimer le Linux. Vous bidouillez, jouez avec les partitions en supprimant celles sur lesquelles était installé votre Linux, et vous redémarrez votre ordinateur. Mais : grub error 22 !
Hé oui, il faut réinstaller le MBR (Master Boot Record ou zone d'amorce), premier secteur (secteur 0) de votre disque dur de démarrage, car le petit bout de programme qui s'y trouve (sur 444 octets !) vous renvoie sur votre Grub qui ne s'y retrouve plus, au lieu de vous envoyer sur la partition primaire contenant Windows.
Pour réinstaller le MBR, le mieux est d'avoir un CD d'installation Windows. Mais cela commence à se faire de plus en plus rare. Heureusement il y a d'autres solutions.
Comme je n'ai jamais eu à le faire, je préfère vous renvoyer sur ce lien http://www.commentcamarche.net/faq/sujet-485-desinstaller-lilo-ou-grub, il me paraît complet, il y a même un lien qui renvoie sur une explication pour Windows 7.