I. Problématique▲
Vous venez de planter votre PC et votre Windows ne démarre plus. Vous n'avez accès qu'à Linux (par exemple, à travers un Live CD) et pour réparer votre Windows, vous avez besoin du CD.
Il est certes possible de faire une clé USB amorçable sous Windows, mais l'outil approprié fourni par Microsoft ne fonctionne que… sous Windows.
Voici donc un guide, pour Linux, permettant de faire une clé USB amorçable UEFI embarquant Windows.
II. Prérequis▲
II-A. Matériel▲
-
Linux 64 bits.
Certaines distributions Linux ne démarrent pas avec le secureboot. Il peut être donc préférable de le désactiver et de le réactiver lorsque vous voudrez démarrer sur la clé Windows. Sinon, Ubuntu 14.04 est une des distributions compatibles avec le secureboot.
-
Une clé USB (8 Go de préférence, mais 4 Go pourraient suffire).
- Une image disque de Windows (vous pouvez utiliser la version d'essai de Windows 8.1 Enterprise).
II-B. Connaissance▲
II-B-1. Le montage/démontage de périphérique▲
Sous Linux, lorsque vous branchez une clé USB, ses fichiers ne sont pas obligatoirement accessibles. Il faut que le système la « monte » : l'ajoute dans son arborescence de fichiers.
Généralement, cette étape est effectuée automatiquement par le gestionnaire de fichiers. Pour le faire manuellement, on utilisera la commande mount.
Dans les opérations sur la clé USB de cet article, certaines ne doivent pas être effectuées lorsque la clé USB est montée. Pour la démonter, on utilisera la commande umount.
II-B-2. Connaître le périphérique correspondant à sa clé USB▲
Sous Linux, lorsque vous branchez un matériel, le noyau le fera apparaître dans le dossier /dev/. Cela permet de communiquer avec le matériel (de manière brute). Pour une clé USB, même en l'ayant branchée, les fichiers ne pourront toujours pas être lus sans que la clé soit montée.
Vous pouvez connaître le périphérique correspondant à votre clé grâce à la commande :
ls -l /dev/disk/by-id/usb*
Généralement, ce sera sdb, mais si vous avez plusieurs disques branchés en USB, alors ce pourrait être sdc… Pour plus de prudence, connectez uniquement la clé USB que vous voulez utiliser pour Windows afin que cette commande ne retourne qu'un seul résultat.
Dans la suite du tutoriel, on supposera que la clé correspond au périphérique /dev/sdb.
III. Procédure▲
III-A. Préparation de la clé USB▲
Afin que la clé soit amorçable, nous devons la formater en FAT 32 et indiquer que celle-ci sera utilisée comme périphérique de démarrage par le système.
Toutes les données de la clé seront perdues. Faites une sauvegarde !
Vous pouvez utiliser le logiciel de partitionnement que vous voulez (GParted, cfdisk…). Ici, nous allons utiliser cfdisk.
- Ouvrez un terminal et passez en administrateur (avec su).
-
Insérez la clé dans un port USB. Généralement, celle-ci va être automatiquement montée par le système. Démontons-la :
Sélectionnezumount /dev/sdb1
- Démarrez cfdisk pour modifier la table de partitions de la clé :
cfdisk /dev/sdb
-
Supprimez les partitions existantes. Il ne doit rester que « espace libre ».
-
Créez une nouvelle partition, primaire, utilisant tout l'espace disque.
-
Donnez-lui le type W95 FAT32.
-
Définissez-la comme amorçable.
-
Vérifiez les informations puis, si tout est correct, validez les modifications avec l'option « Écrire ».
- Quittez cfdisk en appuyant sur la touche « q ».
Pour plus de précaution, retirez et réinsérez la clé dans votre port USB. Il se peut que votre système affiche un message d'erreur, car il va essayer de la monter automatiquement. Ce n'est absolument pas important. Si vous n'avez pas eu le message d'erreur, effectuez :
umount /dev/sdb1
Maintenant, il faut formater la clé :
mkfs.vfat /dev/sdb1
Retirez et réinsérez la clé. Celle-ci devrait être vide et correctement accessible par le système.
La clé est prête à recevoir les fichiers de Windows.
III-B. Copie des données de l'ISO de Windows▲
Afin d'accéder aux données de l'ISO de Windows, il faut monter l'ISO afin qu'elle apparaisse dans l'arborescence de Linux :
mkdir /tmp/iso && mount -o loop ./le_fichier_iso.iso /tmp/iso
Vous devez remplacer « le_fichier_iso.iso » par le vrai nom et le chemin menant à votre ISO.
Les fichiers de l'ISO sont accessibles dans le dossier /tmp/iso. Vous pouvez les copier avec un simple copier-coller sur votre clé USB.
III-C. Support de UEFI▲
Vérifiez que la clé contient bien le fichier :
./EFI/BOOT/BOOTX64.EFI
La casse pour le nom et le chemin de ce fichier n'importe pas.
Si vous ne l'avez pas, vous pouvez le récupérer d'un PC ayant Windows. Grâce au Live CD de Linux, vous pouvez accéder aux fichiers de votre partition Windows. Le fichier dont vous avez besoin se trouve à la racine de la partition Windows dans Windows/Boot/EFI, sous le nom bootmgfw.efi. Copiez-le sur la clé et renommez-le.
Le fichier est aussi disponible sur les CD de Windows x64 (7 et supérieur) dans le fichier Install.wim du dossier sources. Le fichier Install.wim est une archive que l'on peut décompresser avec 7-zip. Le fichier se trouve dans le dossier 1/Windows/Boot/EFI de l'archive.
IV. Redémarrage▲
Voilà ! C'est prêt ! Il suffit de redémarrer le PC et d'amorcer sur la clé.
V. Remerciements▲
Je tiens à remercier supersnail pour son aide et son ingéniosité à la résolution des problèmes même lorsqu'ils touchent Windows.
Je tiens aussi à remercier Khorese, testeur de cette méthode sans qui cet article n'aurait pu voir le jour.
Merci à chrtophe pour sa relecture technique et FRANOUCH pour la relecture orthographique.