Julien De Bona
Free Software, Cooking, and Everything


Créer une clé USB pour installer Windows (2)

Publié le 2016-11-29.

Dans la première partie, on a créé un média d'installation USB avec un premier installeur de Windows. Il est maintenant temps d'en ajouter d'autres. Les commandes utiles seront bcdedit et dism. Comme dans l'article précédent, je suppose un système Windows 10 x64. P désigne la partition de boot (en FAT32) et Q la partition de données (en NTFS).

Les fichiers d'installation

Le premier installeur a déjà installé le nécessaire dans la partition P. La copie de fichiers se limite donc à copier le répertoire Sources du média d'installation vers un sous-répertoire de la partition Q (Q:\installeur2 pour la suite de cet article).

La configuration du bootloader

Ensuite, comme pour le premier installeur, les deux bootloaders doivent être configurés avec bcdedit. Les instructions sont similaires, avec les variations suivantes:

  • Il faut créer une nouvelle entrée avec l'option /copy de bcdedit
  • Non seulement la lettre de lecteur, mais aussi le chemin (vers \installeur2 au lieu de \Sources) doivent être configurés

La configuration de l'installeur

Il reste une opération. Le fichier boot.ini référencé depuis le bootloader est une image de disque contenant l'installeur; cet installeur va rechercher plusieurs fichiers, dont l'install.wim, qui contient le système à installer. En l'absence de configuration, l'installeur va utiliser le répertoire "Sources" du volume où il se trouve (Q:); ça marchait donc pour le premier installeur, mais pas pour les installeurs supplémentaires.

boot.wim contient plusieurs partitions, la deuxième contient l'installeur. L'utilitaire dism permet de monter et démonter cette partition, et entre ces deux opérations, d'utiliser les commandes habituelles pour manipuler l'image.

Commencer par créer un point de montage et monter l'image:

mkdir C:\mnt
dism /Mount-Image /ImageFile:Q:\installeur2\boot.wim /index:2 /MountDir:C:\mnt

Ensuite, créer un fichier setup.cmd à la racine de l'image: C:\mnt\setup.cmd:

@echo off
:while
for %%d in ( d e f g h i j k l m n o p q r q r s t u v w x y z ) do (
    if exist "%%d:\installeur2\install.wim" (
         set installers=%%d
    )
)
if not defined installers (
    goto while
)
%SYSTEMDRIVE%\sources\setup.exe /installfrom:%installers%:\installeur2\install.wim /m:%installers%:installeur2

Ce fichier va tenter de trouver le lecteur où se trouvent les fichiers d'installation, et lancer l'installeur avec les paramètres pour les utiliser. Il reste à lancer ce script au lieu de l'installeur, en créant le fichier C:\mnt\Windows\system32\winpeshl.ini:

[LaunchApps]
%SYSTEMDRIVE%\setup.cmd

Ensuite, appliquer les changements dans boot.wim:

dism /Commit-Image /MountDir:C:\mnt

Un installeur WDS

Démarrer une installation WDS est plus ou moins similaire. A la place de copier le répertoire "Sources" depuis un média d'installation, il suffit de copier un fichier boot.wim en provenance du serveur WDS, et de l'adapter (via un montage avec dism). Comme les fichiers d'installation sont sur le réseau, il n'y a pas besoin du script setup.cmd, puisqu'il n'y a pas besoin de rechercher un tel répertoire. La configuration de boot.wim se limite au fichier Windows\system32\winpeshl.ini, qui doit contenir le texte suivant:

[LaunchApps]
%SYSTEMDRIVE%\sources\setup.exe, /wds /wdsdiscover

Cette configuration va se connecter au serveur WDS par défaut. Pour forcer l'utilisation d'un serveur particulier, ajouter l'option /wdsserver:

[LaunchApps]
%SYSTEMDRIVE%\sources\setup.exe, /wds /wdsdiscover /wdsserver:wds.example.com

Un tel système est utile pour démarrer en UEFI quand le DHCP est configuré pour un démarrage en BIOS, ou l'inverse, pour forcer l'utilisation d'un serveur WDS donné ou simplement quand un ordinateur ne peut pas démarrer en réseau.


tags: microsoft

Quelques tags ...