Créer son Live Windows (basé sur Windows PE 4)

Ici vous trouverez divers tutoriels de logiciels et OS, que ce soit lié à Windows, Linux, ou autres systèmes.
Etre_Libre
Administrateur
Messages : 632
Inscription : 13 novembre 2012, 21:44

Créer son Live Windows (basé sur Windows PE 4)

Message par Etre_Libre » 20 novembre 2012, 22:24

Avec Windows, tout comme avec Linux, il y a la possibilité de créer et d'utiliser un système "Live" : par exemple Live USB ou Live CD (ou même en démarrage réseau).

Un Live Windows c'est un système Windows, souvent minimaliste, qui se charge en RAM et permet d'exécuter des logiciels et d'accéder aux données des stockages de l'ordinateur (disque dur, SSD, etc...).

C'est par exemple particulièrement pratique quand un Windows ne démarre plus : on peut démarrer un Live Windows pour par exemple réparer le système, ou même tout sauvegarder ailleurs et réinstaller.

Note : ce tutoriel permet de créer un Live Windows simple, avec peu de modifications.

Le logiciel à télécharger chez Microsoft est : Windows ADK 8.0 (anciennement appelé Windows WAIK)

Cela va permettre de générer un Live Windows basé sur Windows PE 4, c'est à dire : Windows 8.

Je vais donc l'appeler simplement : Live 8.

En terme de licence, voici une citation d'une partie de ce qu'on peut lire en installant le Windows ADK :
Dans le cadre du présent contrat de licence, vous disposez des droits perpétuels présentés ci-dessous.
1. Installation et droits d’utilisation. Vous êtes autorisé à installer et utiliser un nombre quelconque de copies du logiciel sur vos dispositifs, uniquement dans le but de déployer, d’entretenir, d’évaluer la qualité du système et d’évaluer vos systèmes et dispositifs sous les systèmes d’exploitation Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows XP, Windows Vista, Windows 7 ou Windows 8.
En plus clair : ce Live Windows (Windows PE) ne doit servir qu'à du déploiement, entretien (maintenance, réparation) et évaluation d'un Windows existant.
En aucun cas ce Live Windows ne devrait être votre Windows principal.


Pour l'installation, je recommande de n'installer que le strict nécessaire :
- Outils de déploiement
- Environnement de préinstallation de Windows (Windows PE)

Image


Une fois l'installation terminée, nous allons ouvrir l'outil nommé : "Environnement de déploiement et d’outils de création d’images"

Il se trouve soit dans le menu démarrer dans : Tous les programmes --> Windows Kits --> Windows ADK --> "Environnement de déploiement et d’outils de création d’images"

Si vous avez Windows 8 sans logiciel qui restaure le menu démarrer, il est aussi présent dans l'écran d'accueil.

Attention ce n'est pas un Invite de commandes simple, comme si on ouvrait directement "cmd.exe" :
En effet, il y a plusieurs variables d'environnement qui sont activées afin de pouvoir utiliser tous les utilitaires sans préciser le chemin complet.

En installant Windows ADK, en fait les images WIM sont déjà prêtes à l'emploi, nous allons simplement les utiliser et les modifier légèrement.

Nous allons tout placer dans un dossier, commençons par le Live 8 x64 par exemple, sachant qu'avec le x86 c'est pratiquement la même chose.

Et les commandes démarrent :

Image

copype amd64 C:\live8x64

On a la confirmation "Success" :
Image

Et dans le dossier C:\live8x64 on trouve désormais 3 dossiers :

- fwfiles (contient les secteurs de boot pour BIOS et pour UEFI)
- media (le Live au complet, prêt à être transformé en image ISO ou à mettre sur clé USB)
- mount (dossier vide au départ, peut être utilisé comme point de montage pour l'image WIM du Live Windows, par exemple pour modifier le Live)
Image

Montage de l'image WIM dans le dossier vide :
Dism /mount-image /imagefile:C:\live8x64\media\sources\boot.wim /index:1 /mountdir:C:\live8x64\mount

Image

Dans le dossier C:\live8x64\mount on voit les fichiers du Live 8, directement accessibles et modifiables.

Les modifications possibles sont libres, tant qu'on ne modifie pas les programmes binaires Microsoft ; le reste pas de problème ;)
Cela va par exemple du registre local (ruches dans C:\live8x64\mount\Windows\System32\config ) au script de démarrage "startnet.cmd" se trouvant dans le dossier System32 ou encore le fond d'écran "winpe.jpg".

Par défaut, le Live 8 n'est qu'en anglais, donc le clavier est QWERTY.

Avec Windows ADK, il y a des packs de fonctionnalités et de langues qu'on peut ajouter, disponibles dans le dossier :
"C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs"

Il y a entre autres le support de PowerShell 3, .Net Framework 4, WMI, PPPoE, Stockage étendu, polices d'écriture asiatiques, etc...

Et dans le sous-dossier "fr-fr" il y a le pack de langue "lp.cab" et les packs de langue pour chaque fonctionnalité que l'on souhaite ajouter.

Pour ce tutoriel, je choisis un Live 8 basique, donc juste avec le support FR :
Dism /image:C:\live8x64\mount /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\fr-fr\lp.cab"

Image

Et l'activation de cette langue et du clavier FR Azerty :
Dism /image:C:\live8x64\mount /Set-UILang:fr-FR
Dism /image:C:\live8x64\mount /Set-SysLocale:fr-FR
Dism /image:C:\live8x64\mount /Set-UserLocale:fr-FR
Dism /image:C:\live8x64\mount /Set-InputLocale:fr-FR


Et si on retirait la langue qui ne nous sert pas dans l'image WIM ?

Pour cela, il suffit de lister les paquets présents dedans :
Dism /image:C:\live8x64\mount /get-packages
On doit obtenir quelque chose comme :

Code : Tout sélectionner

Identité du package : Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.2.9200.16384
État : Installation en attente
Type de version : Language Pack
Et là on supprime la langue en-US du pack :
Dism /image:C:\live8x64\mount /remove-package /packagename:Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.2.9200.16384

On peut maintenant démonter l'image et appliquer les changements dans le fichier WIM :
Dism /unmount-image /mountdir:C:\live8x64\mount /commit

On doit voir :

Code : Tout sélectionner

Enregistrement de l'image
[==========================100.0%==========================]
Démontage de l'image
[==========================100.0%==========================]
L'opération a réussi.
Le dossier "mount" est à nouveau vide, c'est normal.

En principe le fichier image WIM a un peu grossi, voir la taille de ce fichier :
C:\live8x64\media\sources\boot.wim

Si jamais vous avez ajouté plusieurs packages, supprimé certains etc... il se peut que l'image WIM puisse être réduite légèrement, via une compression.

J'ai même remarqué que plus on monte et démonte l'image pour faire quelques petites modifications, plus l'image grossi anormalement.

Pour cela je propose une cure de minceur, la cure "ImageX" avec compression :
imagex /compress maximum /export C:\live8x64\media\sources\boot.wim 1 C:\live8x64\media\sources\nouveau.wim "Live_8"

Cela crée une nouvelle image WIM "nouveau.wim" à côté de "boot.wim" :

Code : Tout sélectionner

ImageX Tool for Windows
Copyright (C) Microsoft Corp. All rights reserved.
Version: 6.2.9200.16384

Exporting: [C:\live8x64\media\sources\boot.wim, 1] ->
           [C:\live8x64\media\sources\nouveau.wim]


[ 100% ] Exporting progress

Successfully exported image #1.


Total elapsed time: 6 sec
On peut donc supprimer "boot.wim" et renommer "nouveau.wim" en "boot.wim".

Dans mon cas l'image est passée de 199 Mo à 176 Mo, soit une légère réduction de 23 Mo.

Il reste encore 2 endroits à basculer en Français, on peut s'en rendre compte avec la 1ère commande :
bcdedit /store C:\live8x64\media\Boot\BCD

Cela permet de lire le catalogue de démarrage de Windows 8, le BCD.

Idem en mode UEFI il y a un 2ème catalogue dédié :
bcdedit /store C:\live8x64\media\EFI\Microsoft\Boot\BCD

Dans les 2, on lit "locale" "en-US" ce qui est donc à changer.

Voici les commandes pour cela :
bcdedit /store C:\live8x64\media\Boot\BCD /set {bootmgr} locale fr-FR
bcdedit /store C:\live8x64\media\Boot\BCD /set {default} locale fr-FR
bcdedit /store C:\live8x64\media\EFI\Microsoft\Boot\BCD /set {bootmgr} locale fr-FR
bcdedit /store C:\live8x64\media\EFI\Microsoft\Boot\BCD /set {default} locale fr-FR


Enfin, contrairement aux anciens Windows PE, par défaut il n'y a pas de barre de progression quand le CD ou la clé USB charge (ou le boot réseau PXE), ce qui peut être gênant si on souhaite savoir où en est le chargement du Live 8.

Pour cela, quelques commandes supplémentaires :

bcdedit /store C:\live8x64\media\Boot\BCD /set {default} bootmenupolicy Legacy
bcdedit /store C:\live8x64\media\EFI\Microsoft\Boot\BCD /set {default} bootmenupolicy Legacy


Note : tout comme avec Windows 8, cela réactive aussi le menu "F8" du démarrage, si on a besoin ;)


Création de l'ISO (le cas de la clé USB sera vu aussi)


Via l'utilitaire fourni OSCDIMG, on va pouvoir créer une image ISO bootable du Live 8, avec ou sans support UEFI.

1ère possibilité : support de boot BIOS uniquement :
oscdimg -h -u2 -m -o -l"Live_8" -b"C:\live8x64\fwfiles\etfsboot.com" "C:\live8x64\media" "C:\live8x64\Live8_bios.iso"

2ème possibilité : support de boot UEFI uniquement :
oscdimg -h -u2 -m -o -l"Live_8" -b"C:\live8x64\fwfiles\efisys.bin" "C:\live8x64\media" "C:\live8x64\Live8_efi.iso"

3ème possibilité : support de boot hybride BIOS et UEFI :
oscdimg -h -u2 -m -o -l"Live_8" -bootdata:2#p0,e,b"C:\live8x64\fwfiles\etfsboot.com"#pEF,e,b"C:\live8x64\fwfiles\efisys.bin" "C:\live8x64\media" "C:\live8x64\Live8_bios_efi.iso"

Selon les machines rencontrées, un des 3 cas pourrait bien servir ;)


Création sur Clé USB

Le cas de la clé USB est un peu spécial (pour un disque dur ou SSD ce serait pareil, mais je ne le recommande pas, car Windows ne les voit pas de la même manière) :

En effet il y a la question du système de fichiers (File System)...

En formatant la clé USB en NTFS, ça fonctionnerait très bien en mode BIOS, car le BIOS ne s'intéresse pas au FS utilisé : il lit quelques secteurs, et démarre sur le fichier demandé : BOOTMGR (chargeur de démarrage de Windows).

Néanmoins, avec l'UEFI, le FS choisi est très important, car l'UEFI va explorer la clé USB, et voir si il trouve le fichier suivant (avec un EFI x64) :
\EFI\Boot\bootx64.efi

En EFI x86 (32 bits), ce serait : \EFI\Boot\bootia32.efi

Je considère que tous les UEFI de maintenant sont 64 bits, ce qui est la plupart du temps le cas, sauf des anciens Mac (pas de problème sur les PC apparemment) ou certaines tablettes à base de Intel Atom Z.
Microsoft semble avoir choisi cette voie : UEFI x64 = Windows x64 uniquement.

Aussi, il est bon de savoir que la plupart des UEFI ne savent lire que le FAT ou FAT32, mais ne connaissent pas le NTFS.

Adieu donc le NTFS pour démarrer sur un système récent, et bonjour au... FAT32.

Note : d'ailleurs un Windows 8 installé sur un système UEFI ajoute une partition spéciale FAT32, pour pouvoir démarrer.

Je vais commencer par le cas le plus courant : on efface la clé USB pour tout mettre en place.

Un petit tour avec "diskpart", en ligne de commande :
diskpart

Puis pour lister les stockages branchés :
list disk

J'ai pu lire sur une clé USB 4 Go :

Code : Tout sélectionner

Disque 1    En ligne       3824 M
Choisir ce stockage (adapter le chiffre à votre usage) :
select disk 1

Nettoyage complet (supprime toute partition) :
clean

Créer une partition primaire (principale), et pas une UEFI car sinon les anciens systèmes BIOS ne pourraient pas démarrer dessus :
create partition primary

Sélectionner cette partition :
select partition 1

Formater en FAT32 mode rapide (label au choix) :
format FS=FAT32 LABEL="LIVE_8" QUICK

Rendre la partition "active" (pour le mode BIOS) :
active

Puis quitter le logiciel :
exit

Récapitulatif en image :
Image

Maintenant, copier tout le contenu du dossier "C:\live8x64\media" vers la clé USB.

Le mode UEFI fonctionne déjà, mais pour le boot BIOS il reste une commande pour indiquer à la MBR qu'on souhaite charger le fichier "BOOTMGR" (adapter la lettre à celle de votre clé USB) :
bootsect /nt60 E: /force /mbr

On peut lire alors quelque chose comme :

Code : Tout sélectionner

Les volumes cibles seront mis à jour avec un code de démarrage compatible BOOTMGR.

E: (\\?\Volume{28463d11-3619-11e2-be9e-000c29b6a9ea})

    Mise à jour du code de démarrage du système de fichiers FAT32 réussie.

\??\PhysicalDrive1
    Mise à jour du code de démarrage de disque réussie.

Le code de démarrage a été mis à jour sur tous les volumes ciblés.
Et après test, la clé USB démarre bien depuis le BIOS et depuis l'UEFI.


Voilà, nous avons créé un Live 8 basique.

Aperçu du Live 8 démarré :
Image
Dernière modification par Etre_Libre le 01 novembre 2013, 16:27, modifié 4 fois.
Raison : Mise à jour

Talard

Re: Créer son Live Windows (basé sur Windows PE 4)

Message par Talard » 19 avril 2013, 10:30

Bonjour,

Je cherche à intégré à mon WinPE l'executable du Bureau à distance. En effet, je souhaite utilisé WinPE en boot PXE pour charger une session distante. Aurais-tu des infos là dessus car je n'ai rien trouvé.
Voici un lien identique à ce que je recherche mais pour la V3.0 de WinPE : http://www.iammacgyver.com/2011/02/easy ... -boot.html

Merci pour ton retour et pour ce très bon tuto!!!

Talard

Etre_Libre
Administrateur
Messages : 632
Inscription : 13 novembre 2012, 21:44

Re: Créer son Live Windows (basé sur Windows PE 4)

Message par Etre_Libre » 19 avril 2013, 12:53

Bonjour,

J'insiste sur un point : la licence Windows PE indique que le logiciel est fait pour dépanner ou déployer des systèmes, mais si tu souhaites l'utiliser comme un client léger, ça ne semble pas correspondre ;)

De plus, il n'y a apparememnt pas de module officiel Windows PE (fichier .cab) incluant le client Bureau à distance, donc si tu veux l'intégrer il te faudra modifier plus ou moins en profondeur le registre et ajouter des dlls et executables provenant d'un Windows 8 ou Server 2012 (c'est la même base).

Par contre sincèrement intégrer un client VNC serait sûrement plus simple...

Voilà, c'est un peu tout ce que je sens d'aborder à ce sujet ;)

Talard

Re: Créer son Live Windows (basé sur Windows PE 4)

Message par Talard » 22 avril 2013, 15:51

Bonjour,

Effectivement pour la licence c'est un peut border-Line. Cependant je suis dans un contexte d'étude (c'est un projet tutoré que je dois mettre en place).

Pourquoi WinPE + client RDP et pas VNC, simplement car je met en place une architecture VDI de Windows 2012. J'ai donc une collection auquel je peux me connecter (ex : Une RemoteApp, un bureau virtuel ou une session virtuel). En gros, toute mon architecture fonctionne avec le protocole RDP, donc je ne vais pas m'amuser à utiliser VNC ici.
De plus je viens de découvrir que cette Architecture n'est pas fonctionnel avec un client RDP sous linux, car il ouvre un bureau à distance sur mon serveur sensé rediriger cette demande sur le service demander. En gros il me connecte au serveur A alors qu'il devrais adresser la demande au serveur A pour que ce dernier dirige la connexion sur le serveur B.

WinPE est donc ma seul porte de sortie à mon sens. Soit je parviens a monter une image WinPE 4.0 avec RDP soit je me retranche sur un WinPE 3.0 ou 3.1 avec un client RDP car là, des tutos existes, mais avec une version antérieur du RDP.
Pour info, j'ai tenté d'effectuer l'intégration du RDP à WinPE 4.0 d'après ton tuto et celui mentionné plus haut. J'obtiens une erreur ActiveX. Je n'ai plus le message exacte en tête, je retrouverais ça!

Merci pour ta réponse très rapide.

Etre_Libre
Administrateur
Messages : 632
Inscription : 13 novembre 2012, 21:44

Re: Créer son Live Windows (basé sur Windows PE 4)

Message par Etre_Libre » 22 avril 2013, 20:00

Si tu y tiens vraiment, Windows PE 3.1 devrait convenir car le client RDP de Windows 7 SP1 n'est pas trop vieux, ou sinon il reste la possibilité du Windows PE 4 et Windows 8 pour extraire le client RDP plus récent.

Bonne chance en tout cas dans tes essais ;)

basile.leonetti

Re: Créer son Live Windows (basé sur Windows PE 4)

Message par basile.leonetti » 13 mars 2014, 09:43

Bonjour,
grâce au site :
http://www.capi-ears.com/tutoriel-infor ... indows-pe/

J'ai très facilement pu installer winPE sur ma clé usb 8go comme votre tuto.

Cependant, j'aurais voulu avoir un OS qui tourne sur ma clé usb pour pouvoir ensuite installer les programmes que je veux.
Bien sûr je ne saurais pas où glisser mes programmes dans ma clé pour pouvoir less exécuter sur mon OS.
Je sais qu'il faut l'iso d'un xp/vista/7/8 pour avoir mon bureau en live. Ce que je n'ai pas fait.

Savez-vous comment faire pour installer un live iso après avoir fait votre tuto ?

Si vous ne savez pas, savez-vous où faut-il glisser les programmes .exe dans la clé ( dans quel dossier ) pour pouvoir l'exécuter quand on fait TAB ?

Et si cela fonctionne, savez-vous comment quitter le programme en cours pour revenir sur cmd sans devoir redémarrer la clé usb ?

Etre_Libre
Administrateur
Messages : 632
Inscription : 13 novembre 2012, 21:44

Re: Créer son Live Windows (basé sur Windows PE 4)

Message par Etre_Libre » 13 mars 2014, 10:04

Bonjour,

En fait Windows PE n'est pas un Windows complet, il n'est pas fait pour installer des programmes quand il est déjà lancé, et il n'est pas fait pour être utilisé comme un OS habituel (Internet, Bureautique, etc...).

Il est dédié au déploiement et dépannage ;)

Répondre