Créer son Live Windows (basé sur Windows PE 5)
Publié : 01 novembre 2013, 21:18
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.1
Cela va permettre de générer un Live Windows basé sur Windows PE 5, c'est à dire : Windows 8.1
Je vais donc l'appeler simplement : Live 8.1.
En terme de licence, voici une citation d'une partie de ce qu'on peut lire en installant le Windows ADK :
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)
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.1 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.1 x64 par exemple, sachant qu'avec le x86 c'est pratiquement la même chose.
Et les commandes démarrent :
copype amd64 C:\live81x64
On a la confirmation "Success" :
Et dans le dossier C:\live81x64 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)
Montage de l'image WIM dans le dossier vide :
dism /Mount-Image /ImageFile:C:\live81x64\media\sources\boot.wim /index:1 /MountDir:C:\live81x64\mount
Dans le dossier C:\live81x64\mount on voit les fichiers du Live 8.1, 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:\live81x64\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.1 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.1\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.1 basique, donc juste avec le support FR :
dism /Image:C:\live81x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\fr-fr\lp.cab"
Et l'activation de cette langue et du clavier FR Azerty :
dism /Image:C:\live81x64\mount /Set-UILang:fr-FR
dism /Image:C:\live81x64\mount /Set-SysLocale:fr-FR
dism /Image:C:\live81x64\mount /Set-UserLocale:fr-FR
dism /Image:C:\live81x64\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:\live81x64\mount /Get-Packages
On doit obtenir quelque chose comme :
Et là on supprime la langue en-US du pack :
dism /Image:C:\live81x64\mount /Remove-Package /PackageName:Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.3.9600.16384
On peut maintenant démonter l'image et appliquer les changements dans le fichier WIM :
dism /Unmount-Image /MountDir:C:\live81x64\mount /commit
On doit voir :
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:\live81x64\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:\live81x64\media\sources\boot.wim 1 C:\live81x64\media\sources\nouveau.wim "Live_8_1"
Cela crée une nouvelle image WIM "nouveau.wim" à côté de "boot.wim" :
On peut donc supprimer "boot.wim" et renommer "nouveau.wim" en "boot.wim".
Dans mon cas l'image est passée de 194 Mo à 187 Mo, soit une légère réduction de 7 Mo.
Cela peut être plus important selon la quantité de modifications apportées.
Il reste encore 2 endroits à basculer en Français, on peut s'en rendre compte avec la 1ère commande :
bcdedit /store C:\live81x64\media\Boot\BCD
Cela permet de lire le catalogue de démarrage de Windows 8.1, le BCD.
Idem en mode UEFI il y a un 2ème catalogue dédié :
bcdedit /store C:\live81x64\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:\live81x64\media\Boot\BCD /set {bootmgr} locale fr-FR
bcdedit /store C:\live81x64\media\Boot\BCD /set {default} locale fr-FR
bcdedit /store C:\live81x64\media\EFI\Microsoft\Boot\BCD /set {bootmgr} locale fr-FR
bcdedit /store C:\live81x64\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.1
Pour cela, quelques commandes supplémentaires :
bcdedit /store C:\live81x64\media\Boot\BCD /set {default} bootmenupolicy Legacy
bcdedit /store C:\live81x64\media\EFI\Microsoft\Boot\BCD /set {default} bootmenupolicy Legacy
Note : tout comme avec Windows 8.1, 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.1, avec ou sans support UEFI.
1ère possibilité : support de boot BIOS uniquement :
2ème possibilité : support de boot UEFI uniquement :
3ème possibilité : support de boot hybride BIOS et UEFI :
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.1 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 :
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
Formater en FAT32 mode rapide (label au choix) :
format FS=FAT32 LABEL="LIVE_8_1" QUICK
Rendre la partition "active" (pour le mode BIOS) :
active
Puis quitter le logiciel :
exit
Récapitulatif en image :
Maintenant, copier tout le contenu du dossier "C:\live81x64\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 F: /force /mbr
On peut lire alors quelque chose comme :
Et après test, la clé USB démarre bien depuis le BIOS et depuis l'UEFI.
Voilà, nous avons créé un Live 8.1 basique.
Aperçu du Live 8.1 démarré :
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.1
Cela va permettre de générer un Live Windows basé sur Windows PE 5, c'est à dire : Windows 8.1
Je vais donc l'appeler simplement : Live 8.1.
En terme de licence, voici une citation d'une partie de ce qu'on peut lire en installant le Windows ADK :
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.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 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Vista, Windows 7, Windows 8 ou Windows 8.1.
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)
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.1 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.1 x64 par exemple, sachant qu'avec le x86 c'est pratiquement la même chose.
Et les commandes démarrent :
copype amd64 C:\live81x64
On a la confirmation "Success" :
Et dans le dossier C:\live81x64 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)
Montage de l'image WIM dans le dossier vide :
dism /Mount-Image /ImageFile:C:\live81x64\media\sources\boot.wim /index:1 /MountDir:C:\live81x64\mount
Dans le dossier C:\live81x64\mount on voit les fichiers du Live 8.1, 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:\live81x64\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.1 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.1\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.1 basique, donc juste avec le support FR :
dism /Image:C:\live81x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\fr-fr\lp.cab"
Et l'activation de cette langue et du clavier FR Azerty :
dism /Image:C:\live81x64\mount /Set-UILang:fr-FR
dism /Image:C:\live81x64\mount /Set-SysLocale:fr-FR
dism /Image:C:\live81x64\mount /Set-UserLocale:fr-FR
dism /Image:C:\live81x64\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:\live81x64\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.3.9600.16384
État : Installation en attente
Type de version : Language Pack
dism /Image:C:\live81x64\mount /Remove-Package /PackageName:Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.3.9600.16384
On peut maintenant démonter l'image et appliquer les changements dans le fichier WIM :
dism /Unmount-Image /MountDir:C:\live81x64\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.
En principe le fichier image WIM a un peu grossi, voir la taille de ce fichier :
C:\live81x64\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:\live81x64\media\sources\boot.wim 1 C:\live81x64\media\sources\nouveau.wim "Live_8_1"
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.3.9600.16411
Exporting: [C:\live81x64\media\sources\boot.wim, 1] ->
[C:\live81x64\media\sources\nouveau.wim]
[ 100% ] Exporting progress
Successfully exported image #1.
Total elapsed time: 3 sec
Dans mon cas l'image est passée de 194 Mo à 187 Mo, soit une légère réduction de 7 Mo.
Cela peut être plus important selon la quantité de modifications apportées.
Il reste encore 2 endroits à basculer en Français, on peut s'en rendre compte avec la 1ère commande :
bcdedit /store C:\live81x64\media\Boot\BCD
Cela permet de lire le catalogue de démarrage de Windows 8.1, le BCD.
Idem en mode UEFI il y a un 2ème catalogue dédié :
bcdedit /store C:\live81x64\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:\live81x64\media\Boot\BCD /set {bootmgr} locale fr-FR
bcdedit /store C:\live81x64\media\Boot\BCD /set {default} locale fr-FR
bcdedit /store C:\live81x64\media\EFI\Microsoft\Boot\BCD /set {bootmgr} locale fr-FR
bcdedit /store C:\live81x64\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.1
Pour cela, quelques commandes supplémentaires :
bcdedit /store C:\live81x64\media\Boot\BCD /set {default} bootmenupolicy Legacy
bcdedit /store C:\live81x64\media\EFI\Microsoft\Boot\BCD /set {default} bootmenupolicy Legacy
Note : tout comme avec Windows 8.1, 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.1, avec ou sans support UEFI.
1ère possibilité : support de boot BIOS uniquement :
Code : Tout sélectionner
oscdimg -h -u2 -m -o -l"Live_8_1" -b"C:\live81x64\fwfiles\etfsboot.com" "C:\live81x64\media" "C:\live81x64\Live8_1_bios.iso"
Code : Tout sélectionner
oscdimg -h -u2 -m -o -l"Live_8_1" -b"C:\live81x64\fwfiles\efisys.bin" "C:\live81x64\media" "C:\live81x64\Live8_1_efi.iso"
Code : Tout sélectionner
oscdimg -h -u2 -m -o -l"Live_8_1" -bootdata:2#p0,e,b"C:\live81x64\fwfiles\etfsboot.com"#pEF,e,b"C:\live81x64\fwfiles\efisys.bin" "C:\live81x64\media" "C:\live81x64\Live8_1_bios_efi.iso"
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.1 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
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
Formater en FAT32 mode rapide (label au choix) :
format FS=FAT32 LABEL="LIVE_8_1" QUICK
Rendre la partition "active" (pour le mode BIOS) :
active
Puis quitter le logiciel :
exit
Récapitulatif en image :
Maintenant, copier tout le contenu du dossier "C:\live81x64\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 F: /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.
F: (\\?\Volume{5877e979-4319-11e3-8255-000c2989b2dd})
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.
Voilà, nous avons créé un Live 8.1 basique.
Aperçu du Live 8.1 démarré :