Créer un dual-boot Windows / Winre en UEFI

La console de réparation de W10 peut-être lancée via le menu avancé ou par la commande

shutdown /o /r /t 00

Mais celle-ci est tributaire du bon fonctionnement de Windows, et parfois, on ne parvient pas à la faire démarrer autrement que par le lancement d’une clé USB, ce que certains réussissent à faire plus ou moins bien. On peut donc faire en sorte que Windows propose de la faire démarrer à la demande, via un double boot, ce qui permettra de l’avoir sous la main quand on en aura besoin.

I) Création d’une partition spécifique.

On commence par faire un point sur le partitionnement de notre disque, via le gestionnaire de disques de Windows :

Sans titre 1

On constate que notre PC contient une partition assez grande pour y retrancher 540 Mib environ, ce que nous allons faire via ce gestionnaire.

resize

La manipulation ne pose aucun problème. Il ne reste qu’à formater. Je choisis obligatoirement le formatage en fat32, pour que ma future console accepte de se lancer en UEFI.

formatfat32

Le formatage ne pose aucun problème, lui non-plus. On en profite pour associer le nom Winrepair à ce volume G, même si ce n’est pas indispensable. La première opération est terminée.

II) Création et copie des fichiers de la console.

Pour créer la console de réparation, nous allons utiliser le programme « recoverydrive.exe« , inclus dans W10, que nous pouvons lancer via la commande « exécuter » (accessible en cliquant droit sur le menu démarrer) :

recoverydrive-exe
Une fenêtre s’ouvre. Comme je ne souhaite pas copier les fichiers systèmes de Windows, mais uniquement la console de réparation, je décoche l’option proposée.

recoverydrive-exe2

Le programme ne permettant de cibler que des partitions NTFS ou  des clés USB, mon volume Winrepair ne m’est pas proposé. Je vais donc utiliser une clé USB temporairement, afin de pouvoir ensuite transférer mes fichiers vers la partition fat32. Ici, il s’agit du lecteur H.

recoverydrive-exe3

La clé se fabrique en une dizaine de minutes. Au terme de l’opération, il ne reste plus qu’à copier les fichiers de la clé usb vers le volume Winrepair.

Copy-cle-vers-partition

Aucun souci, là non plus. La copie se fait sans difficulté.

Copy-cle-vers-partition2

A ce stade, on possède une partition contenant notre console Winre, mais elle n’est pas en mesure de démarrer elle-même. Comment faire ?

III) Permettre à la console Winre de démarrer

1) Via le bios-UEFI

La plupart des Bios-UEFI permettent d’ajouter une entrée de démarrage, voire de lancer un fichier efi directement en agissant via la NVRam. Comme on a autant de solutions que de constructeurs et je fais mes essais sur PC virtuel , on va écarter partiellement cette option que chacun pourra expérimenter comme il le souhaite. La chose à retenir, c’est qu’on doit lancer le fichier \efi\boot\bootx64.efi de la partition Winrepair.

Voici un exemple d’ajout d’une entrée dans la NVRam avec le  logiciel EasyUEFI qu’on aura préalablement téléchargé. En temps normal, j’utilise l’invite de commande, mais ce logiciel fonctionnant bien, on va s’en servir.  On ajoute l’entrée en sélectionnant l’option « Linux et autre OS« , puis la bonne partition, et enfin, le bon fichier :

createNVRAM

L’entrée Windows-Repair étant ajoutée en dernière position, on va la faire monter dans la liste, pour la placer juste après notre entrée Windows Boot Manager correspondant à W10:

createNVRAM2

Cette solution obligera à passer par le bios-uefi ou par le menu de démarrage (voir touche spécifique à la marque du PC – ESC pour Asus, F9 pour HP, etc.) pour lancer la console de réparation, mais elle constitue une solution acceptable.

2) Via le démarrage de Windows.

C’est la méthode la plus propre. On va ajouter une entrée vers le bon fichier, ce qui permettra de l’exécuter. En temps normal, j’utilise l’invite de commandes, mais pour simplifier la démo, je vais utiliser le programme Easybcd, qui n’est plus à présenter.

On lance le programme qu’on a bien sûr téléchargé, puis on choisit d’ajouter une entrée en sélectionnant l’option Winpe.  Je pointe sur le disque G, qui est mon volume Winrepair, et sur le fichier \sources\boot.wim

Easybcd

Lorsque c’est fait, on obtient une nouvelle entrée qui se place en seconde position et qui devrait nous permettre de lancer à la fois Windows et la console :

Le résultat confirme notre attente :

dual-ws
L’essai de démarrage est concluant :
dual-ws2

L’unique inconvénient de cette méthode réside dans le fait que notre console dépend du démarrage de Windows. Si celui-ci vient à être défaillant, nous ne sommes pas certains de pouvoir lancer la console, et il faudra repasser par le premier point (le bios-uefi) pour pouvoir contourner le blocage.

3) Via un lanceur autonome : refind

Refind est initialement un lanceur prévu pour Linux et Mac, mais il présente deux intérêts:

  • Contrairement à Grub, il n’a pas besoin d’un Linux pour fonctionner.
  • On peut l’installer directement sur la partition efi depuis Windows.

La première chose à faire est de le télécharger sur le site du concepteur, Rod Smith : http://www.rodsbooks.com/refind/getting.html

Le premier lien (fichier bin) est le bon, ce qui permet d’obtenir un fichier Zip initialement installable sous Linux. On ne va pas utiliser l’ensemble du zip, mais un seul sous-dossier appelé « Refind« : on va le copier à la racine du volume C pour simplifier les manipulations à venir.

refind1

L’extraction ne pose aucun problème. On va devoir copier ce dossier dans son intégralité dans la partition efi qui sert au démarrage. Et là, on n’a pas d’autre choix que l’invite de commande.

D’abord, on attribue à cette partition efi une lettre Z :

C:\windows\system32>mountvol z: /s

On crée sur cette partition appelée maintenant Z un dossier \refind dans le dossier \efi

C:\windows\system32>md z:\efi\refind
C:\windows\system32>cd z:\efi\refind
C:\windows\system32>z:
z:\EFI\refind>

On copie l’ensemble du dossier extrait du zip dans le dossier \efi\refind :

Z:\EFI\refind>xcopy /s c:\refind\*.*
(ici, je coupe la liste des fichiers copiés)
99 fichier(s) copié(s)

On renomme le fichier refind.conf-sample en refind.conf. On ne touche pas au contenu car ça n’intéresse pas la démo, mais il faut savoir qu’il est paramétrable.

Z:\EFI\refind>ren refind.conf-sample refind.conf
Z:\EFI\refind>
Il ne reste plus qu’à ajouter une entrée vers ce nouveau Firmware dans la NVRam. Comme dans le point 1, on utilise le logiciel EasyUEFI pour faciliter les choses :

refind2

L’entrée étant créée, on va la passer en priorité dans la NVRam pour que le PC la lance directement.

refind3

On vérifie que le démarrage est opérationnel :

refind4

Refind va chercher de lui-même toutes les entrées qu’il juge exploitables pour le démarrage, dont ma partition Recovery.

Il est même capable de lancer le noyau Linux d’une distribution Mint, sans que Grub ne soit installé. Mon PC sait donc faire démarrer Windows, Mon Grub, ma partition de réparation, le noyau Linux de Mint, et ma clé USB. Et tout fonctionne très bien.