Installation de Windows par le réseau

Bonjour, si vous êtes ici c’est que vous avez besoin d’installer windows par le biais du réseau et que le service RIS de microsft vous sort par les yeux car mettre en place un domaine pour une installation réseau vous répugne! (C’est mon cas :) ).
Pour les gens qui tombent ici par hasard je vais rapidement vous expliquer en quoi consiste une installation à partir du réseau (c’est le but des 2 lignes ci dessous).
Le but est de pouvoir installer windows ou n’importe quel autre OS en bootant sur la carte réseau de l’ordinateur, pratique si l’ordinateur ne possède pas de lecteur CD ou si le boot USB ne vous convient pas ou est impossible.
En modifiant le fichier de réponses automatiques correctement il est possible de lancer une installation à distance et de prendre la main sur le PC par le biais du bureau à distance une fois l’installation terminée. Le rêve quoi.

Venons-en au cœur du sujet, tout d’abord un petit sommaire.

1) Le matériel requis.

  • Un PC tournant sur windows, XP ou ultérieur, il nous servira de serveur d’installation.
  • Le PC qui devra subir l’opération, bien entendu capable de booter sur le réseau.
  • Un CD ou une image de l’OS que vous voulez installer.
  • Une cafetière et/ou une tireuse à bière selon vos gouts.

2) Les logiciels requis.

  • PAS de windows 2003 ou 2008 serveur.
  • PAS de serveur RIS.
  • Le pilote de la carte réseau du PC cible au format .inf.
  • Un serveur TFTP et DHCP sachant répondre aux requêtes de boot on lan (BOOTP). C’est le boulot de tftp32.
  • Un serveur BINL pour envoyer les pilotes réseau pendant la première phase d’installation. Merci à tzim.net de l’avoir recompilé pour un fonctionnement sous windows. Disponible ici.
  • Un parseur de .inf pour les rendre lisibles par notre serveur BINL. Encore merci à tzim.net. Disponible ici.

Après avoir réquisitionné tout ce beau monde il est bon de comprendre la procédure de boot, je vais essayer de vous l’expliquer ci-dessous.

3) Les étapes de boot.

  1. Notre PC qui doit recevoir son nouveau système d’exploitation démarre en premier lieu sur la carte réseau, celle si envoie une requête BOOTP sur l’ensemble du réseau (broadcast) de façon à obtenir la réponse du serveur BOOTP (un des service de notre tftp32). Dans cette réponse on trouve, entre autre, l’adresse IP fournie à la machine et le nom du fichier de boot à charger par TFTP.
  2. La machine cliente ayant obtenue une adresse IP, peut maintenant « facilement » dialoguer avec le reste du réseau, elle va en profiter pour télécharger le fichier de boot dont le nom a été obtenu en étape 1 par TFTP. Le fichier est à ce stade stocké en RAM.
  3. Le fichier de boot, startrom.n12 est appelé chargeur de base, c’est grâce à lui que les fichiers de l’installeur en mode DOS de windows sont chargés, toujours par le biais de TFTP.
  4. A un moment donné l’installeur va avoir besoin des pilotes de la carte réseau car plus tard le transfert va se poursuivre par le biais d’un partage windows. C’est à ce moment que le serveur BINL va répondre et amorcer le transfert du .inf toujours par TFTP.
  5. Le fichier winnt.sif est chargé, c’est un fichier de réponses automatiques, il contient entre autre l’adresse IP de notre partage windows contenant tous les fichiers d’installation de notre futur système.
  6. L’utilisateur choisis son mode de partitionnement si celui-ci n’a pas été défini dans le fichier de réponses. C’est après cette étape que le transfert des fichiers continue non plus par TFTP mais par le biais du partage windows grâce à l’IP fournie dans le winnt.sif.
  7. L’installation se poursuit comme une installation classique. Attention cependant à ne plus booter sur la carte réseau mais sur le disque dur après la fin de copie des fichiers.

Je ne pense pas avoir raconté trop de bêtises en essayant de séquencer cette procédure de boot, si des âneries vous sautent aux yeux, merci de me remonter les infos. Je suis ouvert à toutes critiques.

La description de la procédure de boot est terminée, venons-en à la préparation de notre serveur d’installation.

4) Organisation des fichiers d’installation.

Pour la suite je travaillerais à la racine de mon disque D: dans un dossier nommé remoteInstall je vous conseille de faire de même, evitez de vous compliquer la tâche en travaillant avec des chemins à rallonge.

Nous aurons une arborescence de cette forme:

Dans le dossier remoteInstall nous aurons un sous dossier, winxp dans mon cas, contenant le contenu du CD de windows XP.
A la racine de remoteInstall nous aurons différents fichiers que vous trouverez dans le répertoire i386 du CD d’installation, certains sont contenus dans des .cab qu’il faudra décompresser.

  • ntldr, vous le trouverez dans le .cab SETUPLDR.EX_  c’est en réalité setupldr.exe que vous renommez en ntldr (sans extension).
  • startrom.n12, vous le trouverez dans le .cab STARTROM.N1_
  • NTDETECT.COM, copiez-le à partir du répertoire i386
  • winnt.sif, nous y reviendrons plus tard, passez-le pour le moment.
  • binlsrv.exe et nics.txt, binlsrv.exe vous avez dû le télécharger grâce à la liste des logiciels requis. Pour nics.txt nous y reviendrons un peu plus tard.

5) Parsage du .inf de la carte réseau.

Le un peu plus tard est maintenant arrivé :) , nous allons ajouter le fichier nics.txt au répertoire remoteInstall, pour cela, lancer sa génération en passant comme argument au  infparser le chemin du fichier .inf du pilote de votre carte réseau que vous aurez préalablement téléchargé sur le site du constructeur de votre machine cliente. Le infparser a dû vous générer deux fichiers, dont le nics.txt, copiez le avec les autres à la racine de remoteInstall, vous pouvez détruire devlist.cache, il ne nous servira pas.

Avec le .inf du pilote de votre carte réseau vous avez dû obtenir un .sys, copiez le dans le répertoire I386 de votre dossier winxp.

6) Création du winnt.sif

Reste maintenant le winnt.sif, copiez le mien en l’adaptant à votre configuration. J’ai volontairement laissé la clef, le nom du PC, de l’organisation etc… pour vous montrer qu’il est possible d’automatiser totalement l’installation. Le winnt.sif est un simple fichier texte avec l’extension .sif

_______________________

[data]
floppyless = « 1″
msdosinitiated = « 1″
OriSrc = « \\192.168.1.144\remoteInstal\winxp »
OriTyp = « 4″
LocalSourceOnCD = 1
DisableAdminAccountOnDomainJoin = 1

[SetupData]
OsLoadOptions = « /fastdetect »
SetupSourceDevice = « \Device\LanmanRedirector\192.168.1.144\remoteInstal\winxp »
ProductID=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

[UserData]
ProductKey=00000-00000-00000-00000-00000
FullName= »XP home »
OrgName= »"
ComputerName=Adrien

_______________________

Je ne saurais vous expliquer toutes les options de ce .sif car elles proviennent de différents forums ou FAQ plus ou moins détaillées.
Vous remarquerez néanmoins que nous faisons appel à un partage windows, et oui, le fameux partage windows décris dans la séquence de boot. C’est à ce moment là qu’il faut créer notre partage! /!\ à ne pas dépasser les 12 caractères dans le nom du partage, d’où la disparition soudaine du dernier ‘l’ de mon remoteInstall.
Partagez donc votre dossier remoteInstall, verifiez qu’il est accessible à n’importe quel utilisateur, lors de la copie la connexion se fait avec l’utilisateur anonyme. Modifier l’adresse IP présente dans le .sif en fonction de l’adresse de votre serveur d’installation.

7) Contrôle de l’arborescence.

La préparation des fichiers est terminée, vous devez avoir quelque chose qui ressemble à ça:

>> \remoteInstall\

>> winxp\

>> I386\

>> …

>> Fichier .sys de la carte réseau

>> startrom.n12

>> ntldr

>> NTDETECT.COM

>> winnt.sif

>> nics.txt

>> binlsrv.exe

8 ) Configuration de tftp32.

Reste maintenant à lancer tftp32, configurez-le comme suit, en particulier le baseDirectory.

Configurez ensuite le service DHCP de façon à ce qu’il distribue des adresses concordantes avec votre infrastructure mais surtout que le serveur BOOTP diffuse le nom du fichier de boot, le startrom.n12.

9) Lancement de l’installation.

Nous avons normalement fait le tour, désactivez temporairement, ou isolez votre serveur DHCP habituel de façon à ce que tftp32 soit le seul à répondre aux requêtes BOOTP de la carte réseau de la machine cliente.
Lancez le serveur binlsrv.exe et laissez-le tourner en tâche de fond.

Allumez votre PC client et admirez le résultat :) En premier lieu il fait sa demande d’@IP, tftp32 lui répond et lui en communique une, une session tftp s’initie et les transferts commencent à partir dans tous les sens, c’est la folie!! tout s’affole, le serveur binlsrv se met à répondre à son tour et ça repart de plus belle!

Voilà, vous avez fait votre première installation de windows par le réseau, vous savez démarrer un PC par le biais de sa carte réseau! C’est génial :)

Bonne continuation, n’hésitez pas à réagir par le biais des commentaires.

Adrien

Ajouter un commentaire, ou un trackback depuis votre site.

3 commentaires sur “Installation de Windows par le réseau”

  1. LeZum dit :

    Bhen tout marche sauf que mon ordi client ne passe pas le mode graphique , il tourne en boucle . j’ en suis au 5em winnt.sif et toujours pareil … Grrr

  2. Adrien dit :

    Hello Thomas, en effet, je me suis inspiré du lien que tu as fournis, mais le mec n’utilise pas RIS, il utilise un dossier qu’il a nommé RIS, mais rien de plus.
    Par contre, http://www.supinfo-projects.com/fr/2005/ris_w2k3/ celui ci utilise bien RIS! et si tu regarde, c’est une autre affaire!
    A+

  3. Thomas dit :

    Bonjour, Adrien,
    j’applaudis une énième fois ta non-flemme pour faire un tutoriel assez compréhensible.
    Cela dit, j’ai vu qu’il existait des tutoriels pareillement compréhensibles utilisant RIS et de la même longueur voire plus courts (genre celui-là en anglais : http://tzim.net/page-win-netinstall-en/?lang=en ). J’avoue que je n’ai point eu l’occasion (et l’utilité) d’installer xp depuis un réseau, donc je peux pas trop dire si RIS c’est aussi chiant que ça.
    J’espère tout de même que ton article va être utile à des gens qui galèrent.
    Bonne continuation.

Ajouter un commentaire

Powered by WordPress