Archives mensuelles : août 2016

Créer un dual-boot W10-W7 en uefi

C’est une demande fréquente lorsqu’on possède un PC préinstallé avec W8 ou W10. Peut-on créer un dual-boot avec Seven  en uefi ? En théorie, oui. Mais ça implique plusieurs présupposés qui ne sont pas toujours respectés par les constructeurs.

Avertissement à bien prendre en compte avant de tenter une installation :

  1. Le « secure-boot » doit être désactivé dans le bios /uefi.
  2. La carte-mère du PC doit être compatible avec Seven (l’ACPI, entre autres, crée souvent des problèmes).
  3. Des pilotes pour W7 64 bits doivent exister et être proposés par le site du constructeur.

Si tout ça est vérifié, on peut envisager une installation. Dans mon cas, l’installation étant faite sur Vmware, je n’aurai pas de problème. Je pars d’un W10 (assez ancien) dont j’ai bloqué les mises à jour, mais l’obsolescence n’a aucune importance.

Pour éviter les problèmes de démarrage sur DVD et de compatibilité avec l’UEFI, je vais installer mon W7 64 bits directement depuis W10.

1. Préparation de l’installation de W7.

On s’assure qu’on a un espace disponible pour l’installation (clic droit sur le bouton démarrer, puis « gestion de disque ») . Dans cet exemple, ce n’est pas le cas. On va donc réduire le volume C pour faire de la place à W7 (je choisis 17 Gio en remplaçant le chiffre affiché par 17000, ce qui me suffit pour la démo).

Heberger image

On va formater cet espace libre en NTFS depuis le gestionnaire de disques de W10. Un formatage rapide suffit.
Heberger image

On obtient ce résultat :
Heberger image

On est bien en UEFI. La seconde partition est la partition efi qui gère le démarrage de Windows.

- Ma nouvelle partition s’appelle D.
- Mon lecteur DVD s’appelle E.

2. Phase d’installation

On se procure le DVD ou une iso de W7 64 bits. On insère le DVD ou la clé usb dans le pc.

// On peut tenter d’installer directement en double-cliquant sur l’icône du DVD, ce qui va lancer le fichier setup.exe, mais ça a plusieurs inconvénients :

- Certains qui l’ont fait ont obtenu assez rapidement un message d’erreur.
– On court le risque en cas d’erreur que l’installation se fasse au mauvais endroit (j’ai dû bloquer le processus, n’étant pas certain de ce qu’il faisait).
– Si le PC n’accepte pas W7, on risque de mettre en danger son W10: rien ne garantit que le bootloader ne sera pas bloqué par le PC si W7 n’est pas prévu pour s’y installer.
– L’installation de W7, si elle réussit (et c’est mon cas sur Vmware) va imposer le bootloader de W7 et on aboutira à un message de ce genre au redémarrage :

Heberger image

C’est moche, et ça a modifié le démarrage. C’est réparable en soi, mais je ne veux pas prendre de risque. Donc, pour éviter tout cela, et pour choisir la version de W7 qui me convient, je vais utiliser l’invite de commandes pour déployer l’image directement.

On repère la position du fichier install.wim sur le DVD. Il est dans le volume E (lettre de mon lecteur DVD), dans le dossier /sources. On va l’inspecter en invite de commandes (clic droit sur démarrer, puis « invite de commandes en admin »). On tape la commande

dism /get-wiminfo /wimfile:e:\sources\install.wim

Heberger image

On constate que le DVD contient plusieurs versions de W7. On va installer la version pro, donc l’index 3. On va donc déployer l’index 3 de l’image sur e:/sources vers d:

dism /apply-image /imagefile:e:\sources\install.wim /index:3 /applydir:d:\

L’image se déploie avec un décompte de 0 à 100 %. Il faudra compter une vingtaine de minutes.

Heberger image

Au terme du décompte, on vérifie que les fichiers ont bien été copiés.

Heberger image

On en profite pour désactiver l’hibernation de W10, qui est gênante dans le cas d’un dual-boot par la commande :

powercfg -h off

Si on relance le PC, seul W10 va démarrer, ce que confirme la commande bcdedit /v

Heberger image

3. Ajout d’une entrée de démarrage pour W7.

On pourrait utiliser des logiciels « clés en main » comme Easybcd ou Bootice (entre autres), mais je préfère faire les choses à la main avec la commande « bcdedit ».

  • On crée une nouvelle entrée. On identifie l’identifiant de cette entrée et on la copie, accolades comprises, en la sélectionnant puis « entrée ».
C:\windows\system32>bcdedit /create /d "Windows 7" /application osloader
 L’entrée {355f51c8-6862-11e6-bcf1-a302a5269f7a} a été correctement créée.
  • On indique le chemin de device et de osdevice.
C:\windows\system32>bcdedit /set {355f51c8-6862-11e6-bcf1-a302a5269f7a} device partition=d:
 L’opération a réussi.
C:\windows\system32>bcdedit /set {355f51c8-6862-11e6-bcf1-a302a5269f7a} osdevice partition=d:
 L’opération a réussi.
  • On indique le chemin (le path) indiquant où se trouve le fichier qui doit être lancé, en l’occurrence winload.efi dont on a vérifié qu’il est bien dans Windows/system32:
C:\windows\system32>bcdedit /set {355f51c8-6862-11e6-bcf1-a302a5269f7a} path \windows\system32\winload.efi
 L’opération a réussi.
  • On indique le système :
C:\windows\system32>bcdedit /set {355f51c8-6862-11e6-bcf1-a302a5269f7a} systemroot \Windows
 L’opération a réussi.
  • On fait en sorte que cette nouvelle entrée soit placée à la fin.
C:\windows\system32>bcdedit /displayorder {355f51c8-6862-11e6-bcf1-a302a5269f7a} /addlast
 L’opération a réussi.

En principe, on a tout pour démarrer. On vérifie par la même commande bcdedit /v . On voit bien qu’une entrée vers W7 a été ajoutée et elle pointe bien dans la direction que nous souhaitons.

Heberger image

Il ne reste plus qu’à redémarrer pour finaliser l’installation de W7.

4. Installation de W7.

Le PC nous propose bien un menu avec une entrée vers W7.

Heberger image

La suite est ultra classique :

Heberger image

Et on suit toutes les étapes habituelles (avec un ou deux reboots) jusqu’à :

Heberger image

On a bel et bien un dual-boot W10 /W7 en uefi :

Heberger image

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.