Situation initiale
Pour démarrer, Windows a besoin de certains fichiers de démarrage (et éventuellement secteurs de boot).
Voici comment créer ces fichiers de démarrage s’il sont manquants (par exemple la partition de démarrage a été effacée, ou bien on souhaite passer d’une partition unique à une partition de démarrage séparée).
On a :
- 1 seule partition NTFS avec une install windows fonctionnelle (C:\Windows, C:\Users etc). Peut être une image. Peut provenir d’un disque MBR ou GPT
- aucun fichier de démarrage
Note : avec cette méthode, il est possible de contourner la plupart des restrictions imposées à l’installation de Windows, on peut faire un peu ce que l’on veut. Par exemple démarrer en UEFI sur un disque (même NVMe) MBR, avoir une ESP (GPT) en NTFS, démarrer en BIOS sur un disque GPT etc… Je parle ici de la configuration attendue par MS.
Fichiers de démarrage BIOS
Les fichiers de démarrage Windows (10) consistent en :
- Un dossier
BOOT\
contenant :- des dossiers de langues type
fr-fr
Fonts
Ressources
BCD
BCD.LOG
(+1|2)BOOTSTAT.DAT
bootuwf.dll
bootvhd.dll
memtest.exe
- des dossiers de langues type
bootmgr
BOOTNXT
BOOTSECT.BAK
Ces fichiers peuvent être sur le disque C, ou bien sur une partition dédiée (nommée “Réservé au système” si créée automatiquement lors de l’installation de Windows). Cette partition doit posséder le flag boot.
Table de partition
Il faut une table de partition MBR, avec :
- une partition de 500M (voire 1G) formatée en NTFS, de type “7” (HPFS/NTFS/exFAT) et avec le drapeau boot
- la partition avec l’install Windows, de type “7” (HPFS/NTFS/exFAT)
(note : il ne me semble pas possible d’avoir une partition système en FAT32, le NTFS est nécessaire. On peut copier les fichiers de démarrage sur une partition FAT32 mais le disque ne bootera pas)
On peut consulter/modifier les types de partitions avec cfdisk
.
Par souci de cohérence dans l’ordre des partitions, on peut s’assurer que la partition soit bien numérotée 2 dans la table de partition. Si elle est notée 1, on peut changer son numéro avec la procédure définie ici
Création des fichiers
On démarre ensuite sur une clé USB d’install de Windows 10 (en mode BIOS) -> Dépannage -> Invite de commande
On lance diskpart
; on vérifie les lettres affectées à chacune des partitions (ici C: pour la 500M et E: pour l’install).
list vol
On sort de diskpart, puis
bcdboot E:\Windows /s C: /l fr-fr /f bios
Pour vérifier la présence des fichiers, il faut la commande
dir /a:HS X:
Normalement ça doit démarrer avec la nouvelle partition !
Fichiers de démarrage EFI
Les fichiers de démarrage sont à peu près les même, avec des exécutables .efi. Ils seront dans [ESP]/EFI/Microsoft/Boot/.
Il faut une table de partition GPT, avec :
- partition type ESP (drapeau esp sur Gparted) de 500M en FAT32
- la partition avec l’install windows, de type Msft basic data (drapeau msftdata).
(note : il est possible que cela fonctionne même si la table de partition est de type MBR ; en ce cas il faut le flag boot sur la partition FAT32. On préferera toutefois le GPT)
Si la numérotation des partitions est dans le désordre, on peut suivre ces instructions.
Ensuite on démarre sur sur une USB d’install, Réparer le PC, invite de commande, vérifier la lettre de la partition contenant l’install (par exemple C: ), puis
bcdboot C:\Windows
pour mettre les fichiers sur la partition ESP. Ils seront mis aussi bien dans EFI/Microsoft/Boot que /EFI/Boot/bootx64.efi
On peut aussi affecter une lettre à une autre partition et spécifier le flag /s X:
.
L’entrée BootOrder dans l’UEFI semble ajoutée lors d’un simple démarrage de Windows si elle est manquante ET si le flag boot/esp est positionné sur la partition ESP.
Si besoin, pour s’assurer de l’installation des éventuels pilotes nécessaires en cas de changement de disque, on peut forcer le démarrage en sans échec :
bcdedit /set {default} safeboot minimal
Lorsque l’on a redémarré en mode sans échec et que tout fonctionne, on peut désactiver ce mode avec
bcdedit /deletevalue {default} safeboot
Comportement à l’install de Windows
Si le partitionnement a été fait avant l’installation de Windows, alors :
- en UEFI, les fichiers de démarrage seront mis dans la partition flaggée comme ESP
- en BIOS, les fichiers de démarrage seront mis dans la partition flaggée boot ????
WinRE
Partition de récupération
GPT :
Pour pouvoir accéder à winRE pour dépanner un poste, il lui faut une partition de récupération. Cette partition doit nécessairement être située après la partition système. À la toute fin du disque c’est bien.
On peut créer cette partition via gparted, la formater en NTFS et lui affecter le flag “diag” ((+ hidden ?).
Création du WinRE
Lien MS
Lien forum MS pour diskpart
C’est la commande reagentc
qui permet de gérer la récupération.
reagentc /info
pour voir l’état du WinRE
S’il est désactivé, on peut l’activer via
reagentc /enable
Si il y a le message “Image WindowsRE introuvable”, c’est que le fichier C:\Windows\System32\Recovery\winre.wim
est absent.
On peut le copier à cet emplacement depuis le contenu d’un fichier “install.wim” d’un media d’install (7zip fonctionne pour ouvrir un .wim)
On peut aussi demander à boot en mode winre la prochaine fois (sans interrompre 3 fois le démarrage) via
reagentc /boottore