Problème lors du démarrage en dual boot

Bonjour,

je suis actuellement sur un Mac avec Debian 11 en dual boot.
Lors je démarre le pc de manière classique (en appuyant sur le bouton de démarrage seulement), Debian se lance par défaut et tout va bien.

Mais si je le lance en appuyant sur option(alt), le menu des boots s’affiche. Les deux boots s’affichent: Macintosh et EFI. Je choisis EFI pour Linux et il y a une erreur (no such partition).

Pouvez-vous m’expliquer pourquoi selon le démarrage je n’obtiens pas le même résultat ? Et comment corriger cela ?

Qu’est-ce qui affiche l’erreur ? GRUB ou autre chose ?

Bonjour moi je fait du dual boot avec windows et debian regardé coté bios les boots par défaut en uefi, mais il y a une chose qui m’étonne normalement le grub devrait 'afficher les deux debian et mac non ?

Est ce que tu as fait des mise à jour récemment sur ton debian également ?? à base de apt-upgrade

Bonjour,

Donc Mac OS et Debian?

Pourquoi passer par le menu EFi pour lancer l’autre système? Normallement la séquence de lancement est intégrée à ton GRUB?

Si tu es en EFI, alors dans ton menu grub tu dois avoir une option du menu « System Options » et c’est celle-ci que tu dois utiliser.

Bah non, il y a: Macintosh HD et EFI
Quand je choisis Macintosh HD, ça lance macOS.
Quand je choisis EFI, j’ai une erreur et je suis sur grub rescue.

error: no such device: d3d1bf16-30dd-4927-87b4-0a73bb0ad2f8
error: unknown filesystem.

Enfin une information intéressante. « grub rescue> » et pas seulement « grub » ? Etonnant avec Debian 11 qui installe la version signée de GRUB pour l’amorçage EFI, qui passe directement en mode normal et pas en mode rescue.
A l’invite de GRUB, qu’affichent les commandes suivantes ?

set
ls
ls /

Pour comparer tu peux faire la même chose depuis le GRUB qui se lance automatiquement, après avoir appuyé sur « c » pour lancer l’invite de commande. Je soupçonne que ce sont deux GRUB différents, l’un appartenant à une ancienne installation qui n’existe plus.

Quand GRUB est en mode normal (non rescue), set affiche beaucoup de choses ; j’ai surtout besoin des valeurs de cmdpath, platform, prefix, root.

Sur grub:
set
cmdpath=(hd3,gpt1)/EFI/debian
root=hd2,gpt3
prefix=(hd2,gpt3)/boot/grub

ls
(proc) (hd0) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (hd1) (hd2) (hd2,gpt2) (hd2,gpt1) (hd3) (hd3,gpt2) (hd3,gpt1) (cd0) (cd1) (cd2) (cd3) (cd4) (cd5)

ls /
lost+found/ boot/ home/ etc/ media/ vmlinuz.old var/ bin usr/ sbin lib lib32 lib64 libx32 dev/ proc/ root/ run/ sys/ tmp/ mnt/ srv/ opt/ initrd.img.old vmlinuz initrd.img

Sur grub rescue:
set
cmdpath=(hd3,gpt1)/EFI/BOOT
prefix=(hd3,gpt1)/boot/grub
root=hd3,gpt1

ls
(hd0) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (hd1) (hd2) (hd2,gpt2) (hd2,gpt1) (hd3) (hd3,gpt2) (hd3,gpt1) (cd0) (cd1) (cd2) (cd3) (cd4) (cd5)

ls /
error: unknown filesystem.

J’ai pas trouvé de valeur platform dans les deux cas

Le GRUB rescue doit être un reste d’une ancienne installation laissé dans le chemin de support amovible de la partition EFI.
Depuis Debian, tu peux exécuter

dpkg-reconfigure grub-efi-amd64

et répondre « oui » à la proposition d’installer le chargeur dans le chemin de support amovible.

1 J'aime

Merci. Je viens de redémarrer et de choisir EFI Boot et Debian est belle et bien en train de se lancer.

Si le sujet est résolu, il faut cliquer sur la coche dans le message contenant la solution. Si elle n’apparaît pas, elle est dans les trois petits points.

Précision : pour éviter que le problème se reproduise en cas de réinstallation de Debian, on peut choisir une installation « expert » (graphique ou texte) dans le sous-menu « advanced » du menu de démarrage de l’installateur afin que l’option pour installer GRUB dans le chemin de support amovible soit proposée. Sinon il faudra exécuter la commande que j’ai mentionnée après l’installation.

Le problème peut aussi être corrigé avec la commande suivante :

grub-install --force-extra-removable

mais en cas de mise à jour des paquets grub* la copie dans le chemin de support amovible ne sera pas mise à jour automatiquement, donc il faudra exécuter à nouveau la commande.