Installation Réseau de Windows
Comment installer windows XP depuis le réseau ?
Introduction
Ce guide va vous indiquer comment « servir » une installation de Windows depuis un partage réseau. Ceci afin de pouvoir simplement installer windows sur un PC ne comportant pas de lecteurs de disquette ou CD, ou si vous voulez éviter de graver un CD pour installer une version customisée de windows (nLite, Sp2 intégré etc…).
Microsoft propose déja une méthoe pour installer windows depuis le réseau, appellée RIS (Remote Installation Services), mais cette méthode nécessite un Domaine Windows Active Directory. Ce guide explique comment émuler une partie de l’infrastructure RIS pour nos besoins plus restreints.
Prérequis
Pour suivre ce guide, vous aurez besoin :
- Un PC en réseau avec Windows déja installé dessus (pour « servir » l’installation)
- Le PC sur lequel vous voulez installer Windows
- Les drivers de la carte réseau de ce dernier (ils doivent être compatibles avec RIS)
- Les fichiers d’installation de indows XP ou 2003 (CD, image ou répertoire)
- Un serveur DHCP/TFTP => tftpd32.
- Le pseudo serveur BINL de Gianluigi Tiesi. Malheuresement, l’auteur ne fourni pas de version windows. Pas grave je l’ai compilé pour vous.
- L’ .inf-parser pour le serveur binl . A l’origine, un script python que j’ai aussi compilé pour windows.
- Un peu de patience
- De savoir décomprésser des fichiers .cab
Préparation des fichiers
Commencez par créer un répertoire qui va contenur tout nos fichiers. Par exemple, D:\RIS\. Pour éviter de me prendre la tête dans la suite du guide, je l’appellerais répertoire RIS (mais vous pouvez l’appeler comme bon vous semble).
Ensuite, copiez vos fichiers d’installation dans un sous répertoire du répertoire RIS. Disons RIS\winxp.
Dans RIS\winxp\i386, recherchez les fichiers suivants : NTDETECT.COM, STARTROM.N1_, SETUPLDR.EX_ et s’il existe BOOTFONT.BIN et copiez les tous dans le répertoire RIS.
STARTROM.N1_ et SETUPLDR.EX_ sont compressés (cab). Vous devez les décompresser (le moment d’utiliser votre savoir faire, ou google). Laissez le fichier startrom.n12 tel quel, renomez setupldr.exe en ntldr (sans extension).
Mettez l’executable de tftpd32 ainsi que celui de binlserver dans le répertoire RIS.
Préparation des Pilotes Réseau
Sans doute la partie la plus compliqué de ce guide.
Un pilote réseau est constitué de deux fichiers principaux : le fichier d’informations (*.inf), et le service syteme (*.sys). Copiez les fichier .sys dans RIS\winxp\I386.
Notez que parfois (notamment pour les pilotes réseau nForce) le constructeur fournis un pilote spécifique pour RIS. Utilisez le ! (Pour les utilisateurs d’Asus EEE , le pilote est téléchargeable ici et vous trouverez le fichier L251X86.SYS sous « Lan_XP_071011.zip\lan\Attansic\ris\WinXP_32\ ». Vous pouvez aussi passer directement à l’étape suivante en téléchargeant le fichier nics.txt ici.)
Le boot loader réseau ne sais pas lire les fichiers .inf. Il doit donc demander de l’aide au serveur RIS. Au lieu de vous demander de presser F6 et inssérer une disquette, il va envoyer une requette au serveur RIS contenant le VendorID et le ProductID de la carte réseau.
Notre serveur BINL est juste là pour répondre à cette requette. Cependant il ne sais pas non plus traiter directement les fichiers inf. Il faut les prétraiter et lui donner un fichier nics.txt a manger.
Lancez une invite en ligne de commande et lancez la commande suivante : “ infparser path_to_inf”, ou path_to_infpath est soit le nom du fichier .inf, soit un répertoire contenant tout les fichiers infs (si vous voulez supporter plusieurs cartes réseau).
Ceci va générer deux fichiers : devlist.cache and nics.txt. Seul le second nous interresse.
Une fois fait, vérifiez le fichier nics.txt et copiez le dans le répertoire RIS (ou est l’exe du server binl). Il doit ressembler à ca :
1022 2000 pcntpci5.sys PCnet 10b7 6055 EL556ND5.sys EL556ND5t 10b7 6056 EL556ND5.sys EL556ND5
LLes deux premieres colones correspondent au VendorID et ProductID. La troisième est le nom du fichier *.sys et la quatrième est le nom du service. Rappel : Le fichier .sys doit être présent dans le répertoire I386. S’il n’était pas fournis avec le .inf, vous le trouverez certainement dans drivers.cab ou sp2.cab.
Partage réseau
Si les pilotes et fichiers de boot sont chargés en TFTP, le reste est chargé via un partage réseau. Créez donc un partage sur D:\RIS. J’appelerais ce partage RISSHARE.
Le programme d’installation se loggue de manière anonyme. Assurez vous donc que le compte invité :
- Est actif
- As les droit en lecture sur le partage ET sur le systeme de fichiers
- N’a pas de restrictions de login
Fichier de Configuration (.sif)
Le boot loader à besoin de savoir où il va trouver les fichiers d’installation. Nous devons donc fournir un fichier de configuration. Ouvrez notepad, collez ce qui suit et enregistrez sous winnt.sif, dans le répertoire RIS :
[data] floppyless = "1" msdosinitiated = "1" ; Needed for second stage OriSrc = "\\SERVER\RISSHARE\winxp" OriTyp = "4" LocalSourceOnCD = 1 DisableAdminAccountOnDomainJoin = 1 [SetupData] OsLoadOptions = "/fastdetect" ; Needed for first stage SetupSourceDevice = "\Device\LanmanRedirector\SERVER\RISSHARE\winxp" ProductID=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
Noubliez pas de spécifier l’emplacement de vos fichiers d’intallation (SERVER peux être le nom ou l’IP – IP conseillée – du serveur).
Checklist
Avant de continuer, vérifions que nous avons bien tout. Votre arboréscence devrais ressembler à ca :
- \RIS\
- winxp\
- I386
- ….
- Fichiers .sys de la carte réseau
- I386
- winxp\
- ftpd32.exe
- ftpd32.exe
- binlsrv.exe
- nics.txt
- ntdetect.com
- ntldr
- startrom.n1winnt.sif
S’il vous manque des choses vérifiez les points précédents.
Lancement des serveurs
Lancez a la fois binlsrv et tftpd32.
Binlsrv n’a besoin d’aucune configuration.
Dans tftpd32.exe, allez dans l’onglet « DHCP server ». Configurez le pool DHCP (adresse de départ et masque) en fonction de votre réseau local. Indiquez “startrom.n12” comme fichier de boot. N’oubliez pas de sauvegarder.
Vous êtes fin prèts à lancer votre installation.
Bootez le PC à installer sur le réseau (via paramètres dans le BIOS ou via le boot menu).
Qu’est-ce qu’il se passe exactement ?
Premierement, le BIOS initie une requete DHCP, et recoit une IP ainsi que le nom du fichier de boot.
Le fichier de boot startrom.n12 est chargé en TFTP.
Ce bootstrap charge ntldr.
NTLDR (NT loader) :
- Charge ntdetect.com et bootfont.bin (via tftp)
- Charge winnt.sif et lit le chemin d’acces
- Detecte le materiel
- Demande le nom du fichier .sys au serveur binl.
- Charge le kernel et les drivers standard et réseau (via tftp)
- Boote le kernel
Le kernel est lancé, avec consigne de charger les fichiers d’install depuis le partage indiqué dans winnt.sif.
L’install texte continue ensuite comme à la normale.
Et ensuite ?
Tout ceci fonctionne aussi avec une installation customisée avec nLite. Notez simplement que nLite écris les paramètres d’automatisation dans I386/winnt.sif. Ces paramètres ne seront pris en compte que si vous les intégrez a votre winnt.sif dans la racine du répertoire RIS.
Des Questions ?
Tuto écris à l’arrache… si vous avez des questions : tzim@tzim.net.