Demarrage difficile : error : unknown filesystem entrering rescue mode

Bonjour à tous.

De nouveau je viens demander votre aide. Alors j’ai fais le tour des sujets du forum sur cette erreur mais entre les “utilise superGrub” et les “NON surtout pas” ou encore les " c’est simple : insmod blabla normal", je suis perdu :confounded:

Je me permet donc de vous demander votre avis pour faire les choses “dans les règles”.

Pour remettre le contexte. J’ai démonté le processeur de ma bécane sous Nux pour faire un test sur un autre P.C. Je les donc remonté, rebrancher les HDD (un SSD avec /boot, / et mon swap et un HDD standard pour ma /home) que j’avais débranché et PAF !!! au démarrage voici l’erreur “unknown filesystem entrering rescue mode” qui apparaît. Je précise que je démarre bien sur le bon disque dur (le SSD). Je rajoute aussi que j’utilise LVM et pour faire encore plus simple le tout est chiffré.

Je pense avoir faire le tour de ce qu’il semble important à savoir. Au besoin, n’hésitez pas à me demander :wink:

En vous remerciant par avance et dans l’attente de vos conseils.

gudbes

Quel rescue mode ? Celui de GRUB, de l’initramfs, de l’init/systemd ?

Bonjour @PascalHambourg

Et merci encore de m’aider une nouvelle fois.

Pour répondre à ta question, le rescue qui m’est proposé a la fin de l’erreur est le grub rescue.

Merci encore.

Gudbes

Qu’affiche la commande “ls” ?

La commande ls me retourne (de tête mais j’ai bonne mémoire :slight_smile:️) ceci :

(hd0), (hd0, gpt1), (hd0, gpt2), (hd0, gpt3),(hd1), (hd1, gpt1)

Ou seulement pour hd0,2 on me retourne que le type est ext.

J’espère avoir répondu à ta question.

hd0 est donc a priori le SSD qui contient le système, et hd1 le disque qui contient /home.
Amorçage BIOS ou EFI ?
Valeur de la variable “prefix” affichée par la commande “set” ?
Exploration du contenu de (hd0,2) avec ls
(hd0,2)/
(hd0,2)/grub

Alors je te dis tout ça de tête car je n’ai pas mon nux sous les yeux

  1. Pour le bios ça doit être efi car il y a un dossier efi dans (hd0, gpt2) /

  2. J’ai essayé de faire un echo $préfixe mais la commande écho n’est pas reconnue.

  3. le / me montre un dossier grub et efi et je crois d’autres fichiers comme intramfs et le /grub me retourne d’autres fichiers donc malheureusement je ne me souviens plus le nom.
    Au besoin demain je pourrai te donner ça plus précisément.

Merci de ton aide.

Gudbes

Le jeu de commandes disponibles dans le shell grub rescue est plus réduit que dans le shell grub complet. La commande “set” affiche toutes les variables, y compris l’architecture et le type de processeur (efi/pc, 32/64 bits).

Le contenu de la partition (hd0,gpt2) correspond bien à /boot. La sortie de “set” doit confirmer si la variable prefix pointe bien vers (hd0,gpt2)/grub. Si tout est bon, je ne comprends pas d’où vient le message d’erreur. Les deux commandes pour lancer le mode normal de GRUB sont :

insmod normal
normal

Je pense que le préfixe ne doit pas être bon (c’est la seule chose que j’ai pas vérifié bien que je l’ai redéfini) l’erreur que j’ai pu voir quand j’ai essayé le insmod normal c’est qu’il m’indiquait qu’il ne trouvait pas le fichier normal. Je vais quand meme regarder ça de nouveau demain.

Merci @PascalHambourg

Vérifie les valeurs de prefix, root, grub_cpu et grub_platform.
Le répertoire $prefix/grub doit contenir un sous-répertoire nommé ${grub_cpu}-${grub_platform}, par exemple x86_64-efi si cpu=x86_64 et platform=efi.

Voilà toutes les infos que tu m’a demandé. Par contre, je ne vois pas de variable pour cpu avec la commande set.

Je viens de lancer la commande “insmod normal” et voilà le résultat (en ayant modifié prefix et root)

La présence du répertoire /grub/x86_64-efi indique que c’est GRUB EFI amd64 qui est installé dans cette partition /boot. Par contre, même si la sortie de la commande “set” en mode rescue ne donne pas les informations espérées (ou alors c’est une vieille version de GRUB), d’après le chemin dans lequel GRUB recherche le module “normal”, on peut deviner que c’est une core image de GRUB BIOS (i386-pc) qui est lancée. Forcément, les deux variantes de ne correspondent pas, la core image d’une variante ne peut pas utiliser les modules d’une autre variante.

Il y a donc un (vieux ?) GRUB BIOS installé sur un des deux disques, et c’est lui qui est lancé au démarrage au lieu du GRUB EFI qui doit être dans la partition système EFI qui doit être (hd0,gpt1) ou (hd0,gpt3).

Explications possibles :

  • le firmware UEFI a perdu l’entrée d’amorçage EFI et se rabat sur l’amorçage BIOS/legacy. J’ai déjà vu un firmware supprimer les entrées EFI associées à un disque quand celui-ci n’est plus présent. Dans la liste des entrées d’amorçage, y a-t-il une entrée “debian” ?
  • le firmware UEFI est configuré pour démarrer uniquement en mode BIOS/legacy. Il faut le configurer pour démarrer en mode EFI par défaut.
  • la core image de GRUB installée dans la partition système EFI est endommagée, mais si tu n’a rien touché il n’y a pas de raison.

Si c’est l’entrée EFI “debian” qui a disparu et si le firmware UEFI permet de sélectionner le chemin du fichier EFI, tu peux démarrer GRUB EFI qui se trouve dans /EFI/debian/grubx64.efi sur la partition système EFI (partition n° 1 ou 3 a priori). Une fois le système démarré, tu pourras recréer l’entrée d’amorçage.

Sinon, il va falloir démarrer un autre système (système live, installateur Debian) pour réparer.

Bonjour @PascalHambourg,

Je viens de regarder et je suis bien en mode UEFI.

De plus je me souviens que j’avais une entrée debian mais qui aujourd’hui n’apparaît plus.

Sinon je ne peux pas voir le contenu de mes gpt1 et gpt3 (filesystem is unknown) du fait, je pense, que ces partition doivent être chiffrées.
Pour moi la partition gpt2 doit être la bonne car c’est la seule qui n’est pas chiffrée et donc celle défini pour /boot.

Bref je me perds un peu avec tout ça :slight_smile:

Peux tu m’indiquer les grandes lignes pour remettre en place ce fameux grub avec le DVD de debian car je ne sais malheureusement pas le faire.

Merci encore de ta patience.

Gudbes

Démarre avec n’importe quoi pourvu que tu aies un shell root.
Monte la partition système EFI en FAT (je suppose que c’est sda1, sinon sda3).
mount -t vfat /dev/sda1 /mnt
Copie l’image de GRUB EFI dans le chemin de périphérique amovible.
cp /mnt/EFI/debian/grubx64.efi /mnt/Boot/bootx64.efi
Correction :
cp /mnt/EFI/debian/grubx64.efi /mnt/EFI/Boot/bootx64.efi
(ou via gestionnaire de fichiers graphique)
Démonte la partition.
umount /mnt
Redémarre.

La partition système EFI n’est pas chiffrée, mais elle est formatée en FAT et à ce stade GRUB ne sait lire que le format de la partition /boot, c’est-à-dire ext2/3/4.

Alors je viens te donner les nouvelles des commandes que tu m’as données. Voici l’aperçu :

Mais malgré cela l’erreur est toujours là :@

Gudbes

Si l’erreur se produit toujours, cela veut dire que c’est toujours GRUB BIOS qui est lancé et non GRUB EFI.
Cela voudrait dire que le firmware UEFI ne tient pas compte du chemin de périphérique amovible sur le disque, ce qui est inhabituel.

D’après la photo tu as utilisé l’option “démarrer un shell” de l’installateur Debian. L’écran d’accueil de l’installateur indiquait-il bien qu’il était en mode EFI ?

Dans la liste de démarrage du firmware, quels sont les choix et qu’as-tu activé et mis en priorité ?
Au démarrage du firmware peux-tu faire afficher une liste d’amorçage en appuyant sur une touche particulière (comme F8, F9, F10 ou F12, généralement affichée fugitivement) et sélectionner une entrée manuellement ?

Voilà quelques captures qui devraient répondre à tes questions.

On peux voir que le mode UEFI est bien sélectionné.

Le premier device de boot est bien mon ssd

Dans le lanceur de boot, p4 représente mon lecteur DVD, pas mon ssd et p4 mon hdd ou est stocké ma home pas de choix “debian” malheureusement.

Encore merci de ton aide.

Gudbes

Sur la 1e image, le secure boot est marqué activé. Je ne sais pas si c’est normal. Normalement l’amorçage BIOS/CSM devrait être désactivé si le secure boot est actif (c’est incompatible par nature puisque l’amorçage BIOS n’est pas sécurisé).

Sur la 3e image, j’ai l’impression que les entrées P1 P3 et P4 correspondent à un amorçage en mode BIOS. Seul le lecteur DVD serait considéré comme amorçable en mode EFI. Il faudrait qu’il y ait une ligne
"UEFI: KINGSTON (…)"

L’installateur Debian est dans le lecteur DVD ?

Edit : Je me suis trompé, bootx64.efi doit être dans /mnt/EFI/Boot/ et non dans /mnt/Boot.

Note : Même si cette manipulation permet de démarrer GRUB EFI, le choix “debian” ne reviendra pas automatiquement. Il faudra le recréer, ce qui n’est pas difficile quand le système est démarré en mode EFI.

1 J'aime

:yum: Et voila une debian de dépannée.

Voila ce que j’ai fais :

  • Comme tu me l’a indiqué j’ai modifié l’emplacement du fichier bootx64.efi en le déplaçant vers /mnt/EFI/Boot. Ce qui à eu pour conséquence de faire apparait dans le menu de boot un "UEFI : Kingston SSD …"
    Malgré cette nouvelle entrée sélectionnée, toujours la même erreur.

  • Je me suis donc selon ton conseil interrogé sur le fameux SECURE BOOT sur lequel, je me suis tenté à décharger toutes les “clés”.
    En choisissant de nouveau la ligne “UEFI : Kinsgton …” voila le fameux grub qui est de retour .

Je te confirme donc que mon système est de nouveau accessible :slight_smile:

Je résume ce qui s’est passé pour faire une solution complète :

  • Démarrage sur le mode rescue du DVD Debian
  • Lancement d’un shell en root
  • Montage de la partition contenant /boot : mount -t vfat /dev/sda1 /mnt
  • J’ai du créer le dossier Boot : mkdir /mnt/EFI/Boot
  • Copier le fichier .efi au bon emplacement : cp /mnt/EFI/debian/grubx64.efi /mnt/EFI/Boot/bootx64.efi
  • Démontage de /mnt : umount /mnt
  • Redémarrage : reboot
  • Une fois redémarré, pensez à désactiver le “SECURE BOOT” du BIOS.

Je te remercie de nouveau de m’avoir sorti de cette galère et je me prouve encore une fois que tout peut être réparé sous un système Linux et non pas “il faut formater” comme chez M$.

Encore un grand merci pour tes précieux conseils, ta patience pour un petit débutant dans ce “Linux’s World” et je te souhaite bonne continuation en attendant que je revienne avec mes questions farfelus.

Merci merci merci !!!

gudbes

Maintenant que le système a démarré en mode EFI, si tu veux faire revenir l’entrée “debian” dans le menu de démarrage UEFI, tu peux exécuter la commande grub-install (sans argument).

Edit :

Petite modif de la commande pour qu’elle installe proprement une copie dans le chemin de support amovible : grub-install --force-extra-removable

Autre possibilité : exécuter dpkg-reconfigure grub-efi-amd64 qui devrait demander s’il faut installer une copie dans le chemin de support amovible (ou formulation similaire). Répondre oui. Avantage : la copie sera réinstallée en cas de mise à jour du paquet grub-efi-amd64, évitant de devoir le faire manuellement.