logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 03-01-2017 22:28:45

moi4567
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3
Inscription : 22-06-2015

Grub, GPT/EFI Win10/Debian

Bonjour à tous smile

J'ai fait l'aquisition de deux nouveaux SSD (128 et 480 Go).
J'ai migré mon Debian grace à CloneZilla en clonant les partitions de mon anciens dique vers les nouveaux. Pour info mon debian est réparti sur les deux diques de la manière suivante:

/ : SSD128
/var : SSD480
/home : SSD480

Bien que je ne pense pas que ça ai grand importance, je le signale au cas où smile
J'ai également installé un Windows 10 sur le dique 128 Go.

Les diques sont en GPT/EFI.
Mon debian boot correctement via grub, cependant, Windows 10 installé sur le disque n'apparait pas.

Voici comment ce présentent mes disques:

mini_157384disque.png

J'ai essayé de réinstaller grub:


update-grub
grub-install sdb



J'ai également essayer de rajouter à la main l'entré pour Windows dans le fichier /etc/grub.d/40_custom:

menuentry "Windows 10" {
set root='(hd1,gpt4)'
chainloader +1
}



Lorsque je boot avec cette entré le message suivant s'affiche:

screenshot005.jpg


J'ai également remarqué dans mon BIOS une nouvelle entré de boot : "EUFI Windows Manager"
Cette dernière boot Windows sans aucuns soucis.

J'aimerais quant même avoir le choix du système sur mon Grub de façon plus lisible et plus pratique que sur mon BIOS.

Si vous avez vu ce que j'ai raté, je suis preneur smile

Dernière modification par moi4567 (03-01-2017 22:30:24)

Hors ligne

#2 04-01-2017 03:48:46

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : Grub, GPT/EFI Win10/Debian

@moi4567 : pour les images sans pub sur le forum, utilise plutôt une plateforme libre, par exemple celle-ci :
http://pix.toile-libre.org/

... bug.gif

saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#3 04-01-2017 05:35:56

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian
Noyau : Dur
(G)UI : gui gui, je zuis un doiseau
Inscription : 07-07-2008
Site Web

Re : Grub, GPT/EFI Win10/Debian

Salut smile

Je pense que le problème vient du fait que tu aies deux partitions EFI, alors qu'il n'en faudrait qu'une pour ton système.

Ou alors, peut-être qu'il te manque le paquet os-prober.

Voici ce à quoi ressemble une entrée grub pour EFI :

menuentry 'Windows Boot Manager' --class windows --class os $menuentry_id_option 'osprober-efi-960A-3282' {
        insmod part_gpt
        insmod fat
        set root='hd0,gpt1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  960A-3282
        else
          search --no-floppy --fs-uuid --set=root 960A-3282
        fi
        chainloader /efi/Microsoft/Boot/bootmgfw.efi
}



Peut-être qu'en remplaçant le hd0,gpt1 par ce qu'il faut, tu pourrais booter sur le win ton 2e disque ?

Ce lien est intéressant aussi pour la création de l'entrée à la main :
https://wiki.archlinux.org/index.php/GR … menu_entry


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#4 04-01-2017 10:35:56

raleur
Membre
Inscription : 03-10-2014

Re : Grub, GPT/EFI Win10/Debian

captnfab a écrit :

Je pense que le problème vient du fait que tu aies deux partitions EFI


Où ça ? Je n'en vois qu'une. Si tu fais allusion à /dev/sdb6, ce n'est pas une partition système EFI mais une partition d'amorçage BIOS (BIOS boot).

Question : est-ce GRUB BIOS ou GRUB EFI qui est installé et se lance ? Le message "BOOTMGR is missing" affiché par l'entrée créée manuellement me fait soupçonner que c'est GRUB BIOS (qui a chargé et exécuté le secteur d'amorce BIOS de la partition, et c'est ce dernier qui a affiché ce message), car il me semble GRUB EFI aurait réagi différemment (erreur car la commande "chainloader" attend un exécutable EFI et non un secteur d'amorce BIOS, comme illustré dans l'exemple de captnfab).
Indices :
- lors de l'affichage du menu de GRUB, lancer l'invite de commande avec "c" et vérifier la valeur de la variable "target" affichée par la commande "set" (taper "normal" pour revenir au menu).
- répertoires présents dans /boot/grub (i386-pc = BIOS, x86_64-efi = EFI)
- paquets grub-* installés (grub-pc* = BIOS, grub-efi* = EFI)
- présence de /sys/firmware/efi
- résultat de la commande "efibootmgr"
- message affiché par grub-install mentionnant la "target" i386-pc ou x86_64-efi, erreur avec i386-pc si on ne spécifie pas de péripérique
- sortie de la commande os-prober (BIOS -> ne détecte pas Windows ; EFI -> détecte Windows).

Comment GRUB a-t-il été réinstallé après le clonage ?

Dernière modification par raleur (04-01-2017 10:39:10)


Il vaut mieux montrer que raconter.

Hors ligne

#5 04-01-2017 20:39:42

deuchdeb
Moderato ma non troppo
Distrib. : Debian11-KDE-Plasma, LinuxMintCinnamon, DFLinux11
Noyau : Noyau stable
(G)UI : KDE Plasma 5.20
Inscription : 13-01-2010
Site Web

Re : Grub, GPT/EFI Win10/Debian

Ce ne serait pas plutôt:

grub-install /dev/sdb


Une fleur, c'est magique non? smile
Association Debian Facile

Hors ligne

#6 04-01-2017 23:19:00

moi4567
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3
Inscription : 22-06-2015

Re : Grub, GPT/EFI Win10/Debian

Bonjour à tous et merci pour vos réponses smile

smolski a écrit :

@moi4567 : pour les images sans pub sur le forum, utilise plutôt une plateforme libre, par exemple celle-ci :
http://pix.toile-libre.org/

... bug.gif



@smolski: Sorry, je n'ai pas vraiment fait attention, j'ai pris le premier gratuit qui m'est passé sous la main ^^'

captnfab a écrit :

Salut smile

Je pense que le problème vient du fait que tu aies deux partitions EFI, alors qu'il n'en faudrait qu'une pour ton système.

Ou alors, peut-être qu'il te manque le paquet os-prober.



@captnfab: os-prober est bien installé.

captnfab a écrit :


Voici ce à quoi ressemble une entrée grub pour EFI :

menuentry 'Windows Boot Manager' --class windows --class os $menuentry_id_option 'osprober-efi-960A-3282' {
        insmod part_gpt
        insmod fat
        set root='hd0,gpt1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  960A-3282
        else
          search --no-floppy --fs-uuid --set=root 960A-3282
        fi
        chainloader /efi/Microsoft/Boot/bootmgfw.efi
}



Peut-être qu'en remplaçant le hd0,gpt1 par ce qu'il faut, tu pourrais booter sur le win ton 2e disque ?

Ce lien est intéressant aussi pour la création de l'entrée à la main :
https://wiki.archlinux.org/index.php/GR … menu_entry



@captnfab: J'essaie d'adapter cette config. Je n'ai pas encore réussi donc je reviendrais si ça fonctionne ou si je me retrouve bloqué pour cette solution.

raleur a écrit :

captnfab a écrit :

Je pense que le problème vient du fait que tu aies deux partitions EFI


Où ça ? Je n'en vois qu'une. Si tu fais allusion à /dev/sdb6, ce n'est pas une partition système EFI mais une partition d'amorçage BIOS (BIOS boot).

Question : est-ce GRUB BIOS ou GRUB EFI qui est installé et se lance ? Le message "BOOTMGR is missing" affiché par l'entrée créée manuellement me fait soupçonner que c'est GRUB BIOS (qui a chargé et exécuté le secteur d'amorce BIOS de la partition, et c'est ce dernier qui a affiché ce message), car il me semble GRUB EFI aurait réagi différemment (erreur car la commande "chainloader" attend un exécutable EFI et non un secteur d'amorce BIOS, comme illustré dans l'exemple de captnfab).
Indices :
- lors de l'affichage du menu de GRUB, lancer l'invite de commande avec "c" et vérifier la valeur de la variable "target" affichée par la commande "set" (taper "normal" pour revenir au menu).
- répertoires présents dans /boot/grub (i386-pc = BIOS, x86_64-efi = EFI)
- paquets grub-* installés (grub-pc* = BIOS, grub-efi* = EFI)
- présence de /sys/firmware/efi
- résultat de la commande "efibootmgr"
- message affiché par grub-install mentionnant la "target" i386-pc ou x86_64-efi, erreur avec i386-pc si on ne spécifie pas de péripérique
- sortie de la commande os-prober (BIOS -> ne détecte pas Windows ; EFI -> détecte Windows).

Comment GRUB a-t-il été réinstallé après le clonage ?



@raleur: La variable target semble ne pas exister dans mon grub, ou du moins, ne s'affiche pas lorsque je lance un "set".
- Le repertoire /boot/grub contient i386-pc.
- Comme paquet j'ai grub-pc ET grub-efi d'installés
- /sys/firmeware/efi non présent
- la commande "efibootmgr" n'est pas connu (pourtant le paquet est installé)
- grub-install /dev/sdb mentionne i386-pc
- os-prober ne donne rien, pas de message d'erreur, pas d'output, rien.

Mon grub semble donc bien être GRUB BIOS comme tu le soupçonne... hmm
Suite à cette constatation j'ai essayé de désinstaller GRUB puis de réinstaller GRUB EFI grace à la commande suivante mais sans succès (certainement dû au fait que efibootmgr "n'est pas" une commande):

sudo grub-install --target=x86_64-efi /dev/sdb



@deuchdeb: Je me suis un peux précipiter pour écrire mon post, mais c'est bien avec la syntaxe que tu as mis que j'ai exécuter la commande (/dev/sdb au lieux de sdb).

Hors ligne

#7 05-01-2017 00:04:07

raleur
Membre
Inscription : 03-10-2014

Re : Grub, GPT/EFI Win10/Debian

moi4567 a écrit :

La variable target semble ne pas exister dans mon grub, ou du moins, ne s'affiche pas lorsque je lance un "set".


Pardon, c'est la variable grub_platform, qui doit contenir i386-pc (BIOS, paquet grub-pc), x86_64-efi (EFI 64 bits, paquet grub-efi-amd64) ou plus rarement i386-efi (EFI 32 bits, paquet grub-efi-ia32).

moi4567 a écrit :

- Comme paquet j'ai grub-pc ET grub-efi d'installés


Ce n'est pas possible, car grub-efi dépend des paquets grub-efi-amd64 ou grub-efi-ia32 qui sont en conflit avec grub-pc. Par contre plusieurs paquets grub-*-bin peuvent être installés simultanément.

moi4567 a écrit :

la commande "efibootmgr" n'est pas connu (pourtant le paquet est installé)


Si le paquet est installé (c'est une dépendance de grub-efi-*-bin), alors la comande est forcément connue, en root. Par contre si le système a été amorcé en mode BIOS, les services EFI ne sont pas disponibles et la commande échoue (mais ce n'est pas la même erreur que si la commande n'est pas trouvée).

moi4567 a écrit :

/sys/firmeware/efi non présent
grub-install /dev/sdb mentionne i386-pc


Donc le système semble amorcé en mode BIOS.
Ce qui m'étonne, c'est qu'il y a des traces d'installation en mode EFI (la partition système EFI /dev/sdb2 montée sur /boot/efi, installation présente ou passée de paquet grub-efi*) mais pas de répertoire /boot/grub/*-efi qui résulterait de l'installation passée du chargeur GRUB en mode EFI. Y a-t-il un répertoire /boot/efi/EFI/debian, avec un fichier grubx64.efi ?

moi4567 a écrit :

j'ai essayé de désinstaller GRUB puis de réinstaller GRUB EFI grace à la commande suivante mais sans succès


C'est-à-dire, "sans succès" ? Que s'est-il passé ? Cettte commande invoque efibootmgr qui sort en erreur si le système est amorcé en mode BIOS.
Mais cela devrait au moins avoir créé /boot/grub/x86_64-efi/ et /boot/efi/EFI/debian/grubx64.efi.

Si la machine démarre en mode BIOS alors qu'un chargeur EFI est présent et reconnu (au moins celui de Windows), alors je soupçonne que le firmware EFI est configuré pour booter en mode BIOS/legacy/CSM par défaut. Sinon il booterait en mode EFI. Cette modification a peut-être été nécessaire pour démarrer Clonezilla ?


Il vaut mieux montrer que raconter.

Hors ligne

#8 06-01-2017 01:20:47

moi4567
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3
Inscription : 22-06-2015

Re : Grub, GPT/EFI Win10/Debian

Ayant fait quelques testes sur mon grub (essaie de l'installation en EFI) il se peux qu'il y ai des différences niveau paquet. Cependant les problèmes restent les même et pas de changement dans les symptômes.

raleur a écrit :


Ce n'est pas possible, car grub-efi dépend des paquets grub-efi-amd64 ou grub-efi-ia32 qui sont en conflit avec grub-pc. Par contre plusieurs paquets grub-*-bin peuvent être installés simultanément.


Autant pour moi, je devais avoir les yeux qui se croisaient à ce moment old_geek.gif
Voici l'état de mes paquets grub maintenant.

dpkg -l | grep grub


ii  grub-common                              2.02-pve5                            amd64        GRand Unified Bootloader (common files)
ii  grub-efi                                 2.02-pve5                            amd64        GRand Unified Bootloader, version 2 (dummy package)
ii  grub-efi-amd64                           2.02-pve5                            amd64        GRand Unified Bootloader, version 2 (EFI-AMD64 version)
ii  grub-efi-amd64-bin                       2.02-pve5                            amd64        GRand Unified Bootloader, version 2 (EFI-AMD64 binaries)
ii  grub2-common                             2.02-pve5                            amd64        GRand Unified Bootloader (common files for version 2)


raleur a écrit :


Si le paquet est installé (c'est une dépendance de grub-efi-*-bin), alors la comande est forcément connue, en root. Par contre si le système a été amorcé en mode BIOS, les services EFI ne sont pas disponibles et la commande échoue (mais ce n'est pas la même erreur que si la commande n'est pas trouvée).


Dans ce cas c'est asse... bizarre puisque j'ai bien le paquet grub-efi-amd64-bin. Même si je ne démarre pas en EFI l'erreur que j'obtiens devrait être différente:

efibootmgr


bash: efibootmgr : commande introuvable


raleur a écrit :


moi4567 a écrit :

/sys/firmeware/efi non présent
grub-install /dev/sdb mentionne i386-pc


Donc le système semble amorcé en mode BIOS.
Ce qui m'étonne, c'est qu'il y a des traces d'installation en mode EFI (la partition système EFI /dev/sdb2 montée sur /boot/efi, installation présente ou passée de paquet grub-efi*) mais pas de répertoire /boot/grub/*-efi qui résulterait de l'installation passée du chargeur GRUB en mode EFI. Y a-t-il un répertoire /boot/efi/EFI/debian, avec un fichier grubx64.efi ?


A ce niveau là il y a eu quelques changement dû à ma tentative de réinstallation de mon grub:
Présence d'un fichier x86_64-efi dans mon /boot/grub:

ls /boot/grub


fonts  grub.cfg  grubenv  i386-pc  locale  x86_64-efi


/usr/lib/grub/i386-pc/modinfo.sh n'existe plus, et x86_64-efi est désormais présent:

ls /usr/lib/grub/


grub-mkconfig_lib  x86_64-efi


Pour répondre à ta question, c'est non , pas de grubx64.efi:

ls /boot/efi/EFI
 


Boot  GRUB  Microsoft  tools


raleur a écrit :


C'est-à-dire, "sans succès" ? Que s'est-il passé ? Cettte commande invoque efibootmgr qui sort en erreur si le système est amorcé en mode BIOS.
Mais cela devrait au moins avoir créé /boot/grub/x86_64-efi/ et /boot/efi/EFI/debian/grubx64.efi.


A ce niveau là également il y a eu modification:
J'avoue ne plus me souvenir de l'output précédent (je ne l'ai pas noté... Grave erreur ops.gif). Désormais voici le résultat:

grub-install /dev/sdb --target x86_64-efi


Installation pour la plate-forme x86_64-efi.
grub-install : erreur : efibootmgr : non disponible.


raleur a écrit :


Si la machine démarre en mode BIOS alors qu'un chargeur EFI est présent et reconnu (au moins celui de Windows), alors je soupçonne que le firmware EFI est configuré pour booter en mode BIOS/legacy/CSM par défaut. Sinon il booterait en mode EFI. Cette modification a peut-être été nécessaire pour démarrer Clonezilla ?


Cette modification... Je ne suis pas sûr d'avoir bien compris de laquelle tu parles scratchhead.gif
J'ai boot mon USB CloneZilla en BIOs (pas EFI dispo), une fois le clonage terminé j'ai réinstallé grub avec un "grub-install /dev/sdb" après être passé en chroot sur le système debian.

En solution d'ultime recours j'ai toujours rEFInd sous la main mains bon, je préfère largement comprendre et corriger peace_flag.gif
J'espère être le plus clair et précis possible, n’hésitez pas si vous avez besoin de plus de détails smile

Dernière modification par moi4567 (06-01-2017 01:35:10)

Hors ligne

#9 06-01-2017 10:08:38

raleur
Membre
Inscription : 03-10-2014

Re : Grub, GPT/EFI Win10/Debian

Je ne sais pas si ça a une importance, mais les paquets grub-* en version 2.02-pve5 ne proviennent pas des dépôts Debian. D'après une recherche web, ils pourraient venir d'un dépôt Proxmox.

Si grub-install a créé le répertoire /boot/grub/x86_64-efi, alors il devrait aussi avoir créé le répertoire /boot/efi/EFI/debian, à moins que cette version de paquet grub-efi* nomme le répertoire différemment. Explorer les répertoires /boot/efi/EFI/GRUB (qui n'est pas créé par les paquets grub-efi* de Debian), /boot/efi/EFI/Boot (qui ne contient normalement que le chargeur EFI par défaut bootx64.efi) et /boot/efi/EFI/tools.

Note : grub-install --target x86_64-efi n'a pas besoin de nom de périphérique puisqu'il n'installe pas de secteur d'amorce (le boot EFI n'utilise pas de secteur d'amorce), et par défaut il installe implicitement l'image de GRUB dans la partition système EFI montée sur /boot/efi. En mode EFI on n'a pas non plus besoin de spécifier --target, grub-install doit la déterminer automatiquement.

Concernant efibootmgr, une petite exploration s'impose.

apt-cache policy efibootmgr
dpkg -L efibootmgr
ls -l /bin/efibootmgr



Mais de toute façon il ne fonctionne qu'en mode EFI. On peut démarrer en mode EFI avec l'installateur Debian (l'écran d'accueil affiche "GRUB EFI"), sélectionner "rescue" et lancer un shell sur la racine du système installé. efibootmgr devrait alors fonctionner, s'il est présent. Il faudra ensuite monter /boot/efi (avec mount -a) et exécuter grub-install à nouveau.

moi4567 a écrit :

J'ai boot mon USB CloneZilla en BIOs (pas EFI dispo), une fois le clonage terminé j'ai réinstallé grub avec un "grub-install /dev/sdb" après être passé en chroot sur le système debian.


Tu as booté CloneZilla en modifiant les paramètres d'amorçage du firmware EFI ou en passant par le menu de boot du firmware au démarrage pour sélectionner l'USB ?
A partir de quel système as-tu fait le chroot de Debian ? CloneZilla, autre ?
Ce qui m'étonne, c'est que le système démarrait auparavant en mode EFI alors que grub-efi n'était pas installé.


Il vaut mieux montrer que raconter.

Hors ligne

#10 09-01-2017 00:17:22

moi4567
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3
Inscription : 22-06-2015

Re : Grub, GPT/EFI Win10/Debian

raleur a écrit :

Je ne sais pas si ça a une importance, mais les paquets grub-* en version 2.02-pve5 ne proviennent pas des dépôts Debian. D'après une recherche web, ils pourraient venir d'un dépôt Proxmox.


C'est effectivement ça, mon debian est un proxmox (enfin était).

raleur a écrit :


Note : grub-install --target x86_64-efi n'a pas besoin de nom de périphérique puisqu'il n'installe pas de secteur d'amorce (le boot EFI n'utilise pas de secteur d'amorce), et par défaut il installe implicitement l'image de GRUB dans la partition système EFI montée sur /boot/efi. En mode EFI on n'a pas non plus besoin de spécifier --target, grub-install doit la déterminer automatiquement.


Je n'y avait pas pensé mais c'est logique. Merci, toujours bon à savoir smile

raleur a écrit :


Concernant efibootmgr, une petite exploration s'impose.

apt-cache policy efibootmgr
dpkg -L efibootmgr
ls -l /bin/efibootmgr


apt-cache policy efibootmgr


efibootmgr:
  Installé : 0.11.0-3
  Candidat : 0.11.0-3
 Table de version :
 *** 0.11.0-3 0
        500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages
        100 /var/lib/dpkg/status


dpkg -L efibootmgr


/.
/bin
/bin/efibootmgr
/usr
/usr/share
/usr/share/doc
/usr/share/doc/efibootmgr
/usr/share/doc/efibootmgr/README.gz
/usr/share/doc/efibootmgr/changelog.Debian.gz
/usr/share/doc/efibootmgr/TODO
/usr/share/doc/efibootmgr/copyright
/usr/share/doc/efibootmgr/changelog.gz
/usr/share/doc/efibootmgr/README.Debian
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/efibootmgr.8.gz


ls -l /bin/efibootmgr


ls: impossible d'accéder à /bin/efibootmgr: Aucun fichier ou dossier de ce type


raleur a écrit :


Mais de toute façon il ne fonctionne qu'en mode EFI. On peut démarrer en mode EFI avec l'installateur Debian (l'écran d'accueil affiche "GRUB EFI"), sélectionner "rescue" et lancer un shell sur la racine du système installé. efibootmgr devrait alors fonctionner, s'il est présent. Il faudra ensuite monter /boot/efi (avec mount -a) et exécuter grub-install à nouveau.


J'ai essayé, j'ai fait un live USB de debian. Boot en EFI, rescue mode, racine sdb5. Mais efibootmgr ne fonctionne toujours pas (binaire absent).

raleur a écrit :


moi4567 a écrit :

J'ai boot mon USB CloneZilla en BIOs (pas EFI dispo), une fois le clonage terminé j'ai réinstallé grub avec un "grub-install /dev/sdb" après être passé en chroot sur le système debian.


Tu as booté CloneZilla en modifiant les paramètres d'amorçage du firmware EFI ou en passant par le menu de boot du firmware au démarrage pour sélectionner l'USB ?
A partir de quel système as-tu fait le chroot de Debian ? CloneZilla, autre ?
Ce qui m'étonne, c'est que le système démarrait auparavant en mode EFI alors que grub-efi n'était pas installé.


- J'ai booté CloneZilla grace au menu du firmware.
- J'ai fait le chroot à partir d'un live CD d'ubuntu TLS 16

PS: Désolé pour le temps de réponse.

Hors ligne

Pied de page des forums