Opstartmenu PXE met System Center Configuration Manager

Opstartmenu PXE met System Center Configuration Manager

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 RootFolder in the branch HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
    Standaardwaarde C:RemoteInstall
    The files for booting from the SCCM deployment point are located in the directories smsbootx86 en smsbootx64 depending on the architecture.
    First, we configure the directory for the 32-bit architecture, by default c:Remoteinstallsmsbootx86
  • We download the archive with the latest syslinux . We copy the following files from syslinux-5.01.zip into c:Remoteinstallsmsbootx86 the 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
    Opstartmenu PXE met System Center Configuration Manager
  • In c:Remoteinstallsmsbootx86 we rename pxelinux.0 in pxelinux.com
    In de map c:remoteinstallsmsbootx86 we make a copy of abortpxe.com and rename it to abortpxe.0
    If you do not rename it to the extension .0, then, for example, the instruction
    Kernel abortpxe.com

    will be executed with the error: Booting kernel failed: Bad file number
    For PXELINUX, the file extension for booting should be set according to the table

    geen 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: http://www.syslinux.org/wiki/index.php/SYSLINUX#KERNEL_file 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
    Opstartmenu PXE met System Center Configuration Manager
    Opmerking: Vergeet niet deze bestanden ook in de x64-map te hernoemen, omdat wanneer wordt opgestart x86wdsnbp.com uit 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 niet x86pxeboot.com, met behulp van 1 bit, gelijk aan 0, x64pxeboot.com
  • Downloaden/aanmaken background.png, met een resolutie van 640x480, kopieer het naar dezelfde map. Maak een map aan ISO waar we de ISO-afbeeldingen zullen plaatsen. Maak een map aan pxelinux.cfg voor 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.0

    In de map pxelinux.cfg we maken een bestand graphics.conf met 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 0

    In de map pxelinux.cfg we maken een bestand av.conf met 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.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

  • Voor de architectuur x64 kopiëren we ook en maken eenzelfde structuur in de map c:remoteinstallsmsbootx64

Aanvulling
Bij het gebruik van het commando menu PASSWD kan 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 voegen

Algoritme
Handtekening

MD5
$1$

SHA-1
$4$

SHA-2-256
$5$

SHA-2-512
$6$

Dus voor het wachtwoord Qwerty en het algoritme MD5

menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0

Je kunt een wachtwoord genereren, bijvoorbeeld met een online hashgenerator. www.insidepro.com/hashes.php?lang=rus, 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

Opstartmenu PXE met System Center Configuration Manager
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 mvgolubev hier. Maar in DC optie 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.Opstartmenu PXE met System Center Configuration Manager

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
Opstartmenu PXE met System Center Configuration Manager

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.
Opstartmenu PXE met System Center Configuration Manager

We starten de machine opnieuw op, gaan weer naar het menu, kiezen in het menu «Antivirus en tools» en voeren het wachtwoord in. Qwerty
Opstartmenu PXE met System Center Configuration Manager

We selecteren een willekeurig item en zien de ISO-afbeelding in het geheugen worden geladen.
Opstartmenu PXE met System Center Configuration Manager

We wachten en observeren het resultaat.
Opstartmenu PXE met System Center Configuration Manager

De controle is voltooid.
Opstartmenu PXE met System Center Configuration Manager

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 http://technet.microsoft.com/ru-ru/library/cc732351(v=ws.10).aspx
Serverbeheer http://technet.microsoft.com/ru-ru/library/cc770637(v=ws.10).aspx
Microsoft Product Support Services (PSS) ondersteuningsgrenzen voor netwerkopstarten van Microsoft Windows Preinstallation Environment (Windows PE) 2.0 http://support.microsoft.com/kb/926172/en-us
Hoe UDP-broadcast (BOOTP / DHCP) op Cisco door te sturen http://www.cisco-faq.com/163/forward_udp_broadcas.html
Uitdagingen en configuraties van DHCP op Cisco-routers (Deel 2) http://habrahabr.ru/post/89997/

Extra mogelijkheden voor lokale opstart

In de testomgeving is het commando

localboot 0

geeft deze foutmelding
Opstartmenu PXE met System Center Configuration Manager
Uit de syslinux-documentatie volgt dat bij

localboot 0

de 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 0

of

KERNEL chain.c32
APPEND hd0

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

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
Stores

Dit 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 Troubleshooting the PXE Service Point and WDS in Configuration Manager 2007

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)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

Bedankt voor uw aandacht!
Opstartmenu PXE met System Center Configuration Manager

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster