Académique Documents
Professionnel Documents
Culture Documents
php/grub-rescue
CoursInfoRevest
Grub-Rescue
On peut, en cas de problème important avec Grub, se retrouver en Grub-Rescue au démarrage. On le reconnaît avec le
prompt suivant:
grub-rescue>
Clavier
En grub-rescue, le clavier se trouve en QWERTY.
Commandes grub-rescue
Les commandes supplémentaires suivantes sont disponibles:
Commande Action
dump Nettoyage de la mémoire
exit Sortie de GRUB 2
normal Retour au mode normal "grub>" si possible
Au prompt grub rescue, on peut utiliser les commandes suivantes pour essayer de redémarrer sur le dernier kernel.
Commande/Réponse Action
ls Affiche les disques et partitions connues. L'utilisateur doit déterminer où est installé le
système pour la suite. Mieux vaut l'avoir noté auparavant
cat Affiche le contenu d'un fichier. Par exemple cat /boot/grub/grub.cfg , cat /etc/fstab
set root=(hdX,Y) où X est le n° du disque (commençant à 0) et Y la partition (commençant à 1). Exemple:
(hd3,5) correspond à sdc5)
set Normalement, récupère tout seul la désignation de la racine, sinon, entrer la commande
suivante
set prefix= En cas d'erreur, des erreurs "no such disk" ou "not found" apparaitront plus tard
(hdX,Y)/boot/grub
ls /boot Inspecter le contenu. On y trouve les différents kernels, images initrd et répertoire grub.
Si ce n'est pas le cas, utiliser la commande ls pour chercher sur le disque. Si nécessaire,
désigner un autre disque comme racine
insmod /boot/grub Charge le module Linux. Sans lui, le message "Unknown command linux" apparaîtra au
/linux.mod chargement du kernel
lsmod
linux /vmlinuz Charge le noyau kernel. Mettre les bonnes désignations pour mettre "X" and "Y". Il y aura
root=/dev/sdXY ro ensuite une annonce du chargement correct
initrd /initrd.img Charge l'image initrd. Un message peut apparaître dans le terminal
loopback
boot Charge l'image initrd. Un message peut apparaître dans le terminal
Ce guide détaille comment booter un Live CD ISO Ubuntu à partir d'un prompt "grub-rescue". Cette procédure est
également valable à partir du prompt "grub>" pour des utilisateurs Grub2.
Conditions préalables
Avoir une image LiveCD isosur une partition acessible à partir du prompt grub-rescue
Les modules Grub d'une installation précédente doivent être accessibles et chargeables
Le dossier Grub contenant les modules doit être localisé pour que les bons modules soient chargés. Ce dossier doit avoir
été créé à l'installation Ubuntu et doit être dans une partition-racine. Il doit être normalement
ls - doit donner directement tous les disques connus (hdX) et les partitions (hdX,Y)
ls (hdX,Y)/ - doit montrer les contenus de la partition
Si "error: unknown filesystem", ce n'est pas une bonne partition
Si c'est une partition Ubuntu, on voit le contenu ce qui inclut lost+found/, home/, boot/ and vmlinuz and
initrd.img. Utiliser cette adresse comme première partie de la commande suivante
ls (hdX,Y)/boot/grub/i386-pc - doit montrer des dizaines de dossiers *.mod. C'est le dossier recherché.
Si on n'a pas trouvé les modules, essayer en alternative: ls (hdX,Y)/usr/lib/grub/i386-pc
Cette commande doit pointer sur le dossier contenant les modules Grub. L'adresse devrait être celle de la section
précédente ayant montré les modules
Exemples:
set prefix=(hd0,5)/boot/grub
set prefix=(hd1,1)/usr/lib/grub/i386-pc
insmod linux
insmod loopback
insmod iso9660 # si besoin
insmod fat # Si ISO est situé sur une partition formatée fat16 ou fat32
insmod ntfs # If ISO est situé sur une partition NTFS
insmod nftscomp # If une compression NTFS est utilisée sur la partition. Charger en cas de doute
Une erreur "file not found" signifie que le chemin du préfixe est incorrect ou que le module spécifique n'existe pas. Le
préfixe peut être revu avec commande set. Relancer la commande "set prefix=" avec le bon chemin.
En utilisant les mêmes combinaisons de commande ls, localiser les images Ubuntu.
ls (hdX,Y)/
If the path to the ISO or filename is not correct, the boot will halt at the BusyBox screen and produce a message stating
"can't open /dev/sr0: No medium found".
Note: If the ISO file is not in the / folder, include the path in the iso-scan/filename= entry. See second example.
Boot
That should be it. If the commands ran without any messages/errors, the commands were accepted as entered. It's now
time to boot:
boot
Après redémarrage
Exemples:
si /boot est sur une partition-racine, et que celle-ci est une partition primaire avec un n° de 1 à 4, du premier
disque dur, le device grub est (hd0,1) ou (hd0,2) ou (hd0,3) ou (hd0,4).
idem mais sur un autre disque dur: remplacer le 0 par l'ordre de chargement du disque (à consulter dans le bios),
plus 1. Exemple: le second disque dur –> (hd1,1) ou (hd1,2) ou (hd1,3) ou (hd1,4)
pour une partition étendue, premier disque dur, le device est (hd0,5) pour la première partition étendue, (hd0,6)
pour la seconde et ainsi de suite.
si le /boot est une partition à part, c'est cette partition là qu'il faut localiser et pas la partition-racine. Même
chemin que décrit au-dessus.
Etape suivante
set prefix=(hdX,Y)/grub"
ou bien
set prefix=(hdX,Y)/boot/grub # en fonction de ce que l'on a trouvé plus haut, et en remplaçant X et Y par les valeurs adéquates
insmod
insnmod sh
Si ce n'est pas assez pour se remettre sur les rails, on peut encore taper:
"insmod configfile"
puis "set root=(hdX,Y)/boot/grub"
ou bien "set root=(hdX,Y)/grub" (la même chose que pour prefix)
puis "configfile (hdX,Y)/boot/grub/grub.cfg"
ou "configfile (hdX,Y)/grub/grub.cfg"
Autre procédure
Il faut commencer part identifier les disques et les partitions.
grub-rescue> ls
Si on n'est par sûr de la partition, on peut tester les différentes partitions apparues jusqu'à afficher la bonne structure :
grub-rescue> set prefix=(hdX,Y)/boot/grub # en remplaçant bien sûr les X et Y par les bonnes valeurs
puis
sudo grub-install /dev/sda # pour le MBR du DD principal, c'est le cas majoritaire. Sinon adapter
Bibliographie
http://ubuntuforums.org/showthread.php?t=1599293 [http://ubuntuforums.org/showthread.php?t=1599293] dont la
traduction a fourni la première procédure
http://forum.ubuntu-fr.org/viewtopic.php?id=902271 [http://forum.ubuntu-fr.org/viewtopic.php?id=902271]
http://forum.ubuntu-fr.org/viewtopic.php?id=358656 [http://forum.ubuntu-fr.org/viewtopic.php?id=358656]
http://forum.ubuntu-fr.org/viewtopic.php?pid=3663964#p3663964 [http://forum.ubuntu-fr.org
/viewtopic.php?pid=3663964#p3663964]