Grub ne trouve pas Window 10 EFI

Tags: #<Tag:0x00007fae48fa4828> #<Tag:0x00007fae48fa45a8> #<Tag:0x00007fae48fa4288>

Bonjour,
J’ai également un problème de reconnaissance de Windows 10.

Ordinateur ASUS récent avec win10 pré-installé sur le 1er disque dur (SSD).
Installation personnelle de Debian 9 sur un 2ème disque dur que j’ai partitionné.
Je n’ai pas touché au disque SSD (windows).

Lors de l’installation, Grub n’a pas pu s’installer sur le secteur d’amorçage du 1er disque (SSD, windows).
Je l’ai donc installé sur le second (le même où Debian est lui-même installé).
Mais Grub ne détecte pas windows et ne me propose donc que Debian pour seul OS.

Les 2 systèmes fonctionnent mais je dois passer par le bios pour choisir le disque sur lequel booter en fonction de l’OS que je veux lancer.

Après plusieurs recherches infructueuses, j’en appelle à vous.

Ci-dessous les quelques informations généralement requises sur les différents posts que j’ai visualisés

OS-PROBER
La commande “mouline” 3 secondes et reviens à l’invite “root” sans rien afficher !

root@debian:/#  os-prober
root@debian:/# 

os-prober : RÉINSTALLÉ

update-grub

Création du fichier de configuration GRUB…
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Image Linux trouvée : /boot/vmlinuz-4.9.0-8-amd64
Image mémoire initiale trouvée : /boot/initrd.img-4.9.0-8-amd64
fait
ls -l /boot/grub

total 1364
drwxr-xr-x 2 root root    4096 janv. 28 21:24 fonts
-r--r--r-- 1 root root    6295 janv. 31 01:12 grub.cfg
-rw-r--r-- 1 root root    1024 janv. 28 21:24 grubenv
drwxr-xr-x 2 root root   12288 janv. 28 21:26 i386-pc
drwxr-xr-x 2 root root    4096 janv. 28 21:26 locale
-rw-r--r-- 1 root root 1363161 janv. 28 21:23 unicode.pf2
fdisk -l

Disque /dev/sdb : 931,5 GiB, 1000204886016 octets, 1953525168 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : gpt
Identifiant de disque : 6C0F70F9-7897-4649-AD91-EE75545C36A0

Périphérique      Début        Fin  Secteurs Taille Type
/dev/sdb1          2048  222752767 222750720 106,2G Données de base Microsoft
/dev/sdb2     257816576  258867199   1050624   513M Système EFI
/dev/sdb3     222752768  257816575  35063808  16,7G Partition d'échange Linux
/dev/sdb4     560986112  897980415 336994304 160,7G Système de fichiers Linux
/dev/sdb5     897980416 1318086655 420106240 200,3G Système de fichiers Linux
/dev/sdb6    1318086656 1953523711 635437056   303G Système de fichiers Linux
/dev/sdb7     258867200  258869247      2048     1M Système de fichiers Linux
/dev/sdb8     258869248  560986111 302116864 144,1G Système de fichiers Linux

Les entrées de la table de partitions ne sont pas dans l'ordre du disque.


Disque /dev/sda : 238,5 GiB, 256060514304 octets, 500118192 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : 7B473CA1-BB7E-425B-BC60-594963B8E79B

Périphérique     Début       Fin  Secteurs Taille Type
/dev/sda1         2048    534527    532480   260M Système EFI
/dev/sda2       534528    567295     32768    16M Réservé Microsoft
/dev/sda3       567296 498290936 497723641 237,3G Données de base Microsoft
/dev/sda4    498292736 500117503   1824768   891M Environnement de récupération Windows

Si quelqu’un a une solution à me proposer…

Je te suggère d’ouvrir une nouvelle discussion plutôt que de raccrocher ton problème à une ancienne discussion dont tu n’es pas à l’origine.

Ou bien si un administrateur passant par la peut scinder la discussion.

Bonjour

Bonne idée, merci PascalHambourg

J’ai donc scindé la discussion en créant un nouveau sujet.

Il s’agit donc d’une installation en mode BIOS/legacy et non EFI.

Normal car ce SSD a une table de partition GPT et GRUB ne peut s’installer sur un disque GPT qui ne contient pas /boot/grub (qui est sur l’autre disque) que s’il a une partition “BIOS boot”.

Windows, quant à lui, a été installé en mode EFI donc GRUB BIOS (i386-pc) est incapable de le chaîner. Il faudrait installer GRUB EFI (x86_64-efi).
Options possibles :

  • Relancer l’installateur Debian en mode EFI pour réinstaller le système.

  • Monter de façon permanente (/etc/fstab) la partition EFI du disque Debian sur /boot/efi et installer le paquet grub-efi-amd64 qui va remplacer grub-pc. Il y aura une erreur normale, qu’il faudra corriger de deux façons possibles. Je détaillerai si tu choisis cette option.

@MicP
@PascalHambourg a tout à fait raison et sa méthode devrait fonctionner. Par contre, je te recommande vivement de ne pas installer GRUB sur le SSD de Windows, car c’est des ‘emmerdes’ garanties (je peux en parler j’ai testé :))
En effet, en cas de màj de W10, il y a de fortes chances que celui-ci réactualise son boot et adieu Grub. Tu n’auras plus que W10 au démarrage.
Le mieux c’est d’installer toujours Grub sur le disque Linux, et ainsi pas de soucis, on n’interfère jamais sur W10.

Avec l’amorçage EFI, c’est un peu différent. Les chargeurs d’amorçage ne s’écrasent plus les uns les autres, ils se contentent de modifier l’ordre de priorité. Mais normalement ils restent tous présents dans le menu de boot UEFI.

Si, même dans cette configuration il reste une interférence via l’ordre de boot UEFI.

@PascalHambourg,

Tu as sûrement raison, pourtant j’ai été confronté au problème ou après une maj de W10 plus de Grub. J’ai été obligé d’installer Grub sur le disque Linux et changer l’ordre de boot des disques, pour régler le problème de manière définitive :).

Ce que tu décris est propre à l’amorçage BIOS, ou à l’amorçage EFI par un firmware UEFI buggé qui ne gère pas correctement les variables de boot EFI.

On en apprend tous les jours…:wink:

Salut et merci à vous.
Désolé d’avoir tardé à revenir mais c’était un problème que je n’avais pas le temps de régler.

Solutions proposées :

Pas trop envi de m’y coller tout de suite mais solution à garder en mémoire pour une future réinstallation.
Ce mode EFI c’est un mode à choisir dans le BIOS ou c’est un choix qui se fait via l’installateur ?

Cette solution a ma préférence pour cette fois si elle n’opère aucune modification sur le disque SSD (windows), ce qu’il semble, puisque tu ne parle que du disque Debian.
Si c’est bien le cas, je veux bien les détails de la manipulation.

Merci à vous 3.

Pour donner les détails il me faut le contenu du fichier /etc/fstab et la sortie de la commande blkid.

Dans le BIOS, ou plutôt le firmware UEFI. Il faut aussi que l’installateur soit compatible avec l’UEFI. Par exemple l’installateur Debian 32 bits n’est pas compatible avec l’UEFI 64 bits et vice versa.

ok PascalHambourg,

Cette solution me semble nécessiter la divulgation de trop d’inflormation.
Je vais donc souscrire à la solution d’une réinstallation.

Dans le BIOS, donc.
Et avec la bonne version de Debian.

Dois-je télécharger une version spécificique de Debian pour accéder au mode EFI ?

D.

Si tu veux divulguer le moins d’information possible, tu peux n’indiquer que ce qui a trait aux partitions EFI.
Le but de blkid est de voir l’UUID de la partition EFI (rien de confidentiel) du disque dur et vérifier qu’elle est bien formatée en FAT.
Le but de /etc/fstab est de vérifier si l’autre partition EFI n’est pas déjà montée sur /boot/efi.
Sans ces informations, je ne peux fournir que des instructions générales.

  • S’assurer que la partition EFI du disque dur (/dev/sdb2 est bien formatée en FAT.

  • Editer /etc/fstab pour qu’elle soit montée par son UUID sur /boot/efi

    UUID=XXXX-XXXX /boot/efi vfat defaults
    
  • Monter la partition avec

    mount -a
    
  • Installer le paquet grub-efi-amd64-bin. Si une erreur se produit concernant les variables EFI, ne pas en tenir compte, c’est normal.

  • Exécuter la commande suivante pour installer GRUB dans l’emplacement du chargeur par défaut de la partition EFI :

    grub-install --removable
    
  • Redémarrer l’ordinateur, déclencher le menu de démarrage UEFI et sélectionner le disque dur en mode UEFI.

  • Exécuter update-grub (Windows devrait être détecté) et grub-install sans argument.

Pour un PC avec UEFI 64 bits : amd64 ou multiarch.

Salut,
Désolé pour ma paranoïa, c’est vrai que ces infos n’ont rien de “sensible” !
Les voici donc (j’y arriverai difficilement tout seul avec tes instructions générales) :
blkid

/dev/sda1: LABEL="SYSTEM" UUID="523D-DD14" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="bf594a8a-eb8b-4b2b-9eaf-bffdacc57223"
/dev/sda2: PARTLABEL="Microsoft reserved partition" PARTUUID="6efd940f-7fa1-4940-a1bb-cf49d1b0222b"
/dev/sda3: LABEL="OS" UUID="EC6041016040D44C" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="66aa9f44-2149-4275-a6cb-ce72d9a6f30d"
/dev/sda4: UUID="263CC7C73CC7906B" TYPE="ntfs" PARTUUID="05094933-7c41-4d6c-b6fc-99500ee4ef58"
/dev/sdb1: LABEL="DATA" UUID="44D239C7D239BE4C" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="3c4dd14d-3bf7-44c3-9fd9-e82ac3228475"
/dev/sdb2: UUID="1A6A-B3BB" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="39ba49c1-cfcb-4d31-8ef2-f37fef8a2d93"
/dev/sdb3: UUID="46a3a7e0-407d-4fe9-bb7c-a641303874e8" TYPE="swap" PARTUUID="c5a26ec4-5cf9-490e-a902-a2f4df12a1c0"
/dev/sdb4: UUID="5246d8e3-d6e9-4c5a-adfc-c4c437632a0f" TYPE="ext4" PARTLABEL="Cent" PARTUUID="afc0d8c0-12aa-47b6-b9a1-10e77866ce6a"
/dev/sdb5: UUID="55986881-e5be-4041-923d-3a808ae22b77" TYPE="ext4" PARTLABEL="Deux" PARTUUID="4f7258c3-0d66-444a-8b8a-51ce6827210f"
/dev/sdb6: UUID="7a93d55c-c7c7-435f-b05b-46c24a8d2411" TYPE="ext4" PARTLABEL="Trois" PARTUUID="122fe9a5-89b2-43b7-8ac3-003bb4212760"
/dev/sdb7: UUID="57ef82b8-42e0-4ef4-a1ae-1e6a10d58d4b" TYPE="ext4" PARTUUID="ac7797c7-9be8-4aec-9c9f-4e35843f0489"
/dev/sdb8: LABEL="Debian" UUID="e3543b2f-765d-498c-95e8-660aa71ee688" TYPE="ext4" PARTLABEL="Debian" PARTUUID="167b1b70-318a-4c8c-b21c-e97ac4d23617"

fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdb8 during installation
UUID=e3543b2f-765d-498c-95e8-660aa71ee688 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sdb3 during installation
UUID=46a3a7e0-407d-4fe9-bb7c-a641303874e8 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

Merci pour ton temps.

En cas d’erreur lors de l’exécution d’une commande, interrompre la procédure et rapporter la commande et le message d’erreur complets.

# vérifier la partition EFI
dosfsck /dev/sdb2

# créer le point de montage pour la partition EFI
mkdir /boot/efi

# ajouter le montage automatique de la partition EFI
echo > /etc/fstab "UUID=1A6A-B3BB /boot/efi vfat defaults"

# monter la partition EFI
mount /boot/efi

# lister le contenu de la partition EFI, pour information
find /boot/efi

# installer grub-efi-amd64-bin
apt-get install grub-efi-amd64-bin

# installer le chargeur GRUB EFI dans le chemin de support amovible
grub-install --target=x86_64-efi --removable

Redémarrer l’ordinateur, déclencher le menu de démarrage UEFI et sélectionner le disque dur en mode UEFI.

# vérifier que le système a été amorcé en mode EFI
test -d /sys/firmware/efi && echo EFI OK || echo legacy KO

# reconstruire le menu de GRUB (grub.cfg) ; Windows devrait être détecté
update-grub

# installer grub-efi-amd64 qui remplace grub-pc et installe le chargeur GRUB EFI de façon normale avec création d'une entrée d'amorçage EFI
apt-get install grub-efi-amd64

# vérifier les variables de boot EFI
efibootmgr

Redémarrer l’ordinateur en mode UEFI par défaut. Le menu de GRUB devrait s’afficher avec une entrée pour Windows.