PXE : installation d'un serveur de (multi)boot

Publié le par Rastapi



Téléchargez la documentation au format PDF (environ 1Mo).

Copié - collé format texte de la documentation :


Installation d'un serveur de déploiement Table des matières 1 - Objectifs 1 2 - Principe du boot PXE 1 A - PXE : carte réseau compatible + serveurs : DHCP & TFTP 1 B - Vocabulaire 2 3 - Configuration du serveur de déploiement et cohabitation des images 2 A - Serveur freeware TFTPD32 2 1 - Configuration du serveur TFTPD32 2 2 - Test en monoboot PXE Vista sur la machine cliente 4 B - Serveur Windows (TFTP + DHCP) 5 1 - Installation des éléments Windows 5 a - Services d'installation à distance : TFTP 5 b - Configuration du serveur DHCP pour PXE 7 2 - Test en monoboot PXE Vista sur la machine cliente 7 3 - Multiboot plusieurs Win98 / plusieurs WinPEXP avec Syslinux 8 a- Configuration du menu multiboot 8 b- Images de disquettes 8 c - Images BartPE dans un multiboot 10 d - Images CD Ghost XP dans un multiboot 12 e - Plusieurs images WinPE XP en multiboot 12 f - Images de CDROM WinPE Vista dans un multiboot : problème non résolu 16 1 - Les étapes du démarrage WinPE Vista 16 2 - Images WinPE Vista (Win PE 2.0) dans un multiboot 17 4 - Préparation du média : booter sur WinPE 2.0 via le réseau 18 5 - Doc WinPE Vista / PXE 18 1 - Démonstration : Déployer une image à l'aide de PXE 18 2 - Divers 21 1 - Objectifs 1 - Se passer de tout support de boot sur les machines clientes : booter directement par le réseau. 2 - Multiboot. 2 - Principe du boot PXE A - PXE : carte réseau compatible + serveurs : DHCP & TFTP "Le boot réseau passe par PXE (pour Preboot eXecution Environment), un protocole propriétaire d'Intel. La carte réseau possède une PROM sur laquelle la machine va booter. • 1 - Recherche d'une adresse IP sur un serveur DHCP ainsi que du fichier à booter : cette PROM contient les premières instructions qui vont permettre d'effectuer une requête DHCP. • 2 - Téléchargement du fichier à booter sur un serveur TFTP : téléchargement du client PXE en RAM, récupération du noyau de l'OS par TFTP. • 3 - Exécution du fichier à booter. Il faut donc utiliser 3 serveurs :  DHCPD (67)  TFTPD (69)  PXE (4011)" Il est à noter que la taille du fichier à booter ne permet pas de booter directement un gros noyau, mais qu'il faut que ce logiciel à booter le télécharge et l'exécute lui même." B - Vocabulaire PXE "Preboot eXecution Environment" TFTP "Trivial File Transfert Protocol" M:PXEWinPEvis ou + loin M:PXEMultiboot "Répertoire de base du serveur TFTP" bootpxepxeboot.com ou + loin pxelinux.0 "Fichier de boot" SysLinux "Chargeur de boot" 3 - Configuration du serveur de déploiement et cohabitation des images A - Serveur freeware TFTPD32 1 - Configuration du serveur TFTPD32 "TFTPD32 est un petit serveur DHCP et TFTP (parmis d'autres fonctions) très facile d'emploi. Il va nous servir à booter notre WinPE depuis le réseau. Voici une capture d'écran de la configuration que j'utilise et qui vient de me servir à installer Vista RTM. "Server interface" est l'adresse IP du micro qui exécute TFTPD32 et je commence le "pool" d'adresses IP juste après. Le principal étant que votre PC soit dans le même sous-réseau que votre pool d'adresses. Le "current directory" est le répertoire qui contient WinPE. De manière un peu sauvage, le temps de lancer la machine qui va booter WinPE par ce moyen, je débranche le câble réseau de mon routeur pour que son serveur DHCP n'interfère pas avec celui de TFTPD32." 2 - Test en monoboot PXE Vista sur la machine cliente Sur un domaine SBS de production, avec le serveur DHCP du contrôleur de domaine activé. On installe temporairement à coté, sur une machine, le serveur TFTPD32 pour tenir tous les rôles du serveur de déploiement, y compris le DHCP. Image de boot : arborescence du CDROM WinPE Vista RC2 Fr. Résultat : la procédure fonctionne, les 2 serveurs DHCP entrent en jeu ! IP reçue par DHCP au niveau du boot PXE : 192.168.1.152 192.168.1.128 = le serveur d'install. IP reçue par DHCP au niveau de Windows : 192.168.1.161 B - Serveur Windows (TFTP + DHCP) http://www.etincelle.cc/sections.php?op=viewarticle&artid=41#dhcp 1 - Installation des éléments Windows a - Services d'installation à distance : TFTP Sur le serveur de prod, on installe le composant Windows "Services d'installation à distance" : Ceci installe les fichiers tftpd.exe et ftp.exe (sur le CD de Windows dans i386) dans le répertoire system32 et crée le service "Service Trivial FTP" : Pour continuer d'installer le serveur RIS Microsoft : risetup. Sinon pour un serveur custom : Dans le registre, on ajoute une valeur chaîne "Directory" ayant pour valeur le path vers l'équivalent du répertoire ISO du WinPE : Fichiers nécessaires : répertoire "ISO" du cd WinPE Vista custom. Test du serveur TFTP. b - Configuration du serveur DHCP pour PXE On configure le serveur DHCP avec les options 066 et 067 : 2 - Test en monoboot PXE Vista sur la machine cliente Fonctionnement : OK. RAPPEL : en mono-boot, on travaile sur l'arborescence du répertoire "ISO" du cd WinPE Vista custom, et non sur le fichier ISO ou l'image Wim du noyau custom. 3 - Multiboot plusieurs Win98 / plusieurs WinPEXP avec Syslinux a- Configuration du menu multiboot Fichier texte M:PXEMultibootpxelinux.cfgdefault du package Syslinux : DEFAULT menu.c32 TIMEOUT 600 (= 1 minute) ALLOWOPTIONS 0 PROMPT 0 MENU TITLE Choix du systeme de boot LABEL bootnorm MENU LABEL Boot ^Normal MENU DEFAULT LOCALBOOT 0 LABEL boot98 MENU LABEL Disquette de boot Win^98 kernel memdisk append initrd=images/boot98.imz LABEL winpexp MENU LABEL CDROM Win^PE XP kernel startrom.0 b- Images de disquettes Fichiers nécessaires à la racine du serveur TFTP : • Pour images XP et 20003 : CDROM de Win2003 : o setupldr.ex_ à renommer en : ntldr o startrom.co_ startrom.0 o ntdetect.co_ ntdetect.com • Pour images Vista : à définir. • SysLinux (http://www.kernel.org/pub/linux/utils/boot/syslinux/) o pxelinux.0 o memdisk o menu.c32 + créer les répertoires :  images (pour les images de disquettes et CD)  pxelinux.cfg (fichier de configuration du menu de démarrage)  menuconf (configuration si présence de sous-menus) "L’exécutable qui sera téléchargé par les clients se nomme pxelinux.0, c’est un petit programme qui va lire un fichier de configuration, puis afficher un prompt pour que l’utilisateur choisisse son OS. Ce programme fait partie du projet SYSLINUX. Dans l’archive de SYSLINUX se trouve un executable nommé menu.c32 qui dote PXELINUX d’un menu graphique utilisable avec les flêches. Le paramètre kernel prend pour valeur l’executable memdisk et l’initrd l’image de la disquette (à la base c’est prevu pour Linux d’où le nom des paramètres)." Arborescence PXE. c - Images BartPE dans un multiboot PEBuilder : pour construire un ISO BartPE. "Source" : Lui indiquer le répertoire père du i386. Avec les fichiers Win2003 à la racine du serveur TFTP : XP : Il faut ajouter un fichier texte "winnt.sif" à la racine du serveur TFTP. Exemple pour Bart PE XP : [SetupData] BootDevice = "ramdisk(0)" BootPath = "i386System32" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=imagesbartpexp.iso" Remplacer le fichier RAMDISK.SY_ du i386 de XP par celui de Win 2003, sinon pouf : Avec le RAMDISK.SY_ de Win2003 : Note : PE Builder permet de rajouter des plugins sur le CDROM BartPE. Pour activer un plugin (par exemple le graveur "DeepBurner"), d'abord mettre les fichiers nécessaires dans l'arborescence déjà prévue à cet effet lors de l'installation de PE Builder : C:Program FilesPEbuilderplugindeepburnerfiles Puis cliquer sur "Activer". Après "Compilation" du CDROM, les plugins sélectionnés se retrouvent dans (par exemple) : C:Program FilesPEbuilderBartPEProgramsdeepburner d - Images CD Ghost XP dans un multiboot Idem BartPE, changer seulement le nom de l'image dans winnt.sif. Attention, on ne peut plus alors accéder à l'item BartPE. Comment donner l'accès à plusieurs images WinPE XP ? Voir ci-dessous. e - Plusieurs images WinPE XP en multiboot Testé ok : "I hope this may be of some use to you. I don't use sdi images (yet) but following instructions on another thread, with loads of help from Macfox & others I pxe boot and load a ram image to the client from a 2003 server. Using pxelinux I have found a dirty way of having multiple iso images. Each of my iso and STARTROM.0 files are in a separate sub dir of my tftpboot root. My method of loading the first iso is as documented. To load the second iso I : - hexedit (say) ISOWIN_384STARTROM.0 - and search & replace every NTDLR with NTDLA (3 found). - Next copy NTLDR (which was orginally setupldr.exe) to NTLDA, this is in my tftpboot root. - Hexedit NTLDA search & replace every winnt.sif with winna.sif (6 found) and WINNT.SIF with WINNA.SIF (3 found). Copy winnt.sif to winna.sif, and edit OsLoadOptions to point to equiv of ISOWIN_384WINPE2.ISO Finally my pxelinux.cfgdefault has: CODE label 5 kernel ISOWIN_256STARTROM.0 label 6 kernel ISOWIN_384STARTROM.0 I now have three iso images to select from, working fine. Is the sort of thing you are after? Regards SteveA" 1 fichier par image à la racine du serveur : winnt.sif + winna.sif 1 fichier par image dans des répertoires séparés pointés dans le fichier M:PXEMultibootpxelinux.cfgdefault : startrom.0 DEFAULT menu.c32 TIMEOUT 600 ALLOWOPTIONS 0 PROMPT 0 MENU TITLE Choix du systeme de boot LABEL bootnorm MENU LABEL ^Disque dur boot normal MENU DEFAULT LOCALBOOT 0 LABEL boot98 MENU LABEL Disquette de boot Win^98 kernel memdisk append initrd=images/boot98.imz LABEL boo98net MENU LABEL Disquette de boot Win98 ^Reseau kernel memdisk append initrd=images/boo98net.imz LABEL boo98gho MENU LABEL Disquette de boot Win98 avec Gh^ost kernel memdisk append initrd=images/boo98gho.imz LABEL bartpexp MENU LABEL CDROM BartPE ^XP kernel imagesbartpexpstartrom.0 LABEL ghostxp MENU LABEL CDROM ^Ghost XP kernel imagesghostxpstartrom.0 f - Images de CDROM WinPE Vista dans un multiboot : problème non résolu Attention les images de boot sont chargées en RAM avant d'être lancées -> vérifier la taille des images et le montant de RAM disponible. Ex : un prep permet de réduire la taille d'une image WinPE. 1 - Les étapes du démarrage WinPE Vista Doc Microsoft : - Le secteur de démarrage du support considéré est chargé. - Le contrôle est transféré à Bootmgr. - Bootmgr extrait les informations de démarrage de base des Données de config. de démarrage (BCD) - et passe le contrôle à winload.exe, qui est contenu dans Boot.wim. - Winload.exe charge alors la couche d’abstraction matérielle appropriée (HAL) - et charge la ruche du Registre système - et les pilotes de démarrage nécessaires. - Après avoir terminé le chargement, il prépare l’environnement pour exécuter le noyau, Ntoskrnl.exe. Ntoskrnl.exe est exécuté et termine la configuration de l’environnement. Remarque : Si vous démarrez Windows PE à partir d’un support en lecture seule tel qu’un CD-ROM, Windows PE stocke les ruches du Registre en mémoire pour que les applications puissent écrire dans le Registre. Les modifications apportées dans le Registre par les applications ne sont pas conservées au cours de sessions différentes de Windows PE. - Le contrôle est transféré au Gestionnaire de session (SMSS). SMSS charge le reste du Registre, configure l’environnement pour l’exécution du sous-système Win32 (Win32k.sys) et de ses différents processus. - SMSS charge le processus Winlogon afin de créer la session utilisateur, - puis démarre les services et les autres pilotes de périphériques non essentiels, - ainsi que le sous-système de sécurité (LSASS). Winlogon.exe exécute l’installation d’après la valeur du Registre HKLMSYSTEMSetupCmdLine. Winpeshl.exe lance %SYSTEMDRIVE%sourcessetup.exe, s’il existe, sinon il recherche une application spécifiée dans %SYSTEMROOT%system32winpeshl.ini. Si aucune application n’est spécifiée, Winpeshl.exe exécute cmd /k %SYSTEMROOT%system32startnet.cmd. Par défaut, Windows PE contient un fichier Startnet.cmd qui lancera Wpeinit.exe. Wpeinit.exe charge les ressources de réseau et se coordonne avec les composants de réseau tels que DHCP. Lorsque Wpeinit.exe se termine, la fenêtre d’invite de commandes est affichée. Le processus de démarrage de Windows PE est terminé. 2 - Images WinPE Vista (Win PE 2.0) dans un multiboot Quels fichiers mettre sur le serveur TFTP ??? A résoudre.. Faut-il travailler sur l'image Wim du noyau, sur l'ISO du CD WinPE custom, ou sur son arborescence ? Soft de multi-boot doit-il être "CD émulation" ? Softs : - SysLinux - CD Shell ? - Etherboot - Grub. PXEBoot.com (startrom.com) is the loader, then passes off to bootmgr for a menu system (is my understanding?). You dont need to load wdsndp.com if you dont use WDS, you can point your DHCP options to pxeboot.com or n12 instead and skip the WDS check (will save you around 30 sec in startup time) What does your boot folder contain and have your created a BCD fil according to the instructions in the WAIK help file, section "Deploy an Image by using PXE" ? The most common error you'll see during boot is that your BCD is missing required information. Wims are loades using the new Windows Deployment Services WDS 4 - Préparation du média : booter sur WinPE 2.0 via le réseau Attention les images de boot sont chargées en RAM avant d'être lancées -> vérifier la taille des images et le montant de RAM disponible. Ex : un prep permet de réduire la taille d'une image WinPE. Voir document "Vista_clonage_et_deploiement" : préparation d'une arborescence de CDROM bootable customisé WinPE, qu'on peut ensuite poser sur le serveur de déploiement. 5 - Doc WinPE Vista / PXE 1 - Démonstration : Déployer une image à l'aide de PXE Cette démonstration explique comment configurer un serveur PXE tierce partie à l'aide de Windows PE 2.0. Le processus comprend la copie des fichiers source de Windows PE 2.0 sur votre serveur PXE et ensuite la configuration de démarrage de votre serveur PXE afin d'utiliser Windows PE. Conditions préalables Pour mener à bien cette démonstration, vous aurez besoin d'un ordinateur de préinstallation pourvu de tous les outils et des fichiers source. Pour plus d'informations, voir Création d'un ordinateur du technicien. Etape 1 : copiez les fichiers source sur le serveur PXE Lors de cette étape, vous allez copier les fichiers source de Windows PE sur votre serveur PXE. Sur votre ordinateur de préinstallation, cliquez sur Démarrer, pointez sur Programmes, Kit de préinstallation OEM (OPK) de Microsoft Windows ou Kit d’installation automatisée (Windows AIK) et cliquez sur Windows PE Tools Command Prompt. Le raccourci ouvre une fenêtre d’invite de commandes et configure automatiquement les variables d’environnement de sorte que tous les outils nécessaire soient sélectionnés. Par défaut, tous les outils sont installés sous C:Program FilesTools, où peut être Windows OPK ou Windows AIK. Exécutez le script Copype.cmd. Le script nécessite deux arguments : l’architecture matérielle et l’emplacement cible. copype.cmd peut être x86, amd64 ou ia64 et un chemin vers le répertoire local. Par exemple, copype.cmd x86 c:winpe_x86 Le script crée la structure de dossiers suivante et y copie tous les fichiers nécessaires à cette architecture. Par exemple, c:winpe_x86 c:winpe_x86ISO c:winpe_x86mount Montez l'image de base de Windows PE (winpe.wim) dans le répertoire mount à l'aide d'ImageX. Par exemple, imagex /mountrw c:winpe_x86winpe.wim 1 c:winpe_x86mount Établissez une connexion réseau vers le répertoire racine de TFTP sur le serveur PXE/TFTP et créez un dossier boot. Par exemple, net use y: TFTPRoot y: md Boot Copiez les fichiers d'amorçage PXE du répertoire monté vers le dossier boot. Par exemple, cd tempWindowsBootPXE copy c:winpe_x86mountWindowsBootPXE*.* y:Boot Copiez le fichier boot.sdi sur le serveur PXE/TFTP. copy c:Program FilesToolsPEToolsx86bootboot.sdi y:Boot Où peut être Windows OPK ou Windows AIK. Copiez l'image amorçable de Windows PE (winpe.wim) dans le répertoire Boot. copy c:winpe_x86winpe.wim y:Boot Etape 2 : créez la configuration de démarrage Lors de cette étape, vous allez créer un magasin BCD à l'aide de la commande BCDEdit. BCDEDIT ne peut s'exécuter que depuis un ordinateur sous Windows Vista ou sous un environnement Windows PE. BCDEdit est situé dans le répertoire Windowssystem32 directory. Sur un ordinateur sous Windows Vista ou sous un environnement Windows PE, créez un magasin BCD à l'aide de BCDEdit. Par exemple, Bcdedit –createstore c:BCD Créez les paramètres RAMDISK. Par exemple, Bcdedit –store c:BCD –create {ramdiskoptions} /d “Ramdisk options” Bcdedit –store c:BCD –set {ramdiskoptions} ramdisksdidevice boot Bcdedit –store c:BCD –set {ramdiskoptions} ramdisksdipath bootboot.sdi Créez les paramètres du débogueur du noyau (facultatif). Par exemple, Bcdedit –store c:BCD –create {dbgsettings} /d “Debugger settings” Bcdedit –store c:BCD –set {dbgsettings} debugtype serial Bcdedit –store c:BCD –set {dbgsettings} baudrate 115200 Bcdedit –store c:BCD –set {dbgsettings} debugport 1 Créez les paramètres OSLoader pour l'image de Windows PE. Par exemple, Bcdedit –store c:BCD –create /d “MyWinPE Boot Image” /application osloader Si la commande create s'exécute avec succès, l'ordinateur renverra une valeur de GUID. Les exemples suivants se réfèrent à cette valeur sous la dénomination guid1. Bcdedit –store c:BCD –set {guid1} systemroot Windows Bcdedit –store c:BCD –set {guid1} detecthal Yes Bcdedit –store c:BCD –set {guid1} winpe Yes Bcdedit –store c:BCD –set {guid1} osdevice ramdisk=[boot]BootWinPE.wim,{ramdiskoptions} Bcdedit –store c:BCD –set {guid1} device ramdisk=[boot]BootWinPE.wim,{ramdiskoptions} Créez les paramètres BOOTMGR. Par exemple, Bcdedit –store c:BCD –create {bootmgr} /d “Windows VISTA BootManager” /inherit {dbgsettings} Bcdedit –store c:BCD –set {bootmgr} timeout 30 Bcdedit –store c:BCD –set displayorder {guid1} {guid2} ... ; Où guid1, guid2, etc. sont les GUID de chaque entrée de fichier .wim. Copiez le fichier BCD sur votre serveur. Par exemple, copy c:BCD serverTFTPRootBoot Configurez votre serveur PXE/TFTP afin de pointer les clients PXE pour télécharger le fichier WDSNBP.COM. Votre serveur PXE/TFTP est à présent configuré. Processus de déploiement Le processus de téléchargement est le suivant. Un client est dirigé (via les options DHCP ou la réponse du serveur PXE) pour télécharger le fichier WDSNBP.COM WDSNBP.COM valide la paquet de réponse DHCP/PXE et procède au téléchargement du fichier PXEBoot.com. Remarque : PXEBoot.com demande au client d'appuyer sur la touche F12 pour déclencher le démarrage de PXE. On peut renommer l'un des autres fichiers de démarrage PXE (comme pxeboot.n12) pour que WDSNBP.COM télécharge un fichier différent. PXEBoot.com télécharge le fichier bootmgr.exe et le magasin BCD. Le magasin BCD doit résider dans un répertoire boot sous le dossier racine de TFTP. De plus, le magasin BCD doit s'appeler BCD. Bootmgr.exe lit les entrées du système d'exploitation BCD et télécharge le fichier Boot.sdi et l'image Windows PE (Winpe.wim). Bootmgr.exe commence à démarrer Windows PE en appelant Winload.exe dans l'image Windows PE. 2 - Divers

Publié dans PXE

Pour être informé des derniers articles, inscrivez vous :

Commenter cet article