Créer une clé usb Windows bootable en Legacy et en UEFI depuis Ubuntu

Créer  une clé d’installation Windows bootable depuis Linux.

Autant il est facile de créer une clé usb d’installation de Windows bootable depuis Windows  (avec diskpart, rufus ou autre), autant c’est délicat avec Linux. On ne trouve que très peu de documentation, et surtout, peu (ou pas du tout) d’exemples concrets. En voici un. Ce n’est probablement pas la seule méthode, mais elle fonctionne.

I) Les grands mythes (les méthodes qui ne fonctionnent pas bien).

On trouve sur Internet X tutoriels expliquant qu’on peut facilement créer une clé bootable Windows avec des moyens simples. Plutôt que de les contester gratuitement, autant faire un essai :

1. Tentative échouée avec Unetbootin

Je propose ce point pour tordre le coup à la rumeur qui prétend que ça fonctionne. En tout cas, pas en fat32. Or, ce point est indispensable si on veut que la clé puisse booter sur un pc en UEFI.

  • Première étape, installer unetbootin depuis la logithèque Ubuntu. A noter qu’on peut aussi le faire depuis le terminal via un sudo apt-get install unetbootin.

  • On insère une clé usb, on supprime les partitions pour partir de zéro (gparted va très bien pour faire ça).

On donne toutes les chances à l’installation en formatant en fat32 et en activant le drapeau « boot » pour que ça démarre tout seul. L’idée est de ne pas tricher. Et Unetbootin n’aime pas les clés non partitionnées.

  • On paramètre Unetbootin pour décompresser l’iso de WinPE_64 (dart 8 64 bits est mon choix pour la démo). La création de la clé se fait normalement.

   

  • Tout s’est bien passé, apparemment. On peut vérifier le contenu à la fin. Les fichiers sont présents et la clé est toujours bien bootable et en fat 32.

 

On tente un démarrage. Et flop, ça ne boote pas. La clé tourne en boucle sur ce menu (désolé pour la photo foireuse)  généré par syslinux. Aucune option n’est possible.

Hebergeur d'image

Malgré pas mal de tentatives de configuration du fichier syslinux.cfg (doc officielle à l’appui), la clé refuse de booter. Soit il me manque une information, soit syslinux intégré à Unetbootin n’est pas complet.

Edit. J’ai bien trouvé un moyen d’ajouter un grub.exe pour contourner le problème et faire booter, mais cette solution ne me convient pas, car l’insertion d’une entrée vers un fichier efi échoue elle aussi. Donc, on va essayer un autre outil qui va nous éviter de passer par grub ou autre lanceur Linux.

2. Tentative échouée avec la commande dd

De la même manière, on prétend souvent qu’il suffit d’utiliser la commande dd pour pouvoir créer une clé bootable, dès lors qu’elle a été formatée préalablement en fat32. Essayons. Commençons par un formatage de la clé avec gparted :

Capture du 2017-03-18 13:27:12

Ma clé est bien passée en fat32. Je récupère mon image ISO de Winre7 (que j’utilise depuis longtemps, et qui est donc garantie), et je la place sur le bureau. Il ne reste plus qu’à passer ma commande. Pour garantir que ma copie se fera dans de bonnes conditions, je vais choisir de copier par blocs de 512Kb. Les tests avec 4 M et 8M n’étant pas concluants.

Aspire-5315 ~ $ sudo dd if=Bureau/winre.iso of=/dev/sdb1 bs=512K && sync
[sudo] password for toto: 
287+1 enregistrements lus
287+1 enregistrements écrits
150841344 octets (151 MB) copiés, 31,6438 s, 4,8 MB/s
Aspire-5315 ~ $

Tout s’est parfaitement bien passé : vérifions le résultat avec l’explorateur et avec gparted : Première déception. Les fichiers sont bien copiés, mais la table de  partitions est baroque, et elle n’est même pas bootable.

Capture du 2017-03-18 13:40:37

Par acquis de conscience, j’ajoute le drapeau « boot » pour forcer le destin. Je vais vérifier le résultat avec la touche F12 de mon Acer, afin de voir si je peux malgré tout la lancer.

Bilan : pas le temps de faire une photo. La clé est carrément éludée, après un bref passage sur le curseur clignotant. Donc, cette méthode ne fonctionne pas non plus, en tout cas pour les iso M$.

II. Création de la clé avec ms-sys.

Bien sûr, on reformate ma clé en fat32 en y ajoutant le drapeau boot, pour retrouver la même situation que dans le premier point. L’idée est de comparer les outils.

  • On télécharge ms-sys depuis le site du concepteur : http://ms-sys.sourceforge.net/. Je ne mets pas d’image du téléchargement,puisque tout est classique et bien expliqué (J’ai personnellement choisi la version 2.5.2).
  • On déplace l’archive téléchargée du dossier « téléchargement » vers le dossier /home de l’utilisateur (nommé « test » chez moi) pour pouvoir appliquer les commandes préconisées par le concepteur, sans passer par des sous-dossiers.
  • On la décompresse par double clic et on extrait le dossier tel quel.

  • Et on applique les instructions d’installation. On tape donc :

cd ms-sys
make
sudo make install

Je ne passe pas par « su » qui s’appliquera plus à une Debian. Sudo + la commande fait la même chose. Tout se passe comme indiqué. Le logiciel s’installe sans surprise sur ma version de xubuntu.

A noter que sur Linux Mint, j’ai eu un message d’erreur. J’ai dû ajouter la bibliothèque de compilation g++ qui n’était pas présente par défaut :
sudo apt-get update
sudo apt-get install g++
  • A ce stade, il ne reste plus qu’à tester les commandes proposées. D’abord, on identifie le nom de la clé par sudo fdisk –l .

Il s’agit de /dev/sdb1. On n’a plus qu’à tester en s’appuyant sur les options proposées.

  • A priori, l’option «e » me semble convenir. Donc, on tape la commande qui va rendre la clé réellement bootable en mbr  (j’ai laissé une erreur en rouge pour l’exemple) :

sudo ms-sys –e /dev/sdb1

  • La commande est réussie. Il n’y a  plus qu’à copier le contenu de l’iso vers la clé.  On ouvre l’iso par clic droit pour exécuter le gestionnaire d’archives, et un simple copier /coller doit suffire.

Le résultat est le suivant :

 

On voit qu’aucun grub ou syslinux n’est ajouté.  La clé est faite exactement comme avec la commande diskpart. Il ne reste plus qu’à l’essayer. On redémarre sur la clé et on constate qu’elle se lance sans problème :

Hebergeur d'image

On a bien une clé d’installation de Windows bootable réalisée intégralement depuis un PC sous Linux.