Comment utiliser GRUB Rescue pour réparer Linux

Publié: 2023-05-14
Écran de démarrage d'Ubuntu Linux sur un ordinateur portable
Jordan Gloor / How-To Geek
Si vos shells GRUB affichent une invite "grub>", vous pouvez utiliser les commandes ls , set , linux et initrd pour réparer votre système Linux. Si à la place vous voyez une invite "grub rescue>", utilisez les commandes set , insmod , linux et initrd pour démarrer votre PC.

Si votre ordinateur Linux ne peut pas démarrer dans son système d'exploitation, vous risquez de vous retrouver à regarder une invite dans le shell GRUB. Suivez ces étapes pour réparer vos processus de démarrage cassés.

Table des matières

Lorsque votre chargeur de démarrage ne démarre pas
Utilisation du shell GRUB
Utilisation du shell de sauvetage GRUB
Autres remèdes possibles

Lorsque votre chargeur de démarrage ne démarre pas

Il y a très peu de problèmes informatiques qui font sombrer votre cœur aussi profondément et rapidement qu'un échec de démarrage. Sans un système d'exploitation fonctionnel, votre ordinateur n'est pas vraiment un ordinateur.

Il peut s'agir d'un problème très opaque, sans moyen facile d'explorer la cause profonde. Sans accès à Linux, vous ne pouvez utiliser aucun des outils et processus de diagnostic habituels que vous utiliseriez pour enquêter sur le problème. Et sans déterminer quel est le problème, comment pouvez-vous le résoudre ?

Sous Linux, GRUB est le logiciel qui contrôle le processus de démarrage. Si plusieurs systèmes d'exploitation sont installés, vous pouvez choisir celui sur lequel vous souhaitez démarrer.

GRUB est contrôlé par sa configuration. Il s'appuie également sur d'autres fichiers de support pour remplir ses fonctions. Si l'un d'entre eux manque ou est corrompu, GRUB ne fonctionnera pas. Les modifications apportées aux disques durs et aux partitions de votre ordinateur doivent être reflétées dans la configuration de GRUB. Si ce n'est pas le cas, les instructions de GRUB n'auront aucun sens et votre processus de démarrage ne fonctionnera pas.

Comment graver un fichier ISO sur une clé USB sous Linux
CONNEXION Comment graver un fichier ISO sur une clé USB sous Linux

En passant, ce que nous appelons tous GRUB est en fait GRUB 2. Il s'agit d'une version avancée de GRUB qui a été publiée en 2012. Entre autres changements, il a changé la façon dont le fichier "grub.cfg" a été créé, et vous permet démarrer à partir d'un support amovible.

Si GRUB ne peut pas charger un système d'exploitation, vous vous retrouverez devant une invite dans le shell GRUB. Il s'agit d'un environnement minimaliste qui vous permettra d'effectuer une poignée d'actions. Fait correctement, cependant, ces étapes peuvent ressusciter votre ordinateur.

Il existe deux shells GRUB différents. Selon la cause première du problème, vous pourriez vous retrouver devant une invite du shell GRUB :

 bouffe>

ou à une invite du shell de secours GRUB :

 sauvetage grub>

Le shell de secours GRUB est encore plus restreint que le shell GRUB, mais il contient toujours suffisamment de punch pour que votre ordinateur démarre. Une fois que votre ordinateur a démarré, vous êtes dans une bien meilleure position pour remédier à la cause première.

Utilisation du shell GRUB

Le shell GRUB est une interface de ligne de commande qui vous permet d'utiliser un petit sous-ensemble de commandes Linux. Si vous vous retrouvez ici au lieu de votre écran de connexion habituel, cela signifie que votre processus de démarrage est foiré.

L'invite du shell GRUB

Les commandes auxquelles vous avez accès ne sont pas les mêmes que les versions Linux habituelles. Par exemple, la commande ls du shell GRUB n'est pas la commande ls Bash. Il a très peu de choses en commun avec lui. Nous pouvons le voir en utilisant l'option --help .

 ls --help 

Utilisation de l'option --help avec la version du shell GRUB de ls

Il répertorie cinq options seulement. C'est loin des dizaines d'options prises en charge par ls dans Bash. Néanmoins, même avec notre palette de commandes quelque peu en sourdine, nous pouvons toujours rectifier la situation.

À l'invite, tapez ls et appuyez sur "Entrée".

 ls 

La sortie de la version du shell GRUB de ls, montrant les lecteurs et les partitions

Sur cet ordinateur, il répertorie trois éléments.

  • (hd0) est le premier disque dur.
  • (hd0, gpt1) est la première partition du premier disque dur.
  • (hd0, gpt2) est la deuxième partition sur le premier disque dur.

L'étiquette "gpt" signifie table de partition GUID. Nous devons inclure les crochets " () " lorsque nous faisons référence à une partition, mais nous pouvons omettre l'étiquette.

Pour regarder les partitions à tour de rôle, nous utiliserons ls .

 ls (hd0,1)
 ls (hd0,2) 

Utilisation de la version du shell GRUB de ls pour identifier la partition Linux

Nous avons découvert que la deuxième partition contient un système de fichiers Linux. Nous allons étudier un peu plus loin en examinant le répertoire racine de cette partition.

 ls (hd0,2)/ 

Utilisation de la version shell GRUB de ls pour examiner une partition particulière

Il s'agit clairement de la partition Linux, avec le répertoire de démarrage dessus. C'est là que les fichiers GRUB, les images de démarrage Linux et d'autres fichiers de démarrage sont stockés.

Sur cet ordinateur, nous devrons référencer la partition (hd0,2) lorsque nous émettrons nos commandes. Sur votre ordinateur, vous utiliserez la partition sur laquelle vous trouvez votre installation Linux.

Nous pouvons utiliser la commande cat pour rechercher des fichiers texte en ajoutant le chemin du répertoire et le nom du fichier au nom de la partition, comme ceci :

 chat (hd0,2)/etc/issue 

Regarder la version de Linux en utilisant la commande cat dans le shell GRUB

Sur les installations multi-boot, c'est un moyen utile de vérifier que vous êtes sur la bonne partition. C'est aussi idéal pour regarder à l'intérieur des fichiers de configuration.

Ici, nous utilisons la commande ls avec les options -l (long) et -h (taille lisible par l'homme) pour lister les fichiers dans le répertoire "/ boot".

 ls -lh (hd0,2)/démarrage 

Lister les fichiers dans le répertoire /boot en utilisant la version GURB de ls

Pour que cet ordinateur démarre, nous devons indiquer à GRUB que notre partition Linux nouvellement découverte contient les fichiers de démarrage.

 définir racine=(hd0,2)

Nous devons spécifier à partir de quel noyau Linux démarrer. Nous le faisons avec la commande linux . Notez que nous devons également fournir le répertoire racine en utilisant le schéma de nommage habituel des disques durs et des partitions Linux.

 linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2

Sur notre exemple d'ordinateur, nous utilisons (hd0) qui est le premier disque dur. Cela s'appelle sda ​​dans la nomenclature habituelle de Linux. Nous avons constaté que la deuxième partition est la partition Linux, nous devons donc spécifier sda2 .

Votre machine peut être différente. Par exemple, si votre partition Linux est signalée comme (hd2,1) , cela signifie la partition un sur le troisième disque dur, ou sdc1 .

Nous devons également spécifier l'image du système de fichiers basée sur la RAM à utiliser au démarrage de l'ordinateur. Cela doit utiliser le même composant numérique que le noyau Linux que nous utilisons.

 initrd /boot/initrd.img-6.2.0-20-generic 

Définition des paramètres de démarrage dans le shell GRUB

Maintenant, pour démarrer notre système, tapez "boot" et appuyez sur "Entrée".

Cela devrait démarrer votre ordinateur sous Linux. Cela nous a remis en marche, mais nous devons encore réparer GRUB afin que nous n'ayons pas besoin de le faire à chaque fois que nous démarrons notre ordinateur.

Nous allons exécuter update-grub . Cela analysera notre système, identifiera les systèmes d'exploitation et créera une nouvelle configuration GRUB. Nous devons l'exécuter en tant qu'utilisateur root.

 sudo update-grub 

Exécution de update-grub pour reconstruire le fichier grub.cfg

Rarement, vous devrez peut-être également réinstaller le chargeur de démarrage GRUB, en utilisant grub-install .

 sudo grub-install /dev/sda

Notez que vous n'avez pas besoin de spécifier sur quelle partition installer, juste sur quel lecteur. Dans les installations normales, c'est le même lecteur que votre Linux.

La preuve du pudding vient avec le prochain redémarrage. Votre ordinateur devrait redémarrer normalement.

CONNEXION: Comment configurer les paramètres du chargeur de démarrage GRUB2

Utilisation du shell de sauvetage GRUB

Selon la nature du problème de démarrage, il est possible que vous ne tombiez pas dans le shell GRUB. Vous pourriez être laissé en mode de secours GRUB. Si tel est le cas, votre invite ressemblera à ceci :

 sauvetage grub>

Les commandes que nous devons émettre dans ce shell sont différentes. Nous devons utiliser ls pour trouver la partition Linux, comme si vous utilisiez le shell GRUB. Après avoir identifié la partition Linux, vous pouvez continuer et entrer ces commandes.

N'oubliez pas d'utiliser les identifiants de lecteur et les numéros de version du noyau qui sont corrects pour votre ordinateur. La commande insmod charge les modules du noyau.

 définir le préfixe=(hd0,2)/boot/grub
 définir racine=(hd0,2)
 insmod normal
 insmod linux
 linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2
 initrd /boot/initrd.img-6.2.0-20-generic 

Définition des paramètres de démarrage dans le shell de secours GRUB

Vous pouvez ensuite taper "boot" et appuyer sur "Entrée" pour redémarrer votre ordinateur. Une fois qu'il a redémarré et que vous êtes connecté, mettez à jour GRUB avec la commande update-grub .

Autres remèdes possibles

Si le problème s'avère être des fichiers de démarrage manquants, tels que les fichiers "vmlinuz" et "initrd.img", vous pouvez démarrer votre ordinateur à partir d'un DVD Live ou d'une clé USB Linux amorçable, et copier les fichiers manquants en place.

Notez que les fichiers "vmlinuz" et "initrd.img" doivent avoir les mêmes numéros de version, car ils fonctionnent comme une paire appariée.

CONNEXION: Comment créer une clé USB Linux Live amorçable sur votre Mac