Menu de démarrage PXE avec System Center Configuration Manager

Menu de démarrage PXE avec System Center Configuration Manager

Nous examinons l'extension des capacités de System Center Configuration Manager (produit pour la gestion de l'infrastructure informatique) lors du démarrage des PC utilisateurs via le réseau en utilisant PXE. Nous créons un menu de démarrage basé sur PXELinux avec des fonctionnalités de System Center et ajoutons des capacités de vérification antivirus, des images de diagnostic et de récupération. À la fin de l'article, nous abordons les spécificités du fonctionnement de System Center 2012 Configuration Manager en collaboration avec Windows Deployment Services (WDS) lors du démarrage via PXE.

Toutes les actions se déroulent dans un environnement de test, où System Center 2012 Configuration Manager SP1, un contrôleur de domaine et un certain nombre de machines de test sont déjà installés. Il est supposé que le déploiement réseau utilisant PXE est déjà en cours dans SCCM.

Introduction

L'environnement de test se compose de plusieurs machines virtuelles. Toutes les machines ont le système d'exploitation invité Microsoft Windows Server 2008 R2 (x64), l'adaptateur réseau E1000, contrôleur SCSI : LSI Logic SAS.

Nom (Rôles)
Adresse IP / Nom DNS
Fonctionnalités

SCCM (System Center Configuration Manager)
192.168.57.102
sccm2012.test.local

System Center Configuration Manager 2012 SP1 est installé

DC (AD, DHCP, DNS)
192.168.57.10
dc1.test.local

Rôle de contrôleur de domaine, serveur DHCP et serveur DNS

TEST (Machine de test)
192.168.57.103
test.test.local

Pour les tests

GW (Passerelle)
192.168.57.1
Routage entre les réseaux. Rôle de la passerelle

1. Ajouter PXELinux dans SCCM

Les actions se déroulent sur la machine où System Center Configuration Manager est installé.

  • Définissons le répertoire où se trouvent les fichiers WDS pour le démarrage, pour cela nous vérifions la valeur du paramètre dans le registre. RootFolder dans la branche HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
    Valeur par défaut C:RemoteInstall
    Les fichiers pour le démarrage depuis le point de déploiement SCCM se trouvent dans les répertoires smsbootx86 et smsbootx64 selon l'architecture.
    Nous configurons d'abord le répertoire pour l'architecture 32 bits, par défaut c:Remoteinstallsmsbootx86
  • Nous téléchargeons l'archive avec le dernier syslinux . Nous copions depuis syslinux-5.01.zip dans c:Remoteinstallsmsbootx86 les fichiers suivants :
    memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
    Des fichiers supplémentaires sont nécessaires pour éviter ce type d'erreur.
    Menu de démarrage PXE avec System Center Configuration Manager
  • Dans c:Remoteinstallsmsbootx86 Nous renommons pxelinux.0 dans pxelinux.com
    Dans le dossier c:remoteinstallsmsbootx86 nous faisons une copie de abortpxe.com et la renommons en abortpxe.0
    Cependant, si nous ne renommons pas l'extension .0, alors par exemple, l'instruction
    Kernel abortpxe.com

    sera exécutée avec l'erreur : Démarrage du noyau échoué : Mauvais numéro de fichier
    Pour PXELINUX, l'extension du fichier de démarrage doit être définie conformément au tableau.

    aucune ou autre	image du noyau Linux
     .0		programme de démarrage PXE (NBP) [uniquement PXELINUX]
     .bin		"secteur de démarrage du CD" [uniquement ISOLINUX]
     .bs		Secteur de démarrage [uniquement SYSLINUX]
     .bss		Secteur de démarrage, le superbloc DOS sera patché [uniquement SYSLINUX]
     .c32		image COM32 (COMBOOT 32 bits)
     .cbt		image COMBOOT (non exécutable à partir de DOS)
     .com		image COMBOOT (exécutable à partir de DOS)
     .img		image disque [uniquement ISOLINUX]
    

    Source : http://www.syslinux.org/wiki/index.php/SYSLINUX#KERNEL_file section "Fichier du noyau"

  • Pour éviter d'appuyer plusieurs fois sur la touche F12 lors du démarrage de SCCM via le menu, nous renommons pxeboot.com en pxeboot.com.f12, copions pxeboot.n12 dans pxeboot.com
    Si cela n'est pas fait, à chaque sélection nous recevrons ce message
    Menu de démarrage PXE avec System Center Configuration Manager
    Remarque : N'oublions pas de renommer ces fichiers dans le dossier pour x64 car lors du démarrage x86wdsnbp.com depuis le dossier x86, le chargeur détermine l'architecture du processeur et le fichier suivant est déjà chargé à partir du dossier de l'architecture correspondante. Ainsi, pour x64, le fichier suivant ne sera pas x86pxeboot.com, et x64pxeboot.com
  • Téléchargeons/créons background.png, résolution 640x480, copions dans le même dossier. Créons un dossier ISO dans lequel nous allons placer les images ISO. Créons un dossier pxelinux.cfg pour les configurations.
  • Dans le dossier pxelinux.cfg, créons un fichier default, dans un encodage non Unicode, avec le contenu
    default (Cliquez pour afficher)
    # используем графическое меню
    DEFAULT vesamenu.c32
    PROMPT 0
    timeout 80
    TOTALTIMEOUT 9000
    
    MENU TITLE PXE Boot Menu (x86)
    MENU INCLUDE pxelinux.cfg/graphics.conf
    MENU AUTOBOOT Starting Local System in 8 seconds
    
    # Boot local HDD (default)
    LABEL bootlocal
    menu label Boot Local
    menu default
    localboot 0x80
    # if it doesn't work 
    #kernel chain.c32
    #append hd0
    
    # Вход в меню по паролю Qwerty, алгоритм MD5
    label av
    menu label Antivirus and tools
    menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0
    kernel vesamenu.c32
    append pxelinux.cfgav.conf 
    
    label sccm
    menu label Start to SCCM
    COM32 pxechn.c32
    APPEND sccm2012.test.local::smsbootx86wdsnbp.com -W
    
    label pxe64
    menu label Start to x64 pxelinux
    COM32 pxechn.c32
    APPEND sccm2012.test.local::smsbootx64pxelinux.com
    
    LABEL Abort
    MENU LABEL Exit
    KERNEL abortpxe.0

    Dans le dossier pxelinux.cfg créons un fichier graphics.conf avec le contenu
    graphics.conf (Cliquez pour afficher)

    MENU MARGIN 10
    MENU ROWS 16
    MENU TABMSGROW 21
    MENU TIMEOUTROW 26
    MENU COLOR BORDER 30;44 #00000000 #00000000 none
    MENU COLOR SCROLLBAR 30;44 #00000000 #00000000 none
    MENU COLOR TITLE 0 #ffffffff #00000000 none
    MENU COLOR SEL 30;47 #40000000 #20ffffff
    MENU BACKGROUND background.png
    NOESCAPE 0
    ALLOWOPTIONS 0

    Dans le dossier pxelinux.cfg créons un fichier av.conf avec le contenu
    av.conf (Cliquez pour afficher)

    DEFAULT vesamenu.c32
    PROMPT 0
    MENU TITLE Antivirus et outils
    MENU INCLUDE pxelinux.cfg/graphics.conf
    
    label main menu
    menu label retourner au menu principal
    kernel vesamenu.c32
    append pxelinux.cfg/default
    
    label drweb
    menu label DrWeb
    kernel memdisk
    append iso raw initrd=isodrweb.iso
    
    label eset
    menu label Eset
    kernel memdisk
    append iso raw initrd=isoeset_sysrescue.iso
    
    label kav
    menu label KAV Rescue CD
    KERNEL kav/rescue
    APPEND initrd=kav/rescue.igz root=live rootfstype=auto vga=791 init=/init kav_lang=ru udev liveimg doscsi nomodeset quiet splash
    
    #Nous chargeons l'ISO par le chemin complet, il est possible de charger depuis un autre TFTP
    label winpe
    menu label WinPE depuis un autre TFTP
    kernel sccm2012.test.local::smsbootx86memdisk
    append iso raw initrd=sccm2012.test.local::smsbootx86isoWinPE_RaSla.iso
    
    label clonezilla
    menu label Clonezilla
    kernel memdisk
    append iso raw initrd=isoclonezilla.iso
    
  • En fin de compte, le répertoire c:remoteinstallsmsbootx86 contient la structure

    c:remoteinstallsmsbootx86
    pxelinux.cfg

    chain.c32
    ldlinux.c32
    libcom32.c32
    libutil.c32
    pxechn.c32
    vesamenu.c32
    pxelinux.com
    background.png
    pxelinux.cfg
    pxelinux.cfg
    pxelinux.cfg
    ISO
    abortpxe.0
    wdsnbp.com
    bootmgfw.efi
    wdsmgfw.efi
    bootmgr.exe
    pxeboot.n12
    pxeboot.com
    abortpxe.com

    default
    av.conf
    graphics.conf
    *.iso

  • Pour l'architecture x64, nous copions également et créons une structure identique dans le dossier c:remoteinstallsmsbootx64

Module complémentaire
Lors de l'utilisation de la commande menu PASSWD le mot de passe peut être défini tel quel ou utiliser un algorithme de hachage, en ajoutant au début du paramètre la signature correspondante

L'algorithme
Signature

MD5
$1$

SHA-1
$4$

SHA-2-256
$5$

SHA-2-512
$6$

Ainsi, pour le mot de passe Qwerty et l'algorithme MD5

menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0

Vous pouvez générer un mot de passe, par exemple, via un générateur de hachage en ligne www.insidepro.com/hashes.php?lang=fr, ligne MD5(Unix)

2. Configurer le démarrage PXELinux

Nous allons maintenant indiquer comment démarrer pxelinux.com et obtenir le menu.
L'indication du chargeur pxelinux.com via la fonctionnalité WDS ne fonctionne pas dans SCCM. Les commandes de type

wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86

ne sont pas traitées. Pour vous assurer que les images de démarrage ne sont pas spécifiées, vous pouvez exécuter la commande pour afficher la configuration du serveur WDS

wdsutil /get-server /show:images

Menu de démarrage PXE avec System Center Configuration Manager
Ainsi, dans SCCM 2012, il n'est pas possible de spécifier votre propre fichier de démarrage via PXE pour le fournisseur SMSPXE. Nous allons donc configurer la portée active du serveur DHCP.
Dans les paramètres de la portée active DHCP, nous définissons les paramètres conformément au tableau

Option DHCP
Nom du paramètre
Valeur

066
Nom d'hôte du serveur de démarrage
sccm2012.test.local

067
Nom du fichier de démarrage
smsbootx86pxelinux.com

006
Serveurs DNS
192.168.57.10

015
Nom de domaine DNS
test.local

Dans l'option 066, nous spécifions le nom FQDN du serveur SCCM, dans l'option 067, nous spécifions le chemin jusqu'au chargeur pxelinux.com x86 à partir de la racine TFTP, dans l'option 006, nous spécifions l'adresse IP du serveur DNS. Si l'option 066 utilise un nom court pour le serveur, dans l'option 015, nous spécifions le suffixe DNS du domaine.

Module complémentaire
Mvgolubev a décrit en détail la configuration DHCP mvgolubev ici. Mais dans DC l'option 150, l'adresse IP du serveur TFTP, était absente des paramètres de la portée DHCP et l'indication de l'option 150 via netsh ne fonctionnait pas.Menu de démarrage PXE avec System Center Configuration Manager

3. Vérification du fonctionnement

Les paramètres principaux sont terminés et nous pouvons commencer la vérification. Nous indiquons sur l'ordinateur de test dans le BIOS de démarrer par réseau et nous entrons dans le menu
Menu de démarrage PXE avec System Center Configuration Manager

Sélectionnez l'option «Démarrer vers SCCM» et si une séquence de tâches est assignée à l'ordinateur, une fenêtre «Assistant de création de séquence de tâches» apparaîtra après un certain temps avec une demande d'entrée de mot de passe
Menu de démarrage PXE avec System Center Configuration Manager

Nous redémarrons la machine, entrons à nouveau dans le menu, choisissons dans le menu «Antivirus et outils» et entrons le mot de passe Qwerty
Menu de démarrage PXE avec System Center Configuration Manager

Nous choisissons un élément aléatoire et observons le chargement de l'image ISO en mémoire
Menu de démarrage PXE avec System Center Configuration Manager

Nous attendons et observons le résultat
Menu de démarrage PXE avec System Center Configuration Manager

Vérification terminée
Menu de démarrage PXE avec System Center Configuration Manager

4. Paramètres supplémentaires et particularités

Configuration du routage

Si le client, le serveur DHCP et le serveur contenant le chargeur réseau se trouvent dans le même segment de réseau, aucune configuration supplémentaire n'est nécessaire. Cependant, si le client et le serveur DHCP ou le serveur WDS/SCCM se trouvent dans des segments de réseau différents, il est recommandé de configurer la redirection des paquets de diffusion depuis le client vers le serveur DHCP actif et le serveur WDS/SCCM actif sur les routeurs. Dans la littérature anglophone, ce processus est connu sous le nom de « mises à jour de la table IP Helper ». Dans ce cas, après avoir obtenu une adresse IP, le client communique directement avec le serveur contenant le chargeur réseau via des paquets DHCP pour télécharger le chargeur réseau.
Pour les routeurs Cisco, la commande utilisée est

ip helper-address {ip address}

où {ip address} adresse du serveur DHCP ou du serveur WDS/SCCM. En utilisant cette commande, les paquets UDP de diffusion suivants sont également transférés

Port
Protocole

69
TFTP

53
Domain Name System (DNS)

37
Service de temps

137
Serveur de noms NetBIOS

138
Serveur de datagrammes NetBIOS

67
Bootstrap Protocol (BOOTP)

49
TACACS

La deuxième méthode pour que le client obtienne des informations sur le chargeur réseau directement du serveur DHCP consiste à spécifier les options 60, 66, 67 sur le serveur DHCP. L'utilisation du paramètre DHCP 60 avec la valeur « PXEClient » s'applique à tous les domaines d'application DHCP, uniquement si le serveur DHCP est hébergé sur le même serveur que les services de déploiement de Windows. Dans ce cas, le client se connecte au serveur des services de déploiement de Windows directement via le protocole TFTP sur le port UDP 4011, et non via DHCP. Cette méthode n'est pas recommandée par Microsoft en raison de problèmes d'équilibrage de charge, de traitement incorrect des paramètres DHCP et des réponses des services de déploiement de Windows du côté client. Elle est également déconseillée car l'utilisation uniquement des deux options 66 et 67 DHCP permet de contourner les paramètres définis sur le serveur de chargeur réseau.
Il est également nécessaire d'ouvrir les ports UDP suivants sur le serveur des services de déploiement de Windows
port 67 (DHCP)
port 69 (TFTP)
port 4011 (PXE)
et le port 68, si l'autorisation DHCP est requise sur le serveur.

Le processus de configuration et les subtilités de la redirection entre différents serveurs WDS sont décrits plus en détail ci-dessous dans les sources :
Gestion des programmes de démarrage réseau http://technet.microsoft.com/ru-ru/library/cc732351(v=ws.10).aspx
Gestion du serveur http://technet.microsoft.com/ru-ru/library/cc770637(v=ws.10).aspx
Limites de support des services de support produit Microsoft (PSS) pour le démarrage de Microsoft Windows Preinstallation Environment (Windows PE) 2.0 http://support.microsoft.com/kb/926172/en-us
Comment rediriger la diffusion UDP (BOOTP / DHCP) sur Cisco http://www.cisco-faq.com/163/forward_udp_broadcas.html
Caractéristiques de fonctionnement et de configuration de DHCP sur les routeurs Cisco (Partie 2) http://habrahabr.ru/post/89997/

Fonctionnalités supplémentaires de démarrage local

Dans l'environnement de test, la commande

localboot 0

affiche cette erreur
Menu de démarrage PXE avec System Center Configuration Manager
Selon la documentation de syslinux, il

localboot 0

démarrera à partir du disque local. En spécifiant la valeur exacte 0x00 pour le disque floppy principal, et 0x80 pour le disque dur principal. En modifiant la commande en

localboot 0x80

le système d'exploitation local a démarré.
S'il est nécessaire de démarrer à partir d'un disque, d'une partition ou si la commande localboot ne fonctionne pas, alors il est possible d'utiliser les fonctionnalités du module chain.c32. Après son chargement, la commande append spécifie le disque ou la partition exacte, la numérotation des disques commence à 0, la numérotation des partitions à 1, car en spécifiant la partition 0, le MBR est chargé. Le disque n'a pas besoin d'être spécifié.

KERNEL chain.c32
APPEND hd0 0

ou

KERNEL chain.c32
APPEND hd0

Sources : http://www.syslinux.org/wiki/index.php/SYSLINUX#LOCALBOOT_type_.5BISOLINUX.2C_PXELINUX.5D
http://www.gossamer-threads.com/lists/syslinux/users/7127

Ordre et description du chargement des fichiers via PXE

Comme mentionné au début de l'article, le répertoire contenant les fichiers WDS pour le chargement est spécifié dans la valeur du paramètre RootFolder dans la branche du registre HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Valeur par défaut C:RemoteInstall
Ici, dans le paramètre ReadFilter sont indiqués les répertoires où le serveur TFTP recherche les fichiers à charger, à partir de la racine. Lorsque SCCM 2012 SP1 est installé, ce paramètre est

boot*
tmp*
SMSBoot*
SMSTemp*
SMSImages*

Si la valeur du paramètre est modifiée en * tous les fichiers situés dans le répertoire RemoteInstall.

Le rôle du point de déploiement SCCM 2012 est inscrit dans le paramètre du registre ProvidersOrder, situé dans la branche HKLMSystemCurrentControlSetWDSServerProvidersWDSPXE
Paramètre ProvidersOrder peut prendre les valeurs

SMSPXE
point de service PXE dans SCCM

SMS.PXE.Filter
Gestionnaire des scripts PXE provenant de MDT (Microsoft Deployment Toolkit)

BINLSVC
Gestionnaire standard de WDS et RIS

Lorsque SCCM est installé, le paramètre ProvidersOrder a de l'importance SMSPXE. En modifiant le paramètre, il est possible de changer l'ordre de chargement des fournisseurs.

Dans le répertoire RemoteInstall les fichiers standards suivants sont situés

wdsnbp.com

Programme de chargement réseau, conçu pour les services de déploiement Windows et exécutant les tâches suivantes :
1. Détection de l'architecture.
2. Gestion des ordinateurs en attente. Lorsque la politique d'ajout automatique est activée, ce programme de chargement réseau est envoyé aux ordinateurs en attente pour suspendre le chargement réseau et informer le serveur de l'architecture de l'ordinateur client.
3. Utilisation des liens de chargement réseau (y compris l'utilisation des paramètres 66 et 67 du protocole DHCP)

PXEboot.com

(Par défaut) Nécessite que l'utilisateur appuie sur la touche F12 pour continuer le chargement réseau

PXEboot.n12

Ne nécessite pas que l'utilisateur appuie sur la touche F12 et commence immédiatement le chargement réseau

AbortPXE.com

Charge l'ordinateur en utilisant l'élément de démarrage suivant dans le BIOS sans attendre

Bootmgr.exe

Gestionnaire de démarrage Windows (Bootmgr.exe ou Bootmgr.efi). Charge à l'aide du firmware le chargeur Windows à partir d'une partition de disque spécifique ou via une connexion réseau (en cas de chargement réseau)

Bootmgfw.efi

Version EFI des programmes PXEboot.com et PXEboot.n12 (dans EFI, la décision de charger ou non PXE se fait dans l'interface EFI, et non par le programme de démarrage réseau). Le programme Bootmgfw.efi combine les fonctionnalités de PXEboot.com, PXEboot.n12, abortpxe.com et bootmgr.exe. Actuellement, elle n'existe que pour les architectures x64 et Itanium

Default.bcd

Magasin de données de configuration de démarrage (BCD), format REGF, peut être chargé dans REGEDIT, remplace le fichier texte Boot.ini

Le démarrage se déroule dans l'ordre suivant conformément à la description ci-dessus
1. wdsnbp.com est chargé.
2. Ensuite, pxeboot.com de l'architecture correspondante est chargé
3. PXEBoot.com charge bootmgr.exe et le magasin de données de configuration de démarrage BCD
4. Bootmgr.exe lit les entrées du système d'exploitation à partir des données de configuration de démarrage BCD et charge le fichier Boot.sdi et l'image Windows PE (boot.wim)
5. Bootmgr.exe commence à charger Windows PE en appelant Winload.exe dans l'image Windows PE

Si dans RemoteInstall il y a des dossiers

Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend

leur présence signifie qu'une action de configuration a eu lieu sur les Services de déploiement Windows (WDS) installés avant l'ajout du rôle de point de distribution dans SCCM 2012 (points de service PXE dans SCCM 2007), ce qui a entraîné la création automatique de ces dossiers.
Pour le rôle de point de distribution (point de service PXE dans SCCM 2007), seuls les dossiers suivants sont requis

SMSBoot
SMSIMAGES
SMSTemp
Stores

Cela ne signifie pas que SCCM est mal installé, mais cela peut indiquer une source potentielle d'erreurs.
La résolution des divers problèmes liés à WDS, SCCM et PXE est très détaillée dans l'article Troubleshooting the PXE Service Point and WDS in Configuration Manager 2007

Conclusion

Une nouvelle outil a été ajoutée à l'infrastructure informatique gérée par System Center Configuration Manager pour le travail des administrateurs système sur le terrain.

Liste des liens vers les images ISO (Cliquez pour afficher)download.f-secure.com/estore/rescue-cd-3.16-52606.iso
git.ipxe.org/releases/wimboot/wimboot-latest.zip
download.geo.drweb.com/pub/drweb/livecd/drweb-livecd-602.iso
rescuedisk.kaspersky-labs.com/rescuedisk/updatable/kav_rescue_10.iso
esetsupport.ru/eset_sysrescue.iso
boot.ipxe.org/ipxe.iso
citylan.dl.sourceforge.net/project/clonezilla/clonezilla_live_alternative/20130226-quantal/clonezilla-live-20130226-quantal-i386.iso
ftp.rasla.ru/_Distr_/WinPE/RaSla/WinPE_RaSla.iso
www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.01.zip

Merci de votre attention !
Menu de démarrage PXE avec System Center Configuration Manager

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster