Comment réparer l'erreur de démarrage Linux dans le BIOS

Publié: 2022-09-28
Ordinateur portable sur fond bleu affichant une invite de commande Linux.
fatmawati achmad zaenuri/Shutterstock.com

Les mises à jour GRUB sont connues pour entraîner le démarrage des ordinateurs Linux dans les paramètres BIOS ou UEFI. Le correctif pour cela tire parti d'une astuce de récupération système utile que vous devriez vraiment connaître.

Une étude de cas : GRUB 2:2.06.r322

Une mise à jour du système pour les distributions Linux basées sur Arch et Arch à l'été 2022 comprenait une nouvelle version de GRUB. GRUB signifie gr et chargeur de démarrage unifié.

Un chargeur de démarrage est une application qui lance le processus de démarrage lorsque votre ordinateur est allumé. Plusieurs outils logiciels et utilitaires doivent être lancés, à partir de la bonne partition et dans le bon ordre, pour finalement aboutir à un système d'exploitation opérationnel et accessible. GRUB lance cette cascade d'événements.

Si plusieurs systèmes d'exploitation sont installés sur votre ordinateur, GRUB propose un menu vous permettant de sélectionner le système d'exploitation à utiliser. L'un des changements de code apportés à GRUB 2:2.06.r322 a ajouté la prise en charge d'une nouvelle option GRUB, --is-supported . L'option est utilisée pour indiquer si une capacité de démarrage à partir du micrologiciel est présente ou non. Si c'est le cas, GRUB ajoute une entrée au menu de démarrage pour vous permettre de démarrer dans vos paramètres EUFI.

La nouvelle option a été référencée dans un script appelé "30_uefi-firmware.in". Le diff pour ce fichier montre qu'une instruction if a été supprimée et que deux lignes ont été ajoutées.

L'une des nouvelles lignes était un remplacement de l'instruction if . L'autre nouvelle ligne contient fwsetup --is-supported . Le "fw" dans "fwsetup" signifie firmware. Mais parce que cette ligne est au- dessus de la nouvelle instruction if , elle va toujours s'exécuter. S'il se trouvait à l'intérieur du corps de l'instruction if , il ne s'exécuterait que lorsque le test de l'instruction if se résoudrait à vrai.

Qu'est-ce que l'UEFI et en quoi est-il différent du BIOS ?
CONNEXION Qu'est-ce que l'UEFI et en quoi est-il différent du BIOS ?

Cela a causé des problèmes sur de nombreux ordinateurs UEFI, mais pas sur tous. Cela dépendait si la version de GRUB que vous aviez déjà installée prenait en charge cette commande. Les machines affectées feraient l'une des deux choses. Soit ils entraient dans une boucle de démarrage où le processus de démarrage n'était jamais terminé mais redémarré en permanence, soit l'ordinateur démarrait directement dans les paramètres du micrologiciel UEFI. Dans tous les cas, il n'y avait aucun moyen de forcer votre ordinateur à démarrer sous Linux.

Lorsque vous êtes confronté à des situations comme celle-ci, il y a toujours l'option nucléaire de faire une réinstallation complète. Cela fonctionnera, mais selon la façon dont votre disque dur a été partitionné, sans une sauvegarde récente, vous risquez de perdre des données.

La méthode à faible impact utilise chroot et un Live USB ou Live CD/DVD. C'est une bonne technique pour comprendre et préparer toutes sortes de pannes système lorsque vous ne pouvez pas démarrer ou vous connecter à votre ordinateur Linux.

La technique que nous utiliserons

Pour utiliser cette technique, vous devez disposer d'une clé USB ou d'un CD/DVD amorçable contenant une distribution Linux, qui démarre dans une instance Linux en direct. Généralement, ceux-ci sont appelés Live USB ou Live CD/DVD. Toutes les principales distributions prennent en charge cette fonction.

Comment créer une clé USB Ubuntu en direct avec un stockage persistant
CONNEXION Comment créer une clé USB Ubuntu en direct avec un stockage persistant

Nous n'allons rien installer, il n'est donc pas nécessaire que le média en direct soit la même distribution que celle que vous avez installée sur votre ordinateur. Vous pouvez utiliser une clé USB Ubuntu pour réparer un ordinateur EndeavourOS, par exemple. Si vous n'avez accès à aucun média en direct, vous devrez utiliser un autre ordinateur pour télécharger une image et l'écrire sur une clé USB ou sur un CD/DVD.

Lorsque vous démarrez à partir du support en direct, vous pourrez monter et accéder à votre système de fichiers existant. Votre système de fichiers installé apparaîtra dans le cadre du système de fichiers de Linux qui a été démarré à partir du support en direct. C'est génial. Si nous pouvons y accéder, nous avons une chance de le réparer. Mais cela soulève un problème.

Comment utiliser la commande chroot sous Linux
CONNEXION Comment utiliser la commande chroot sous Linux

La racine de ce système de fichiers hybride est la racine du système de fichiers multimédia en direct, et non la racine de votre système de fichiers installé. Pour que les chemins de fichiers configurés dans votre système Linux référencent leurs emplacements cibles corrects - quelque part à l'intérieur de votre système de fichiers, et non quelque part par rapport à la racine du Linux en direct - nous devons utiliser chroot pour définir une nouvelle racine qui pointe vers la racine de votre système de fichiers installé . En d'autres termes, les chemins commençant par "/" utiliseront la racine de votre système de fichiers comme point de départ.

L'ordinateur de test que nous avons utilisé pour cela utilise le système de fichiers ext4 , mais vous pouvez également utiliser cette technique sur d'autres systèmes de fichiers. Il vous suffit d'identifier les partitions ou les volumes que vous devez monter et où les monter. Les principes sont les mêmes.

Mettre en pratique

Nous avons créé une clé USB amorçable et démarré notre ordinateur en panne à partir de celle-ci. La distribution que nous avons utilisée était EndeavourOS. Le média en direct EndeavourOS démarre dans l'environnement de bureau XFCE 4.

Le média en direct EndeavourOS démarré dans l'environnement de bureau XFCE

Pour identifier quelles partitions contiennent la racine de votre système de fichiers et quelle est la partition de démarrage, ouvrez une fenêtre de terminal et utilisez la commande fdisk . Nous utilisons l'option -l (list partition). Vous devrez également utiliser sudo .

 sudo fdisk -l 

Utilisation de la commande sudo fdisk -l pour répertorier les partitions et les périphériques

Faites défiler la sortie jusqu'à ce que vous voyiez les entrées intitulées "Système EFI" et "Système de fichiers Linux".

La sortie de la commande sudo fdisk -l avec les partitions de démarrage et racine en surbrillance

Sur cet ordinateur, ils sont tous les deux sur le disque dur sda . Ils se trouvent dans les partitions un et deux, comme indiqué par les étiquettes de partition /dev/sda1 et /dev/sda2 .

Sur votre ordinateur, ils peuvent se trouver sur des disques durs et des partitions différents. Prenez soin de noter les partitions sur lesquelles ils se trouvent, nous devrons les utiliser dans les prochaines commandes.

Nous devons monter les systèmes de fichiers sur ces partitions en les attachant au système de fichiers en direct. La commande mount le fera pour nous. N'oubliez pas que vos étiquettes de partition sont susceptibles d'être différentes, alors assurez-vous d'utiliser celles des résultats de votre commande fdisk .

 montage sudo /dev/sda2 /mnt
 sudo mount /dev/sda1 /mnt/boot/efi 

Montage des systèmes de fichiers racine du système de démarrage et de fichiers

Pour que la racine effective du système de fichiers démarre à la racine de votre système de fichiers installé, nous utiliserons chroot pour définir la racine comme étant le point de montage « /mnt ». C'est là que la racine de votre système de fichiers installé est greffée sur le système de fichiers en direct.

 sudo chroot /mnt 

Utilisation de la commande chroot pour créer une nouvelle racine effective

Notez que l'invite de commande change pour indiquer que vous êtes maintenant effectivement connecté en tant que root et que vous vous trouvez dans le répertoire racine "/" du système de fichiers de votre ordinateur.

Nous pouvons facilement tester cela en accédant au répertoire "/home" et en vérifiant quels répertoires existent à l'intérieur.

 cd /maison
 ls 

Utilisation de ls pour répertorier les comptes d'utilisateurs

Vous devriez voir un répertoire pour chaque utilisateur configuré sur votre ordinateur, y compris un pour votre propre compte d'utilisateur. Cet ordinateur a un seul utilisateur, appelé "dave". Si nous avions utilisé cd /home avant d'utiliser la commande chroot , nous aurions entré le répertoire "/home" du système de fichiers en direct.

Juste pour être clair, vous accédez maintenant à votre système de fichiers réel en tant qu'utilisateur root , alors soyez prudent.

Pour résoudre le problème avec GRUB 2:2.06.r322, il nous suffisait d'exécuter la commande grub-install .

 grub-installer 

Exécution de la commande grub-install pour corriger l'erreur GRUB boot to BIOS

Exécuter grub-install aveuglément comme ceci n'est généralement pas recommandé. Dans ce cas, c'est ce qu'il fallait.

Réparer ou remplacer

Si vous essayez de résoudre un problème différent, vous devrez consulter les forums de votre distribution pour trouver la solution appropriée à votre problème. S'il s'agit d'une plainte répandue, vous trouverez bientôt une solution.

À tout le moins, maintenant que vous pouvez accéder à votre système de fichiers, vous pouvez copier vos données sur un support amovible. Si vous décidez de faire une réinstallation complète, vous ne perdrez pas de données.

CONNEXION: Comment copier des fichiers à l'aide de la commande "install" sous Linux