Il n'est pas rare que les bidouilleurs de clés USB et autres disques durs se retrouvent au demarrage de leur machine avec un message du type :
- Code: Tout sélectionner
GRUB loading.
error: no such device
grub rescue >
Panique à bord garantie !
Les commandes pour reprendre le contrôle de la bête :
set : liste les variables actuelles de GRUB et notamment "root=" et "prefix="
ls : liste le contenu d'une partition ou d'un répertoire, comme sous le shell classique
En général, on commence par un
- Code: Tout sélectionner
grub rescue> ls
qui va donner la liste réelle des disques durs et des partitions sous la forme (hdX,Y). hdX est le disque dur, Y la partition du disque.
- Code: Tout sélectionner
grub rescue> ls (hdX,Y)/
permet de lister le contenu de la partition. Ce qui nous intéresse, c'est évidemment de trouver la partition /boot du système qui va nous permettre de lancer linux.
Une fois la partition repérée avec les bons numéros, on fixe le préfixe et la racine via :
- Code: Tout sélectionner
grub rescue> set root=hdX,Y
A partir de maintenant, on peut oublier le hdX,Y et travailler directement avec /...
- Code: Tout sélectionner
grub rescue> set prefix=/boot/grub
en supposant ici que le / et le /boot sont sur la même partition...
On peut ensuite charger les modules ext2 pour le système de fichier et linux pour pouvoir utiliser la commande du même nom soit :
- Code: Tout sélectionner
grub rescue> insmod ext2
grub rescue> insmod linux
C'est bien beau d'avoir retrouvé le bon disque et la bonne partition, mais il faut encore définir le noyau à lancer... On va donc afficher la liste des noyaux disponibles avec :
- Code: Tout sélectionner
grub rescue> ls /boot
qui doit afficher une liste avec les vmlinuz et les initrd. On fixe alors le noyau et les modules à charger avec :
- Code: Tout sélectionner
grub rescue> linux /boot/vmlinuz-2.6.A-B-generic root=/dev/sdaZ rw noresume
grub rescue> initrd /boot/initrd.img-2.6.A-B-generic
Et enfin, on lance le boot...
- Code: Tout sélectionner
grub rescue> boot
A noter enfin que le grub rescue étant un sous-ensemble restreint de GRUB, on peut aussi revenir au GRUB complet via :
- Code: Tout sélectionner
insmod /boot/grub/normal.mod
