Cet article technique écrit par Vincent Caradec - Windows Core, Support Specialist -a pour vocation de vous aider dans la résolution d'un problème bien précis. La solution proposée ci-dessous a été utilisée avec succès par un certain nombre de professionnels de l'informatique ayant remonté ce disfonctionnement à notre service de support. Il se peut qu'elle ne réponde pas à votre problématique pour des raisons d'environnement ou de configuration différents. Si vous avez des questions, merci de contacter notre support technique.
Comment créer un Windows PE 2.x Multiboot 32 et 64 bit
Problématique
WinPe 2.x n’incluant pas de WoW (Windows on Windows), il n’est, par exemple, pas possible d’installer Windows Vista ou Serveur 2008 x64 à partir d’un WinPe 32 bit.
Objectif
Les limites de WinPe étant ce qu’elles sont, il est possible de contourner ce problème en créant un media de démarrage WinPe 2.x multiboot 32/64.
Prérequis
Au préalable il faut avoir créé les 2 WinPe suivants à partir du Waik 1.1 :
- Un WinPe 32 bit :
copype x86 d:\WinPe32
- Un WinPe 64 bit :
copype amd64 d:\WinPe64
Quelques connaissances sur WinPe 2.x, le BCD et Diskpart :
- Présentation de Windows PE 2.0 pour Windows Vista
- BCDEdit Command-Line Options
- Description de l'utilitaire de ligne de commande Diskpart
Et surtout il faut aimer la ligne de commande, mais si le but est d’utiliser WinPe, je suis sûr que vous l’aimez déjà !
Procédure
1. La partie fichier :
Renommer les boot.wim, par exemple :
D:\WinPe32\ISO\Sources\boot32.wim
D:\WinPe64\ISO\Sources\boot64.wim
Note : il aurait également été possible de créer un répertoire D:\WinPe32\ISO\Sources64 contenant un boot.wim version 64
Dans cet article, j'ai choisi la méthode qui me semble être la plus simple.
Recopier le boot64.wim dans le répertoire Sources du WinPe 32.xcopy D:\WinPe64\ISO\Sources\boot64.wim D:\WinPe32\ISO\Sources\boot64.wim
Le répertoire D:\WinPe32\ISO\Sources doit donc contenir les 2 Wims .
2. Mise à jour du BCD :
- Ouvrir une console cmd et se déplacer dans le répertoire Boot
cd /d d:\WinPe32\ISO\boot
- Vérifier le contenu du BCD
bcdedit -store BCD /enum
Windows Boot Manager
--------------------
identifier {bootmgr}
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {default}
displayorder {default}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {default}
device ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path \windows\system32\boot\winload.exe
description Windows Setup
locale en-US
inherit {bootloadersettings}
osdevice ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot \windows
detecthal Yes
winpe Yes
ems Yes
- L’identifiant {7619dcc8-fafe-11d9-b411-000476eba25f} contient les informations relatives à votre RAM Disk
- Vous pouvez voir le détail de ces informations via :
- Pour simplifier les commandes ci-après, je vais utiliser RamDisk à la place de {7619dcc8-fafe-11d9-b411-000476eba25f}
Ce que nous allons faire:
Créer un nouveau Windows Boot loader, sur la base de celui déjà existant:
bcdedit -store BCD /copy {default} /d "Windows Pe 2.1 x64"
- Le résultat de cette commande vous donne le GUID (l’identifiant) qu’il faudra utiliser pour modifier le second Windows Boot Loader
- Pour simplifier les commandes ci-après, je vais utiliser GUIDx64 à la place de {da3a8f0a-63be-11dd-99bc-00118560a0e0}
Mettre à jour les chemins de Device et Osdevice pour qu'ils pointent vers les bons fichiers Wims
- Mise à jour du premier Windows Boot Loader
bcdedit -store BCD /set {default} description "Windows Pe 2.1 x86"bcdedit -store BCD /set {default} device ramdisk=[boot]\sources\boot32.wim,{ RamDisk }bcdedit -store BCD /set {default} osdevice ramdisk=[boot]\sources\boot32.wim,{ RamDisk }
- Mise à jour du second Windows Boot Loader
bcdedit -store BCD /set { GUIDx64 } device ramdisk=[boot]\sources\boot64.wim,{ RamDisk }bcdedit -store BCD /set { GUIDx64 } osdevice ramdisk=[boot]\sources\boot64.wim,{ RamDisk }
Cela devrait donner:
bcdedit -store BCD /enum
Windows Boot Manager
--------------------
identifier {bootmgr}
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {default}
displayorder {default}
{da3a8f0a-63be-11dd-99bc-00118560a0e0}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {default}
device ramdisk=[boot]\sources\boot32.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path \windows\system32\boot\winload.exe
description Windows Pe 2.1 x86
locale en-US
inherit {bootloadersettings}
osdevice ramdisk=[boot]\sources\boot32.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot \windows
detecthal Yes
winpe Yes
ems Yes
Windows Boot Loader
-------------------
identifier {da3a8f0a-63be-11dd-99bc-00118560a0e0}
device ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path \windows\system32\boot\winload.exe
description Windows Pe 2.1 x64
locale en-US
inherit {bootloadersettings}
osdevice ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot \windows
detecthal Yes
winpe Yes
ems Yes
Utilisation
Une fois le BCD mis à jour, il ne reste plus qu’à :
- Soit générer une image ISO bootable du répertoire d:\WinPe32\ISO :
- En utilisant l’outil du Waik :
cd /d d:\WinPe32oscdimg -l"WinPe 2.1 Multi" -n -betfsboot.com ISO WinPe21.iso
- Puis attacher l’image ISO à une machine virtuelle ou bien graver l’ISO sur un Cd-Rom
- En utilisant l’outil du Waik :
- Soit en recopiant le contenu du répertoire ISO à la racine d’une clé USB ayant une partition primaire active
La procédure est entièrement décrite dans l’aide de WinPe incluse dans le Waik
(Windows Pe User’s guide : Customizing Windows PE\Windows PE Walkthroughs\Walkthrough: Create a Bootable Windows PE RAM Disk on UFD)- Pour résumer voici la procédure diskpart:
Diskpart
select disk 1
clean
create partition primary
select partition 1
active
format fs=fat32
assign
exit
- Puis recopier le contenu de l’arborescence WinPe en adaptant la lettre de lecteur :`xcopy c:\winpe32\iso\*.* /s /e /f e:\`