Installation de Windows via PXE

Un peu de réchauffé ne fait pas de mal, il y a maintenant 4 ou 5 ans j’avais fait un petit tuto pour pouvoir monter un petit serveur PXE qui permettait d’installer Windows et potentiellement booter sur Ubuntu, Memtest et j’en passe. Celui-ci étant sur une ancienne version de mon site (donc plus en ligne) et vu la demande de ce genre de mot clé je me suis dit que j’allais faire un remake.

PXE? WTF ?
Preboot eXecution Environment, en gros ça permet à un ordinateur de démarrer via un réseau. Il est dépendant d’un serveur DHCP et TFTP. Pour plus d’infos : https://fr.wikipedia.org/wiki/Preboot_Execution_Environment

Le process
On va tout d’abord créer un serveur PXE, ensuite créer un serveur Samba qui va partager les fichiers d’installation de Windows et enfin créer une ISO de Windows PE qu’on fera booter en PXE , qui ira monté le partage réseau Samba et lancer l’installateur de Windows contenu dedans. C’est tiré par les cheveux mais je vous garantie que ça fonctionne, Certified by Tonton.

Le serveur PXE (Linux):
Bon, on va pas réinventer la roue, y’a déjà un tuto pour ça : https://www.lacaveatonton.ovh/cree-un-serveur-pxe-sous-debian/
Pour ceux qui on des NAS type Synology ou Qnap, ils ont surement une fonctionnalité pour ça je vous laisse consulter la documentation de vos appareils. Vous pourrez trouver sur la page de mon tuto le fichier zip avec tout le nécessaire pour la suite (pxelinux toussa)

Le partage réseau Samba
Bon, on attaque d’entrée de jeu en installant le serveur Samba avec un petit “APT” des familles:

(sudo) apt install samba

Ensuite, on va aller taper dans le fichier de configuration qui est “/etc/samba/smb.conf” et rajouter un partage (en bas de fichier):

[PXE]
path = /var/tftp
writeable = yes
browseable = yes
guest ok = yes

Attention, ce partage est pas “safe” du tout, tout le monde peu lire et écrire. On modifiera la valeur “writeable” en “no” après avoir copier les fichiers d’installation de Windows.
J’ai mis comme destination le même répertoire que le serveur PXE, ça me permet aussi d’y avoir accès pour modifier si besoin, une pierre deux coup comme on dit. Quand le partage est ajouté, on redémarre de serveur Samba:

service smbd restart

Une fois le partage fonctionnelle, on va copier l’intégralité des fichier de l’iso d’installation Windows 10 dans le partage, moi perso j’ai créer un répertoire win10 (bien retenir l’arborescence pour la suite)

Après avoir copier les fichier d’installation dans le répertoire en question, nous allons retourner dans le fichier “/etc/samba/smb.conf” et mettre la variable d’écriture sur “no” comme dit précédemment car après pas mal d’essais, j’ai constaté que si on laisse le droit en écriture, l’installation se lance une fois mais plus jamais après (ou alors c’est très long … ).

writeable = no

Et c’est fini pour le partage réseau. On passe à la création du Windows PE.

Création du Windows PE
J’avais déjà fait un tuto sur la création d’un Windows PE simplement, je vous invite à le consulter néanmoins je vais vous donner le déroulement  de l’opération.
Après avoir installer les outils nécessaire (ADK, cf tuto), il faut lancer l’environnement de déploiement en ADMINSTRATEUR et tapez les commandes ci-dessous :

# copype amd64 C:\WinPE_amd64
# Dism /mount-image /imagefile:C:\WinPE_amd64\media\sources\boot.wim /index:1 /mountdir:C:\WinPE_amd64\mount
# Dism /Image:C:\WinPE_amd64\mount /Set-InputLocale:fr-fr

Les lettres de lecteur et répertoires peuvent etre personnalisé mais l’arborescence doit être respecté. Ensuite nous allons modifier le fichier “C:\WinPE_amd64\mount\Windows\System32\startnet.cmd” avec le bloc note en ADMINSTRATEUR et le modifier comme ceci :

wpeinit
net use Z: \\192.168.0.252\pxe /user:nobody nobody
Z:\win10\setup.exe

Bien faire attention au répertoire de partage comme signalé plus haut, une seul erreur et ça croûte. L’adresse ip est a adapter selon l’adresse de votre serveur PXE bien entendu. Le paramètre /user et les valeur nobody sont pour respecter la norme de communication pour les partage réseau de Windows 10, si vous avez configurer votre partage réseau avec un utilisateur, insérez le comme ceci : “/user:utilisateur PASSWORD” .

Optionnellement, je conseille aussi d’injecter un max de driver réseau dans le PE car si celui-ci ne reconnait pas votre carte réseau, ça ne fonctionnera pas non plus.

Quand tout est prêt, on va fermer le PE et généré l’ISO.

# Dism /unmount-image /mountdir:C:\WinPE_amd64\mount /commit
# Makewinpemedia /iso C:\WinPE_amd64 C:\WinPE_amd64\WinPE.iso

On va prendre l’image iso du WinPE et la mettre sur le serveur PXE dans le répertoire “boot” ou il doit y avoir aussi memtest.iso (si vous avez suivi mon tuto sur le PXE, ça doit être dans /var/tftp/boot ).

Finitions
Nous allons édité le fichier de menu du PXE (/var/tftp/pxelinux.cfg/default via mon tuto) et y rajouter les lignes suivantes :

LABEL Installation Windows PXE
MENU DEFAULT
LINUX memdisk
INITRD boot/WinPE.iso
APPEND iso

Et on passe a la suite.

Le Grand TEST!
Nous allons enfin pouvoir enfin tester le PXE. Normalement si tout ce passe bien, vous devriez avoir cette écran après avoir sélectionner le démarrage en réseau sur votre machine:

Le transfère de l’image ISO WinPE peut durée 2-3 min, le protocole TFTP est pas rapide … Ensuite si tout va bien le Windows PE démarre, monte le lecteur réseau et lance l’installation de Windows :

Et voila, c’est fini. Si vous avez des remarques, propositions de correction ou autres, hésitez pas a mettre un commentaire en bas de page. Je rappel que les fautes d’orthographes sont autorisé sur mon site ^^.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.