Installation Windows via PXE
Historiquement, l'installation de Windows ne s'effectue que par DVD. Ce type de support étant devenu obsolète, il a fallu trouver des alternatives pour les rares fois où l'on a encore besoin de ce système d'exploitation...
Une méthode attrayante fut l'amorçage par le réseau. Ayant déjà une infrastructure adapté à ce type d'usage, un simple démarrage PXE permet désormais d'installer n'importe quelle version de Windows.
Pré requis:
- Un serveur PXE
- Une image iPXE
- Une image Windows PE
- Un serveur Samba
Je part du principe que vous avez déjà une infrastructure comportant ces pré-requis. Seulement les modifications concernant nore sujet seront abordées.
Serveur PXE
Création de l’arborescence
En plus des répertoires nécessaires au fonctionnement du PXE, j'en crée trois qui vont contenir respectivement l'image WinPE, l'image iPXE ainsi que le script de démarrage pour ce dernier.
mkdir -p /srv/tftp/{iso,noyaux/ipxe,scripts/ipxe}
Provisionnement de l'arborescence
Nous allons mettre nos fichiers dans les répertoires précédemment créés.
Transférer l'ISO winPE
Utiliser la méthode de votre choix pour mettre cette image dans /srv/tftp/iso/winpe.iso
.
Transférer l'image iPXE
De même pour la ROM iPXE qui doit se trouver dans /srv/tftp/noyaux/ipxe/ipxe.lkrn
.
Création du script de démarrage
vim /srv/tftp/scripts/ipxe/win-install.ipxe
#!ipxe
dhcp
set boot-url http://192.168.180.180
initrd ${boot-url}/iso/winpe.iso
kernel ${boot-url}/memdisk iso raw
boot
Note: j'utilise le protocole HTTP pour le chargement de winpe.iso
afin que cela soit beaucoup plus performant que par TFTP. Si vous préférez ce dernier, il suffit de remplacer http://
par tftp://
dans set boot-url
.
vim /srv/tftp/pxelinux.cfg/default
LABEL Installation de Windows
MENU LABEL Installation de Windows
KERNEL /noyaux/ipxe/ipxe.lkrn
INITRD /scripts/ipxe/win-install.ipxe
Partage Samba
Le partage Samba a pour rôle d'héberger les fichiers contenus dans les DVD d'installation des différents Windows à installer. Pour le coup vous vous organisez comme vous voulez mais je préfère avoir un partage dédié que je puisse mettre en lecture seule ou n'autoriser l'accès qu'à certain utilisateurs par exemple.
Création d'un partage dédié
vim /etc/samba/smb.conf
[Windows]
path = /home/toto/Windows
public = yes
read only = yes
writeable = no
browseable = yes
valid users = toto, nobody
comment = Installation de Windows
Provisionnement du partage
Création de l'arborescence
mkdir -p /home/toto/Windows/OS/{7,8.1,10}
Copie des fichiers d'installation
Pour copier ces fichiers, vous devez monter les ISO d'installation et copier l'intégralité de leur contenu dans les répertoires correspondant au système voulu (on les a créés juste avant). Vous trouverez votre bonheur dans mon dépôt logiciel.
Démarrage du système
Démarrez votre machine via PXE, sélectionnez votre entrée d'installation et lancer Windows PE.
Vous arrivez dans un Windows minimaliste ne comportant qu'une fenêtre cmd, à ce stade, il y a deux possibilités:
- Soit votre carte réseau n'est pas géré
- Soit elle l'est (passez directement à l'étape du montage du partage Samba)
Ajouter un pilote réseau
Dans le premier cas, il va falloir ajouter le pilote de votre carte réseau pour pouvoir monter le partage Samba et charger les fichiers d'installation. Pour ce faire, télécharger les pilotes réseaux et extraire le ou les fichiers .inf ainsi que ceux qui se trouve dans le même dossier que lui. Munissez-vous d'une clé USB et les y placer. La brancher sur WinPE et identifier la lettre de votre clé avec la procédure suivante:
diskpart list volume exit
Une fois votre lettre de lecteur identifiée, placez-vous dedans (F: dans l'exemple) et allez chercher vos pilotes. Voici un exemple pour un Shuttle DS57U.
f: cd "LAN_Intel_i211+i218LM\PRO1000\Winx64\NDIS62" drvload e1d62x64.inf drvload e1r62x64.inf drvload e1s62x64.inf drvload e1q62x64.inf
On remarque qu'une adresse IP a été attribuée par notre DHCP avec la commande
ipconfig
Les pilotes sont bien installés.
Note: on constate qu'il faut plusieurs fichiers ".inf", ce n'est pas toujours le cas, par exemple, avec ma Gigabyte GA-X58A-UD5, un seul suffit.
Monter un partage Samba
Je vais par exemple monter le partage pour pouvoir installer un Windows 8.1
net use z: \\192.168.170.178\windows\os\8.1
INFORMATION
Depuis WinPE 10, il est obligatoire de renseigner un couple d'identifiant/mot de passe (même pour la session anonyme), sous peine de se taper une erreur 58 (toujours aussi explicite les erreurs chez M$...). Il faut donc utiliser la syntaxe suivante:net use z: \\192.168.170.178\windows\os\8.1 /user:domaine\anonymous anonymous
.Se placer dedans
z:
Lancer le programme d'installation
setup.exe
La suite est identique à une installation par DVD.
Sources
- Anciennes expérimentations
- http://it-joe.com/howtos/winiscsi.php