jeudi 2 août 2007

Comment faire une clé USB pour faire booter un Windows PE...

Nous allons voir comment faire une version légère de Windows pour booter depuis une clé USB (ou un CD si vous n'avez pas l'intérêt d'une clé).
Et nous allons voir comment le personnaliser pour intégrer quelques outils de manière à avoir une version légère qui ne nécessite aucune installation et dans notre exemple, qui permet de diagnostiquer sa machine.

Pour ce faire nous avons besoin d'outils que Microsoft a mis à disposition gratuitement pour tous.
L'outil principal se nomme Windows Automated Installation Kit (Windows AIK), c'est lui qui permet de faire un Windows PE.
Il se trouve ici
Mais qu'est ce qu'un Windows PE? PE veut dire Preinstallation Environment, c'est un type de Windows qui permet de préparer des installations de masse que ce soit en entreprise ou pour les assembleurs par exemple.


Pour commencer, téléchargez le kit qui se compose d'un fichier img (une image de CD (DVD en l'occurrence) prête à graver).
Attention ce fichier fait presque 1Go, et même si les serveurs de Microsoft sont rapides comptez tout de même le temps de le récupérer.


Une fois récupéré, soit vous le gravez, soit vous montez le .img comme une unité sur votre machine si vous avez un outil pour le faire.
Soit vous décompressez le contenu du .img sur votre machine n'importe où.


Ensuite lancez "STARTCD.EXE" qui se trouve à la racine de ce disque.
Il va vous ouvrir l'interface d'installation.
Dans le menu de gauche cliquez sur "Windows AIK Setup" qui va lancer l'installation du kit sur votre machine.
Vous devez avoir comme système au moins un Windows XP Service Pack 2 ou un Windows 2003 Service Pack 1 voir un Windows Vista.


Pour créer le Windows PE, cliquez sur "Démarrer" puis "Programmes" puis allez dans le dossier "Microsoft Windows AIK" et cliquez sur le raccourci "Windows PE Tools Command Prompt".
Une fenêtre de commande va s'ouvrir, dans celle ci tapez la commande suivante
"Copype.cmd x86 c:\winpe_x86"
Si vous souhaitez une version 64 bit remplacez le x86 par amd64 (dans le nom du dossier vous faite bien ce que vous voulez...)
"Copype.cmd amd64 c:\winpe_amd64"


Nous allons maintenant remplacer la langue anglaise par le français (tant qu'à faire) dans notre image.


En premier lieu il faut récupérer le pack de langue dans les fichiers que vous avez décompressé au début vous vous rappelez?
Et bien il faut aller dans le dossier "WINPE_LANGPACKS" puis dans "X86" (remplacez si vous faites pour du 64 bit), puis copiez le dossier FR-FR dans un endroit facile à se rappeler car nous allons utiliser le dossier plus loin.
J'ai pris le parti de le copier dans le dossier d'installation de Windows AIK soit "c:\Program Files\Windows AIK"


Retournons maintenant à la console et aux lignes de commandes.
D'abord il faut monter l'image de notre Windows PE
"imagex /mountrw WinPE.wim 1 c:\winpe_x86\mount\"


Si tout se passe bien vous devriez avoir à l'écran écrit "Successfully mounted image (RW)".
Et sur votre disque dur un nouveau dossier "mount" devrait avoir été crée dans le dossier "c:\winpe_x86".


Maintenant il faut importer dans l'image le pack de langue et pour ce faire lancer la ligne suivante
"peimg /import="c:\program files\windows AIK\FR-FR\lp.cab" "c:\winpe_x86\mount\windows""


Il nous fait maintenant l'installer, pour cela il nous faut lancer le package qui doit s'installer.
Comment s'appelle t'il me direz vous?
Pour le savoir il vous suffit de le demander à l'image winpe par cette commande:
"peimg /list /image=c:\winpe_x86\mount"


Vous allez voir la liste de tous les packages installés sur cette image.
Les packages installés sont ceux qui ont un + dans la colonne Ins, ceux qui ont un - ne le sont pas.


Profitons en pour installer quelques packages qui pourraient s'avérer utiles, enfin en tout cas qui ne seront pas nocifs.


"peimg /install=winpe-hta-package /image=c:\winpe_x86\mount"


"peimg /install=winpe-XML* /image=c:\winpe_x86\mount"


"peimg /install=winpe-WMI* /image=c:\winpe_x86\mount"


"peimg /install=winpe-Scripting* /image=c:\winpe_x86\mount"


Pour nous simplifier la vie l'install permet d'utiliser des caractères spéciaux et ainsi de ne pas avoir à saisir le nom exact du package.
Nous allons donc lancer l'install de la langue française:


"peimg /install=*fr* /image=c:\winpe_x86\mount"


Il faut maintenant demandez à prendre en compte cette langue.
Dans la liste des package nous avons vu que le code langue affiché était "fr-FR" c'est justement cette chaine qui doit être spécifiée dans la commande suivante:


"peimg /lang=fr-FR /image=c:\winpe_x86\mount"


Maintenant que nous avons ajouté le français et que notre image est française nous pouvons appliquer les changements et démonter l'image temporairement.
Remarquez le /commit en fin de ligne qui est là pour faire appliquer les modifications à l'image.


"ImageX /unmount c:\winpe_x86\mount\ /commit"


Nous allons maintenant voir comment ajouter des applications dans cette image, afin d'avoir quelques outils de diagnostics par exemple.
Pour ce faire nous allons remonter notre image afin d'y faire les modifications adéquates.
"imagex /mountrw WinPE.wim 1 c:\winpe_x86\mount\"


Une fois ceci fait, nous allons ajouter un shell au démarrage de l'image qui va nous permettre de lancer des applications.
Pour ce faire nous allons utiliser celui qui est utilisé par le programme BartPE pour ceux qui connaissent.


Voici le lien pour aller le télécharger
Une fois récupéré, veuillez le décompresser dans un dossier quelconque.
Puis nous allons copier l'intégralité du contenu de ce dossier dans l'arborescence de notre image.
Pour cela il suffit d'aller dans le dossier "C:\winpe_x86\mount" qui contient les fichiers de notre image.
Pour abriter le shell, créez un dossier nommé "Programs" et dans celui ci créez un dossier nommé "nu2menu", puis copiez tous les fichiers décompressés dedans.
Pour que le shell s'exécute il manque une étape, rendez vous dans le dossier "C:\winpe_x86\mount\Windows\System32", créez un nouveau fichier nommé "Winpeshl.ini" et depuis le notepad remplissez le avec ceci:


[LaunchApp]
AppPath = %SYSTEMDRIVE%\Programs\nu2menu\nu2menu.exe
[LaunchApps]
AppPath =

 


Maintenant il ne reste qu'à ajouter des applications et qu'à éditer les menus du bouton start qui ne sont pour l'instant que des menus de test.
J'en ai choisi 4 pour vous montrer comment ça marche et vous offrir les bases d'un PE permettant du diagnostic en cas de pannes, mais bien entendu vous pouvez bien installer plus ou moins ce que vous voulez.
Plus ou moins car les programmes possibles doivent pouvoir être exécutés sans réelle installation, c'est ce qu'on appelle des programmes portables.
Disons à moins de vouloir encore un peu plus compliquer l'affaire c'est ce que j'ai choisi pour ma part.


Pour trouver les programmes qui nous intéresse vous pouvez vous rendre sur ce site
Vous y trouverez de nombreuses applications portables.
Je vais vous indiquer lesquelles chercher dans le champ search du site pour prendre celles que je vous présente en exemple.


Le premier est un explorateur de fichiers, qui remplace aisément celui de Windows.
Cherchez "a43", vous avez une fois la recherche effectuée en bas de page le logiciel présenté, cliquez sur le lien "Download" pour le télécharger.


J'ai décidé aussi d'intégrer HDTune un logiciel de test de disque dur.
Cherchez "hdtune" et faite de même qu'au dessus pour le télécharger.


Le troisième est un outil d'information système basique.
Cherchez "resysinfo" et téléchargez le aussi.


Le dernier est un outil d'information plus complet et plus intéressant en cas de diagnostic à faire.
Cherchez "siw" et téléchargez le aussi.


Pour les installer rien de plus simple pour ces quatre logiciels.
C'est d'ailleurs bien expliqué sur le site que nous venons de visiter mais je vais vous donner les dossiers que j'ai employé pour que les menus fonctionnent ensuite.


J'ai décompressé a43 dans un dossier sobrement appelé "a43".
Pour hdtune je l'ai mis dans un dossier nommé "hdtune_253".
Pour resysinfo il est décompressé dans un dossier nommé "resysinfo".
Quand à siw il est dans un dossier nommé "Siw" avec un s majuscule.
D'ailleurs pour siw il faut créer un fichier vide dans ce dossier nommé "siw_init.xml" afin qu'il fonctionne.


Voilà nos 4 dossiers prêt, maintenant comme toute à l'heure copions les dans le dossier "Programs" de notre image:
"C:\winpe_x86\mount\Programs"


Vous devriez donc avoir 5 dossier sous ce dossier Programs.
Il ne reste qu'à changer les menus de notre shell pour pointer vers nos applications et faire de notre Windows PE un système de diagnostic complet.
Allez dans le dossier du shell
"C:\winpe_x86\mount\Programs\nu2menu"


Et éditez le fichier "nu2menu.xml" avec le notepad.
Nous allons nous éviter du travail en remplaçant tout le contenu par ceci:



<?xml version="1.0"?>


<NU2MENU ID="Nu2MenuSystem001"
   AUTHOR="Henk de Jong"
   DATE="2005-02-17, 20:15"
   VERSION="V0.350"
   COPYRIGHT="(c)2003-2005 Nu2 Productions"
   REMARK="ALL NODES ARE CASE-SENSITIVE!!!!!">


 <MENU ID="mainmenu">          
  <MITEM TYPE="ITEM" DISABLED="@SetMenuPos( 'L','B' )@Not(@FileExists( @GetWinDir()\system32\notepad.exe ))" CMD="RUN" FUNC="@GetWinDir()\system32\notepad.exe" PARM="1">@GetWinDir()\system32\Notepad</MITEM>
  
  <MITEM TYPE="SEPARATOR"></MITEM>  
  <MITEM TYPE="POPUP" MENUID="admin">Programs</MITEM>     


  <MITEM TYPE="ITEM" CMD="RUN" FUNC="@ShowRunDialog()">Run...</MITEM>


    
  <MITEM TYPE="SEPARATOR"></MITEM> 
  <MITEM TYPE="ITEM" CMD="EXIT">Exit</MITEM>
 </MENU> 


 <MENU ID="admin"> 
  <MITEM TYPE="ITEM" CMD="RUN" FUNC="@GetProgramDrive()\Programs\a43\A43.exe">Explorateur de fichiers</MITEM>
  <MITEM TYPE="SEPARATOR"></MITEM>
  <MITEM TYPE="ITEM" CMD="RUN" FUNC="@GetProgramDrive()\Programs\Siw\siw.exe">System Info</MITEM>
  <MITEM TYPE="ITEM" CMD="RUN" FUNC="@GetProgramDrive()\Programs\hdtune_253\HDTune.exe">HDTune testeur de disque dur</MITEM>
  <MITEM TYPE="ITEM" CMD="RUN" FUNC="@GetProgramDrive()\Programs\resysinfo\ReSysInfo.exe">ReSysInfo Informations sur le système</MITEM>
 </MENU>


</NU2MENU>



 


Enregistrez le fichier et voilà c'est terminé.


Il ne reste plus qu'à appliquer les modifications dans l'image et à la préparer pour la mettre sur notre futur support.
"ImageX /unmount c:\winpe_x86\mount\ /commit"


Une fois votre image telle que vous la vouliez, il ne vous reste plus qu'à recopier le fichier résultant par dessus celui qui va être copié sur votre clé USB.
Dans le cas qui nous intéresse ici la commande est la suivante:
notez que le nom du fichier doit être modifié comme indiqué ci-dessous et passe donc de winpe.wim à boot.wim
"copy c:\winpe_x86\winpe.wim c:\winpe_x86\ISO\sources\boot.wim"


Insérez votre clé USB dans votre machine et cliquez sur "Démarrer" puis sur "Exécuter..."
Et saisissez la ligne de commande suivante:
"xcopy c:\winpe_x86\iso\*.* /s /e /f u:\"
Ce qui permet de copier tous les fichiers nécessaires sur votre clé. Ensuite vous devez rendre votre clé USB bootable pour cela dans l'invite de commande tapez :
"cd \" (retour à la racine du disque C: )
"cd Program Files\Windows AIK\Tools\PETools\x86" (afin de se placer dans le bon répertoire)
"bootsect /nt60 u:"


Le u:\ est à remplacer par la lettre de votre clé USB.


Vous voilà maintenant en possession d'un Windows PE sur une clé USB bootable sur la plupart des machines qui supportent le boot sur des ports USB.


Si comme moi vous n'avez pas de machine qui permette de booter sur une clé USB, remplacez la dernière étape par la suivante qui va vous générer une iso bootable prête à graver avec n'importe quel logiciel.
"oscdimg -n -bc:\winpe_x86\ISO\boot\etfsboot.com c:\winpe_x86\ISO c:\winpe_x86\winpe.iso"


 


EDIT: Mise à jour afin de rendre la clé USB bootable avec l'aide de Fanatic F1 du forum


Venez réagir sur le forum

Aucun commentaire: