Démarrer W10 sur disque GPT en mode Legacy

Il est en principe impossible de faire démarrer Windows installé en UEFI en mode Legacy (ancien BIOS), pour la bonne raison qu’un démarrage cherche un disque au format MBR, sur lequel se trouve une partition active. Un disque GPT ne proposera jamais ce type de partition active, et donc, démarrer en mode Legacy peut sembler impossible.

Cependant, parfois Windows peut faire des siennes et ne plus vouloir démarrer en mode uefi. On tombe alors sur ce genre de message :

Raspberry Pi 2

En général, à ce stade, il est difficile de déterminer si le problème vient de Windows ou de la partition EFI qui sert au démarrage. Pourtant, il est possible de tester son Windows en mode Legacy pour savoir si celui-ci est responsable ou non.

1. Situation de départ.

On va partir d’un disque Windows sain, pour mieux expliquer le processus. En cas de Windows HS, on pourrait agir sans problème depuis un PC W7 (ou plus) et avec une clé USB.

On voit que sur ce PC sont installés deux disques durs. L’un au format GPT pour Windows, qui fonctionne en uefi. L’autre  non alloué, ce qui pourrait être une clé USB ou un disque dur interne.

depart

Nous allons nous occuper du disque 1 pour rendre ce disque bootable en Legacy (BIOS).

2. Préparation de la clé USB (ou disque interne)

On va donc initialiser ce disque en mbr et le formater en NTFS, comme on pourrait le faire avec n’importe clé USB.  Le résultat est le suivant :

format-ntfs

Dans mon cas, j’ai un petit souci, l’option « Marquer la active » est grisée. Je vais devoir l’activer en invite de commandes. Pas de difficulté :

Microsoft Windows [version 10.0.10240]
(c) 2015 Microsoft Corporation. Tous droits réservés.

C:\windows\system32>diskpart
Microsoft DiskPart version 10.0.10240

DISKPART> sel disk 1
Le disque 1 est maintenant le disque sélectionné.

DISKPART> sel part 1
La partition 1 est maintenant la partition sélectionnée.

DISKPART> active
DiskPart a indiqué la partition actuelle comme étant active.

DISKPART> exit
Quitte DiskPart...

Le résultat est le suivant :
active

3. Création des fichiers de démarrage.

Pour l’exemple, je les crée depuis mon Windows opérationnel, mais je pourrais très facilement les créer depuis la console de réparation. La commande est simple :

Microsoft Windows [version 10.0.10240]
(c) 2015 Microsoft Corporation. Tous droits réservés.

C:\windows\system32>bcdboot c:\windows /l fr-fr /s d: /f BIOS
Les fichiers de démarrage ont bien été créés.

Explication. On demande à bcdboot de créer les fichiers de démarrage en français sur le  volume système d, qu’on force en mode bios.

On peut voir via la commande dir /a que les fichiers sont bien créés.

C:\windows\system32>dir /a d:
  Répertoire de D:\

07/10/2017  09:35    <DIR>          Boot
10/07/2015  13:00           395 268 bootmgr
10/07/2015  13:00                 1 BOOTNXT
               2 fichier(s)          395 269 octets
               1 Rép(s)   1 028 993 024 octets libres

Nous allons même vérifier que le démarrage est opérationnel :

C:\windows\system32>bcdedit /store d:\boot\bcd

Gestionnaire de démarrage Windows
---------------------------------
identificateur          {bootmgr}
device                  partition=D:
description             Windows Boot Manager
locale                  fr-fr
inherit                 {globalsettings}
default                 {default}
resumeobject            {0de78277-ab32-11e7-9c51-000c29a6acae}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Chargeur de démarrage Windows
-----------------------------
identificateur          {default}
device                  partition=C:
path                    \windows\system32\winload.exe
description             Windows 10
locale                  fr-fr
inherit                 {bootloadersettings}
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \windows
resumeobject            {0de78277-ab32-11e7-9c51-000c29a6acae}
nx                      OptIn
bootmenupolicy          Standard

C:\windows\system32>

Mon démarrage est bel et bien situé sur D et il pointe bien vers le disque C, sur lequel il va exécuter le fichier winload.exe. Tout est-il opérationnel pour que ça démarre en mode Legacy?

4. Essai en mode Legacy.

Le PC est basculé en mode Legacy, et Windows démarre sans problème en bootant sur le petit disque dur (ou clé usb) une fois qu’on l’a passé en tête de liste dans le bios.

essai

On peut vérifier avec msinfo32 qu’on démarre bien en mode hérité (Legacy) alors que le disque est toujours au format gpt :

preuve

 5. Conclusion

On peut vérifier le bon fonctionnement d’un Windows qui ne démarre plus en UEFI avec une petite clé USB de 512 Mo en la faisant booter en mode Legacy, même si l’installation est faite en UEFI.

Toutes les manipulations pour créer une clé bootable en Legacy auraient pu être faites depuis Dart ou autre outil contenant la console Winre.