Vous êtes sur la page 1sur 6

grub-rescue [CoursInfoRevest]

http://www.coursinforev.org/doku.php/grub-rescue

CoursInfoRevest

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

Les commandes suivantes sont disponibles en mode rescue du grub:

boot, cat, chainloader, dump, exit, freebsd, freebsd_loadenv, freebsd_module, help, initrd, insmod, linux, lsmod, multiboot, normal, rmmod, set, unset

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 chargement du kernel

/linux.mod

lsmod

 

linux /vmlinuz

Charge le noyau kernel. Mettre les bonnes désignations pour mettre "X" and "Y". Il y aura ensuite une annonce du chargement correct

root=/dev/sdXY ro

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

Procédure à partir du .iso

grub-rescue [CoursInfoRevest]

http://www.coursinforev.org/doku.php/grub-rescue

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

Cette procédure est pour:

Versions de la famille avec Grub 2Grub2. Conditions préalables Cette procédure est pour: Mauvais menu Grub 2 (grub.cfg) Kernels Linux & images

Mauvais menu Grub 2 (grub.cfg)procédure est pour: Versions de la famille avec Grub 2 Kernels Linux & images initramfs manquants

Kernels Linux & images initramfs manquantsde la famille avec Grub 2 Mauvais menu Grub 2 (grub.cfg) Fichiers système corrompus Pour que

Fichiers système corrompus2 (grub.cfg) Kernels Linux & images initramfs manquants Pour que la procédure marche, il faut: Avoir

Pour que la procédure marche, il faut:

Avoir une image LiveCD isosur une partition acessible à partir du prompt grub-rescue LiveCD isosur une partition acessible à partir du prompt grub-rescue

Les modules Grub d'une installation précédente doivent être accessibles et chargeablesune partition acessible à partir du prompt grub-rescue La procédure ne peut fonctionner pour: Modules Grub

La procédure ne peut fonctionner pour:

Modules Grub 2 manquant (normalement dans /boot/grub ou /usr/lib/grub/i386-pc )et chargeables La procédure ne peut fonctionner pour: Images Ubuntu ISO corrompues Structure de partition

Images Ubuntu ISO corrompues(normalement dans /boot/grub ou /usr/lib/grub/i386-pc ) Structure de partition corrompue - "ls" ne donne que

Structure de partition corrompue - "ls" ne donne que "(hd0)"ou /usr/lib/grub/i386-pc ) Images Ubuntu ISO corrompues Localiser la partition Ubuntu et le dossier contenant les

Localiser la partition Ubuntu et le dossier contenant les modules Grub

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

soit dans (hdX,Y)/boot/grubêtre dans une partition-racine. Il doit être normalement soit dans (hdX,Y)/usr/lib/grub/i386-pc Recherche de

soit dans (hdX,Y)/usr/lib/grub/i386-pcIl doit être normalement soit dans (hdX,Y)/boot/grub Recherche de partition Ubuntu et du dossier du module.

Recherche de partition Ubuntu et du dossier du module.

ls

# Liste les disques connus drives (hdX) et les partitions (hdX,Y)

ls (hdX,Y)/

# Liste les contenus des partitions-racine

ls (hdX,Y)/boot/grub

# Emplacement normal des modules Grub2

ls (hdX,Y)/usr/lib/grub/i386-pc # Emplacement alternatif des modules Grub2

ls - doit donner directement tous les disques connus (hdX) et les partitions (hdX,Y)# Emplacement alternatif des modules Grub2 ls (hdX,Y)/ - doit montrer les contenus de la partition

ls (hdX,Y)/ - doit montrer les contenus de la partition Si "error: unknown filesystem ", ce n'est pas une bonne partition error: unknown filesystem", ce n'est pas une bonne partition

filesystem ", ce n'est pas une bonne partition Si c'est une partition Ubuntu, on voit le

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 suivantefilesystem ", ce n'est pas une bonne partition ls (hdX,Y)/boot/grub/i386-pc - doit montrer des dizaines de

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-pccette adresse comme première partie de la commande suivante Chargement des modules set prefix=(hdX,Y)/<path to

essayer en alternative: ls (hdX,Y)/usr/lib/grub/i386-pc Chargement des modules set prefix=(hdX,Y)/<path to

Chargement des modules

set prefix=(hdX,Y)/<path to modules>

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

Chargement des modules:

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.

Localiser le fichier ISO Ubuntu

grub-rescue [CoursInfoRevest]

http://www.coursinforev.org/doku.php/grub-rescue

En utilisant les mêmes combinaisons de commande ls, localiser les images Ubuntu.

ls (hdX,Y)/

Chercher les contenus incluant les ISO, comme ubuntu -10.04.1-desktop-i386.isode commande ls, localiser les images Ubuntu. ls (hdX,Y)/ Etendre la recherche au besoin si le

Etendre la recherche au besoin si le .iso n'est pas dans le dossier considéréincluant les ISO, comme ubuntu -10.04.1-desktop-i386.iso En cas d'erreur " unknown filesystem ", on peut

En cas d'erreur "unknown filesystem ", on peut avoir besoin de charger un autre fichier-module (comme ntfs ou unknown filesystem", on peut avoir besoin de charger un autre fichier-module (comme ntfs ou fat). Revenir à la section précédente comme guide.

Monter un fichier comme dispositif

loopback loop (hdX,Y)/<path to ISO>/<ISO-name.iso>

Exemple: loopback loop (hd1,1)/ubuntu-10.04.1-desktop-i386.iso

Charger le kernel Linux X et l'image initrd

set root=(loop) linux /casper/vmlinuz boot=casper iso-scan/filename=/<ISO-name.iso> noprompt noeject initrd /casper/initrd.lz

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.

Exemples: linux /casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04.1-desktop-i386.iso linux /casper/vmlinuz boot=casper iso-scan/filename=/my-iso/ubuntu-10.04.1-desktop-i386.iso

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

Après un redémarrage réussi, il faut,

soit, réinstaller Grub2 (sudo grub-install /dev/sdX)Après redémarrage Après un redémarrage réussi, il faut, soit, éditer les fichiers de configurations Grub2 et

soit, éditer les fichiers de configurations Grub2 et y faire les changements nécessaires.faut, soit, réinstaller Grub2 (sudo grub-install /dev/sdX) Si le grub rescue ne marche pas, faire une

Si le grub rescue ne marche pas, faire une réinstallation Gub2 (Méthode 1 ou 2)

Procédure sans fichier iso

Déterminer la partition du /boot

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).sans fichier iso Déterminer la partition du /boot Exemples: idem mais sur un autre disque dur:

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)le device grub est (hd0,1) ou (hd0,2) ou (hd0,3) ou (hd0,4). pour une partition étendue, premier

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.disque dur –> (hd1,1) ou (hd1,2) ou (hd1,3) ou (hd1,4) si le /boot est une partition

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.étendue, (hd0,6) pour la seconde et ainsi de suite. ,Une fois, le nom du device (hdX,Y)

,Une fois, le nom du device (hdX,Y) connu, si on a une partition /boot à part, cela donne le préfixe: (hdX,Y)/grubpas la partition-racine. Même chemin que décrit au-dessus. si le /boot est sur la partition-racine, cela

/boot à part, cela donne le préfixe: (hdX,Y)/grub si le /boot est sur la partition-racine, cela

si le /boot est sur la partition-racine, cela donne le préfixe: (hdX,Y)/boot/grub/boot à part, cela donne le préfixe: (hdX,Y)/grub Etape suivante Taper Ctl+Alt+Supp pour redémarrer. Au

Etape suivante

Taper Ctl+Alt+Supp pour redémarrer. Au prompt grub-rescue: Ctl+Alt+Supp pour redémarrer. Au prompt grub-rescue:

Etape suivante Taper Ctl+Alt+Supp pour redémarrer. Au prompt grub-rescue: taper 3 sur 6 01/01/2016 17:22

taper

grub-rescue [CoursInfoRevest]

set prefix=(hdX,Y)/grub"

ou biengrub-rescue [CoursInfoRevest] set prefix=(hdX,Y)/grub" http://www.coursinforev.org/doku.php/grub-rescue set

http://www.coursinforev.org/doku.php/grub-rescue

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

On doit maintenant avoir accès à la console grub complète.

insnmod sh

Si ce n'est pas assez pour se remettre sur les rails, on peut encore taper:

"insmod configfile"assez pour se remettre sur les rails, on peut encore taper: puis "set root=(hdX,Y)/boot/grub" ou bien

puis "set root=(hdX,Y)/boot/grub"les rails, on peut encore taper: "insmod configfile" ou bien "set root=(hdX,Y)/grub" (la même chose que

ou bien "set root=(hdX,Y)/grub" (la même chose que pour prefix)configfile" puis "set root=(hdX,Y)/boot/grub" puis "configfile (hdX,Y)/boot/grub/grub.cfg" ou

puis "configfile (hdX,Y)/boot/grub/grub.cfg"root=(hdX,Y)/grub" (la même chose que pour prefix) ou "configfile (hdX,Y)/grub/grub.cfg" Après

ou "configfile (hdX,Y)/grub/grub.cfg"prefix) puis "configfile (hdX,Y)/boot/grub/grub.cfg" Après redémarrage correct Penser à corriger le boot à

Après redémarrage correct

Penser à corriger le boot à l'aide de la commande grub-install.

Taper "insmod sh"

Autre procédure

Il faut commencer part identifier les disques et les partitions.

ls devrait lister les disques et les partitions valides

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> ls (hd0,1) # pour /dev/sda1

grub-rescue> ls (hd1,2) # pour /dev/sdb2 etc

Lorsque la partition / est trouvée il faut taper la commande :

grub-rescue> set prefix=(hdX,Y)/boot/grub

puis

# en remplaçant bien sûr les X et Y par les bonnes valeurs

grub-rescue> set root=(hdX,Y) # (hdX,Y) est à adapter insmod /boot/grub/linux.mod linux /vmlinuz root=/dev/sdXY ro # sdXY sera aussi à adapter initrd /initrd.img boot

Si Ubuntu démarre normalement, il faut maintenant adapter les fichiers de boot:

sudo update-grub

# pour réadapter les options GRUB

sudo grub-install /dev/sda

# pour le MBR du DD principal, c'est le cas majoritaire. Sinon adapter

Entrée en mode grub-rescue

Pour rentrer délibérément en mode grub-rescue, renommer le fichier normal.mod . Exemple: délibérément en mode grub-rescue, renommer le fichier normal.mod. Exemple:

sudo mv /boot/grub/normal.mod /boot/grub/normal.mod.back

Pour en sortir, utiliser la procédure du paragraphe précédent.sudo mv /boot/grub/normal.mod /boot/grub/normal.mod.back Ou bien, redémarrer en LiveCD et renommer manuellement le

Ou bien, redémarrer en LiveCD et renommer manuellement le fichier normal.mod. LiveCD et renommer manuellement le fichier normal.mod.

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]

grub-rescue [CoursInfoRevest]

http://www.coursinforev.org/doku.php/grub-rescue

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]

grub-rescue [CoursInfoRevest]

http://www.coursinforev.org/doku.php/grub-rescue

grub-rescue.txt · Dernière modification: 2014/05/25 17:20 par g.rnd@free.fr