Si vos shells GRUB affichent une invite « grub> », vous pouvez utiliser le ls
, set
, linux
et initrd
commandes pour réparer votre système Linux. Si à la place vous voyez une invite « grub rescue> », utilisez set
, insmod
, linux
et initrd
commandes 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.
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.
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 :
grub>
ou dans un GRUB sauvetage invite du shell :
grub rescue>
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é.
Les commandes auxquelles vous avez accès ne sont pas les mêmes que les versions Linux habituelles. Par exemple, le shell GRUB ls
la commande n’est pas le Bash ls
commande. Il a très peu de choses en commun avec lui. Nous pouvons le voir en utilisant le --help
option.
ls --help
Il répertorie cinq options seulement. C’est bien loin des dizaines d’options prises en charge par ls
à Basch. 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
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 parenthèses « ()
” lorsque nous référençons 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)
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)/
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 émettons nos commandes. Sur votre ordinateur, vous utiliserez la partition sur laquelle vous trouvez votre installation Linux.
Nous pouvons utiliser le 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 :
cat (hd0,2)/etc/issue
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 le ls
commande avec le -l
(long et -h
(tailles lisibles par l’homme) pour répertorier les fichiers dans le répertoire « / boot ».
ls -lh (hd0,2)/boot
Pour que cet ordinateur démarre, nous devons indiquer à GRUB que notre partition Linux nouvellement découverte contient les fichiers de démarrage.
set root=(hd0,2)
Nous devons spécifier à partir de quel noyau Linux démarrer. Nous faisons cela avec le linux
commande. 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. C’est appelé sda
dans la nomenclature habituelle de Linux. Nous avons trouvé 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 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
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 courrons 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
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.
EN RAPPORT: 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é dans le GRUB sauvetage mode. Si tel est le cas, votre invite ressemblera à ceci :
grub rescue>
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. Le insmod
La commande charge les modules du noyau.
set prefix=(hd0,2)/boot/grub
set root=(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
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 vous êtes connecté, mettez à jour GRUB avec le update-grub
commande.
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 » devoir contiennent les mêmes numéros de version, car ils fonctionnent comme une paire appariée.
EN RAPPORT: Comment créer une clé USB Linux Live amorçable sur votre Mac