13 May 2023, 00:00

Créer ou recréer les fichiers de démarrage BIOS Windows 10

Share

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
  • 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 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 ????