
We consider the expansion of System Center Configuration Manager (a product for managing IT infrastructure) when booting user PCs over the network using PXE. We create a boot menu based on PXELinux with System Center functionality and add capabilities for antivirus checks, diagnostic and recovery images. At the end of the article, we discuss the specifics of running System Center 2012 Configuration Manager together with Windows Deployment Services (WDS) for PXE booting.
All actions are performed in a test environment where System Center 2012 Configuration Manager SP1, a domain controller, and a number of test machines are already installed. It is assumed that SCCM already uses network deployment using PXE.
Inleiding
The test environment consists of several virtual machines. All machines have the guest OS Microsoft Windows Server 2008 R2 (x64), network adapter E1000, SCSI Controller: LSI Logic SAS
Name (Roles)
IP address / DNS name
Functionaliteit
SCCM (System Center Configuration Manager)
192.168.57.102
sccm2012.test.local
System Center Configuration Manager 2012 SP1 is installed
DC (AD, DHCP, DNS)
192.168.57.10
dc1.test.local
Role of domain controller, DHCP server, and DNS server
TEST (Test machine)
192.168.57.103
test.test.local
Voor testing
GW (Gateway)
192.168.57.1
Routing between networks. Role of the gateway
1. Add PXELinux to SCCM
Actions are performed on the machine where System Center Configuration Manager is installed
- We determine the directory where the WDS boot files are located, for this we check the parameter value in the registry
RootFolderin the branchHKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
StandaardwaardeC:RemoteInstall
The files for booting from the SCCM deployment point are located in the directoriessmsbootx86ensmsbootx64depending on the architecture.
First, we configure the directory for the 32-bit architecture, by defaultc:Remoteinstallsmsbootx86 - We download the archive with the latest . We copy the following files from syslinux-5.01.zip into
c:Remoteinstallsmsbootx86the following files:
memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
Additional files are needed to avoid such an error
- In
c:Remoteinstallsmsbootx86we renamepxelinux.0inpxelinux.com
In de mapc:remoteinstallsmsbootx86we make a copy ofabortpxe.comand rename it toabortpxe.0
If you do not rename it to the extension.0, then, for example, the instructionKernel abortpxe.comwill be executed with the error: Booting kernel failed: Bad file number
For PXELINUX, the file extension for booting should be set according to the tablegeen of anders Linux kernel afbeelding .0 PXE bootstrap programma (NBP) [alleen PXELINUX] .bin "CD opstartsector" [alleen ISOLINUX] .bs Opstartsector [alleen SYSLINUX] .bss Opstartsector, DOS superblock zal worden gepatched [alleen SYSLINUX] .c32 COM32 afbeelding (32-bits COMBOOT) .cbt COMBOOT afbeelding (niet uitvoerbaar vanaf DOS) .com COMBOOT afbeelding (uitvoerbaar vanaf DOS) .img Schijfafbeelding [alleen ISOLINUX]Bron: sectie “Kernelbestand”
- Om te voorkomen dat we meerdere keren op F12 moeten drukken bij het opstarten van SCCM via het menu, hernoemen we pxeboot.com naar pxeboot.com.f12, en kopiëren we pxeboot.n12 naar pxeboot.com
Als je dit niet doet, krijgen we bij elke selectie deze melding
Opmerking: Vergeet niet deze bestanden ook in de x64-map te hernoemen, omdat wanneer wordt opgestartx86wdsnbp.comuit de x86-map, bepaalt de opstarter de processorarchitectuur en laadt het volgende bestand al uit de map van de overeenkomstige architectuur. Dus voor x64 zal het volgende bestand nietx86pxeboot.com, met behulp van 1 bit, gelijk aan 0,x64pxeboot.com - Downloaden/aanmaken , met een resolutie van 640x480, kopieer het naar dezelfde map. Maak een map aan
ISOwaar we de ISO-afbeeldingen zullen plaatsen. Maak een map aanpxelinux.cfgvoor configuraties. - In de map pxelinux.cfg maken we een bestand default, in niet-Unicode codering, met de inhoud
default (Klik om weer te geven)# используем графическое меню 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.0In de map
pxelinux.cfgwe maken een bestandgraphics.confmet de inhoud
graphics.conf (Klik om weer te geven)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 0In de map
pxelinux.cfgwe maken een bestandav.confmet de inhoud
av.conf (Klik om weer te geven)DEFAULT vesamenu.c32 PROMPT 0 MENU TITLE Antivirus en tools MENU INCLUDE pxelinux.cfg/graphics.conf label hoofdmenu menu label terug naar hoofdmenu 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 #Laad de ISO via het volledige pad, het is mogelijk om te laden vanaf een andere TFTP label winpe menu label WinPE van een andere 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 - Uiteindelijk bevat de map c:remoteinstallsmsbootx86 de structuur
c:remoteinstallsmsbootx86
pxelinux.cfgchain.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.comdefault
av.conf
graphics.conf
*.iso - Voor de architectuur x64 kopiëren we ook en maken eenzelfde structuur in de map
c:remoteinstallsmsbootx64
Aanvulling
Bij het gebruik van het commandomenu PASSWDkan het wachtwoord worden ingesteld zoals het is, of kan een hash-algoritme worden gebruikt door de bijbehorende handtekening aan het begin van de parameter toe te voegenAlgoritme
HandtekeningMD5
$1$SHA-1
$4$SHA-2-256
$5$SHA-2-512
$6$Dus voor het wachtwoord
Qwertyen het algoritme MD5menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0Je kunt een wachtwoord genereren, bijvoorbeeld met een online hashgenerator. , regel
MD5(Unix)
2. PXELinux configureren
Laten we nu aangeven hoe we pxelinux.com kunnen opstarten en het menu kunnen ontvangen.
Het aanwijzen van de pxelinux.com bootloader via de WDS-functionaliteit werkt niet in SCCM. Aanroepen zoals
wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86
worden niet verwerkt. Zorg ervoor dat er geen opstartafbeeldingen zijn gedefinieerd door het uitvoeringscommando van de WDS-serverconfiguratie uit te voeren.
wdsutil /get-server /show:images
Dus in SCCM 2012 is het niet mogelijk om je eigen bestand voor opstarten via PXE aan te wijzen voor de SMSPXE-provider. Daarom gaan we de actieve scope van de DHCP-server configureren.
In de parameters van de actieve DHCP-scope stellen we de parameters in volgens de tabel
DHCP-optie
Naam van de parameter
Waarde
066
Bootserver hostnaam
sccm2012.test.local
067
Bootfile naam
smsbootx86pxelinux.com
006
DNS-servers
192.168.57.10
015
DNS-domeinnaam
test.local
In optie 066 geven we de FQDN-naam van de sccm-server op, in optie 067 de pad naar de x86 bootloader pxelinux.com beginnend vanaf de root van TFTP, en in optie 006 het IP-adres van de DNS-server. Als in optie 066 een korte naam van de server wordt gebruikt, geven we in optie 015 de DNS-suffix van het domein op.
Aanvulling
De DHCP-configuratie is gedetailleerd beschreven door . Maar inDCoptie 150, het IP-adres van de TFTP-server, ontbrak in de instellingen van de DHCP-scope en het instellen van optie 150 via netsh werkte niet.
3. Functionaliteitstest
De basisinstellingen zijn voltooid en we kunnen beginnen met testen. We geven aan dat de testcomputer in de BIOS netwerkt moet opstarten en starten in het menu
Selecteer de optie «Start to SCCM» en als de computer een reeks taken toegewezen heeft gekregen, verschijnt na enige tijd het venster «Wizards voor het maken van een taakreeks» met de vraag om een wachtwoord in te voeren.

We starten de machine opnieuw op, gaan weer naar het menu, kiezen in het menu «Antivirus en tools» en voeren het wachtwoord in. Qwerty
We selecteren een willekeurig item en zien de ISO-afbeelding in het geheugen worden geladen.
We wachten en observeren het resultaat.
De controle is voltooid.

4. Extra instellingen en kenmerken
Routeringsinstelling.
Als de cliënt, DHCP-server en server met de netwerklader zich in hetzelfde netwerksegment bevinden, is er geen extra configuratie nodig. Als de cliënt en de DHCP-server of de WDS/SCCM-server in verschillende netwerksegmenten zijn, is het aan te raden om op de routers de doorsturing van broadcast-pakketten van de cliënt naar de actieve DHCP-server en de actieve WDS/SCCM-server in te stellen. In Engelstalige literatuur staat dit proces bekend als 'IP Helper table updates'. In dit geval neemt de cliënt, na het ontvangen van een IP-adres, rechtstreeks contact op met de server die de netwerklader bevat via DHCP-pakketten om de netwerklader te downloaden.
Voor Cisco-routers wordt het commando gebruikt
ip helper-address {ip address}
waar {ip address} het IP-adres van de DHCP-server of de WDS/SCCM-server. Bij het gebruik van deze opdracht worden ook de volgende broadcast-UDP-pakketten doorgestuurd
Poort
Protocol
69
TFTP
53
Domain Name System (DNS)
37
Tijdservice
137
NetBIOS-naamserver
138
NetBIOS-datagramserver
67
Bootstrap Protocol (BOOTP)
49
TACACS
Een tweede methode voor de cliënt om informatie over de netwerklader rechtstreeks van de DHCP-server te krijgen, is door de opties 60, 66, 67 op de DHCP-server in te stellen. Het gebruik van DHCP-parameter 60 met de waarde "PXEClient" in alle toepassingsgebieden van DHCP, alleen als de DHCP-server zich op dezelfde server bevindt als de Windows uitroldiensten. In dit geval maakt de cliënt rechtstreeks verbinding met de Windows uitrolserver via het TFTP-protocol over UDP-poort 4011, en niet via DHCP. Deze methode wordt door Microsoft niet aanbevolen vanwege problemen met load balancing, onjuiste verwerking van DHCP-parameters en antwoordparameters van de Windows uitroldiensten aan de cliëntzijde. Ook omdat het gebruik van alleen de twee opties 66 en 67 DHCP de parameters op de netwerklader-server kan omzeilen.
Daarnaast moeten de volgende UDP-poorten op de Windows uitrolserver worden geopend
poort 67 (DHCP)
poort 69 (TFTP)
poort 4011 (PXE)
en poort 68 als DHCP-authenticatie op de server vereist is.
Het proces voor configuratie en de nuances van doorsturen tussen verschillende WDS-servers worden hieronder in de bronnen beschreven:
Beheer van netwerkladers
Serverbeheer
Microsoft Product Support Services (PSS) ondersteuningsgrenzen voor netwerkopstarten van Microsoft Windows Preinstallation Environment (Windows PE) 2.0
Hoe UDP-broadcast (BOOTP / DHCP) op Cisco door te sturen
Uitdagingen en configuraties van DHCP op Cisco-routers (Deel 2)
Extra mogelijkheden voor lokale opstart
In de testomgeving is het commando
localboot 0 geeft deze foutmelding

Uit de syslinux-documentatie volgt dat bij
localboot 0de opstart zal plaatsvinden vanaf de lokale schijf. En bij het opgeven van de specifieke waarde 0x00 vanaf de primaire floppy-schijf, en bij het opgeven van 0x80 vanaf de primaire harde schijf. Door de opdracht te wijzigen naar
localboot 0x80 is het lokale besturingssysteem opgestart.
Als het nodig is om op te starten vanaf een specifieke schijf, partitie of als de opdracht localboot niet werkt, dan kan gebruik worden gemaakt van de mogelijkheden van de module chain.c32. Na het opstarten geven we met de append-opdracht de specifieke schijf of partitie op, waarbij de nummering van schijven begint bij 0 en de nummering van partities bij 1, omdat bij het opgeven van partitie 0 de MBR wordt geladen. Bij het opgeven van een schijf is het niet nodig om de partitie op te geven.
KERNEL chain.c32
APPEND hd0 0of
KERNEL chain.c32
APPEND hd0 Bronnen:
De volgorde en beschrijving van het opstarten van bestanden via PXE
Zoals eerder vermeld in dit artikel, bevindt de map waar de WDS-bestanden voor opstarten zich, zich in de waarde van de parameter RootFolder in de registerboom HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Standaardwaarde C:RemoteInstall
Hierin is ook de parameter ReadFilter opgegeven, waar de TFTP-server zoekt naar opstartbestanden, beginnend vanuit de root. Bij een geïnstalleerd SCCM 2012 SP1 is deze parameter als volgt
boot*
tmp*
SMSBoot*
SMSTemp*
SMSImages* Als de waarde van de parameter wordt gewijzigd naar * dan worden alle bestanden in de map RemoteInstall.
De rol van de SCCM-distributiepunt wordt vastgelegd in de registerparameter ProvidersOrder, gelegen in de tak HKLMSystemCurrentControlSetWDSServerProvidersWDSPXE
Parameter ProvidersOrder kan de volgende waarden aannemen
SMSPXE
de PXE-servicepunt in SCCM
SMS.PXE.Filter
De PXE-scriptverwerker uit MDT (Microsoft Deployment Toolkit)
BINLSVC
De standaardverwerker voor WDS en RIS
Bij een geïnstalleerd SCCM heeft de parameter ProvidersOrder de waarde SMSPXE. Door de parameter te wijzigen kan de opstartvolgorde van de leveranciers worden veranderd.
In de map RemoteInstall de volgende standaardbestanden zijn aanwezig
wdsnbp.com
Het netwerk opstartprogramma, ontwikkeld voor Windows-distributiediensten en die de volgende taken uitvoert:
1. Detectie van architectuur.
2. Ondersteuning van wachtende computers. Wanneer het beleid voor automatisch toevoegen is ingeschakeld, wordt dit netwerk opstartprogramma naar wachtende computers gestuurd om de netopstart te pauzeren en de server de architectuur van de clientcomputer te laten weten.
3. Gebruik van netwerk opstartlinks (inclusief het gebruik van parameters 66 en 67 van het DHCP-protocol)
PXEboot.com
(Standaard) Vereist dat de gebruiker op de toets F12 drukt om door te gaan met het netwerk opstarten
PXEboot.n12
Vereist geen druk op de F12-toets door de gebruiker en begint onmiddellijk met netwerken opstarten
AbortPXE.com
Start de computer op met het volgende opstartelement in de BIOS zonder te wachten
Bootmgr.exe
Windows Boot Manager (Bootmgr.exe of Bootmgr.efi). Laadt met behulp van de firmware de Windows-opstartloader vanaf een specifieke schijfpartitie of via een netwerkverbinding (in geval van netwerken opstarten)
Bootmgfw.efi
De EFI-versie van de programma's PXEboot.com en PXEboot.n12 (in EFI wordt de keuze om wel of niet te starten op PXE gemaakt in de EFI-shell, niet door het netwerk opstartprogramma). Het programma Bootmgfw.efi combineert de mogelijkheden van PXEboot.com, PXEboot.n12, abortpxe.com en bootmgr.exe. Voor nu bestaat het alleen voor x64- en Itanium-architecturen
Default.bcd
De Boot Configuration Data (BCD), REGF-indeling, kan worden geladen in REGEDIT, vervangt het tekstbestand Boot.ini
De opstartvolgorde verloopt als volgt volgens de bovenstaande beschrijving
1. wdsnbp.com wordt geladen.
2. Vervolgens wordt pxeboot.com van de overeenkomstige architectuur geladen
3. PXEBoot.com laadt bootmgr.exe en de Boot Configuration Data BCD
4. Bootmgr.exe leest de besturingssysteemvermeldingen van de Boot Configuration Data BCD en laadt het bestand Boot.sdi en het Windows PE-image (boot.wim)
5. Bootmgr.exe begint met het opstarten van Windows PE door Winload.exe in het Windows PE-image aan te roepen
Als er in RemoteInstall mappen zijn
Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend hun aanwezigheid betekent dat er enige configuratiehandeling is verricht op de geïnstalleerde Windows Deployment Services (WDS) voordat de rol van distributiepunt in SCCM 2012 werd toegevoegd (PXE-servicepunten in SCCM 2007), waardoor deze mappen automatisch zijn aangemaakt.
Voor de rol van distributiepunt (PXE-servicepunten in SCCM 2007) zijn alleen de volgende mappen voldoende
SMSBoot
SMSIMAGES
SMSTemp
StoresDit betekent niet dat SCCM verkeerd is geïnstalleerd, maar kan wijzen op een mogelijke foutbron.
Een gedetailleerde oplossing voor verschillende problemen met de koppeling tussen WDS, SCCM en PXE wordt besproken in het artikel
Conclusie
In de IT-infrastructuur beheerd door System Center Configuration Manager is er een nieuw hulpmiddel toegevoegd voor systeemsbeheerders op locatie.
Lijst met links naar ISO-images (Klik voor weergeven)
Bedankt voor uw aandacht!

Bron: habr.com
