
Wir betrachten die Erweiterung der Funktionen des System Center Configuration Manager (ein Produkt zur Verwaltung von IT-Infrastrukturen) beim Booten von Benutzer-PCs über das Netzwerk mithilfe von PXE. Wir erstellen ein Bootmenü basierend auf PXELinux mit den Funktionen von System Center und fügen Antivirus-Scanfunktionen, Diagnose- und Wiederherstellungsabbilder hinzu. Am Ende des Artikels erörtern wir die Besonderheiten der Zusammenarbeit von System Center 2012 Configuration Manager mit Windows Deployment Services (WDS) beim Booten über PXE.
Alle Aktionen werden in einer Testumgebung durchgeführt, in der bereits der System Center 2012 Configuration Manager SP1, ein Domänencontroller und eine Reihe von Testmaschinen installiert sind. Es wird davon ausgegangen, dass in SCCM bereits das Netzwerk-Deployment über PXE verwendet wird.
Einleitung
Die Testumgebung besteht aus mehreren virtuellen Maschinen. Auf allen Maschinen ist das Gastbetriebssystem Microsoft Windows Server 2008 R2 (x64) installiert, sowie ein E1000-Netzwerkadapter und ein SCSI-Controller: LSI Logic SAS.
Name (Rollen)
IP-Adresse / DNS-Name
Funktionalität
SCCM (System Center Configuration Manager)
192.168.57.102
sccm2012.test.local
System Center Configuration Manager 2012 SP1 ist installiert
DC (AD, DHCP, DNS)
192.168.57.10
dc1.test.local
Rolle des Domänencontrollers, DHCP-Servers und DNS-Servers
TEST (Testmaschine)
192.168.57.103
test.test.local
Zur Durchführung von Tests
GW (Gateway)
192.168.57.1
Routing zwischen Netzwerken. Rolle des Gateways
1. Fügen Sie PXELinux zu SCCM hinzu
Wir führen die Aktionen auf einem Rechner durch, auf dem der System Center Configuration Manager installiert ist.
- Wir bestimmen das Verzeichnis, in dem die WDS-Dateien für den Start gespeichert sind. Dazu prüfen wir den Wert des Parameters in der Registrierungsdatenbank.
RootFolderim ZweigHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP
StandardwertC:\RemoteInstall
Die Dateien für den Start aus dem SCCM-Bereitstellungspunkt befinden sich in den Verzeichnissensmsbootx86undsmsbootx64je nach Architektur.
Zuerst richten wir das Verzeichnis für die 32-Bit-Architektur ein, standardmäßigC:\RemoteInstall\smsbootx86 - Wir laden das Archiv mit der neuesten Version herunter. Wir kopieren aus syslinux-5.01.zip die
C:\RemoteInstall\smsbootx86folgenden Dateien:
memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
Zusätzliche Dateien sind erforderlich, um einen solchen Fehler zu vermeiden.
- In
C:\RemoteInstall\smsbootx86Wir benennenpxelinux.0inin pxelinux.com um.
Im OrdnerC:\RemoteInstall\smsbootx86machen wir eine Kopie vonabortpxe.comund benennen sie inabortpxe.0 um.
Wenn wir es nicht in diese Erweiterung umbenennen,.0dann wird beispielsweise der BefehlKernel abortpxe.commit dem Fehler ausgeführt: Booting kernel failed: Bad file number.
Für PXELINUX sollte die Dateierweiterung für das Booten gemäß der Tabelle festgelegt werden.Keine oder andere Linux-Kernel-Image .0 PXE-Bootstrap-Programm (NBP) [nur PXELINUX] .bin "CD-Bootsektor" [nur ISOLINUX] .bs Bootsektor [nur SYSLINUX] .bss Bootsektor, DOS-Superblock wird gepatcht [nur SYSLINUX] .c32 COM32-Image (32-Bit COMBOOT) .cbt COMBOOT-Image (nicht aus DOS ausführbar) .com COMBOOT-Image (aus DOS ausführbar) .img Disk-Image [nur ISOLINUX]Quelle: Abschnitt „Kernel-Datei“
- Um zu vermeiden, dass Sie beim Booten von SCCM über das Menü mehrmals die F12-Taste drücken müssen, benennen wir pxeboot.com in pxeboot.com.f12 um und kopieren pxeboot.n12 nach pxeboot.com.
Wenn dies nicht getan wird, erhalten wir jedes Mal diese Meldung bei der Auswahl.
Hinweis: Vergessen Sie nicht, diese Dateien auch im Ordner für x64 umzubenennen, da beim Bootenx86wdsnbp.comaus dem x86-Ordner der Bootloader die Architektur des Prozessors erkennt und die nächste Datei bereits aus dem Ordner mit der entsprechenden Architektur lädt. Somit wird die nachfolgende Datei für x64 nicht seinx86pxeboot.com, undx64pxeboot.com - Laden Sie herunter/erstellen Sie , mit einer Auflösung von 640x480, und kopieren Sie sie in denselben Ordner. Erstellen Sie einen Ordner
ISOin dem wir die ISO-Images ablegen werden. Erstellen Sie einen Ordnerpxelinux.cfgfür die Konfiguration. - Im Ordner pxelinux.cfg erstellen wir eine Datei default in nicht-UNICODE Kodierung mit dem Inhalt
default (Klicken Sie hier zum Anzeigen)# используем графическое меню 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.0Im Ordner
pxelinux.cfgwir erstellen eine Dateigraphics.confmit dem Inhalt
graphics.conf (Klicken Sie hier zum Anzeigen)MENÜRÄNDER 10 MENÜREIHEN 16 MENÜTABMSGREIHE 21 MENÜZEITOUTREIHE 26 MENÜFARBE RAND 30;44 #00000000 #00000000 none MENÜFARBE SCROLLBAR 30;44 #00000000 #00000000 none MENÜFARBE TITEL 0 #ffffffff #00000000 none MENÜFARBE AUSWAHL 30;47 #40000000 #20ffffff MENÜHINTERGRUND background.png KEINESCAPE 0 OPTIONENZULASSEN 0Im Ordner
pxelinux.cfgwir erstellen eine Dateiav.confmit dem Inhalt
av.conf (Klicken Sie hier zur Anzeige)STANDARD vesamenu.c32 EINGABE 0 MENÜ TITEL Antivirus und Tools MENÜ EINBEZIEHEN pxelinux.cfg/graphics.conf label hauptmenü menü label zurück zum Hauptmenü kernel vesamenu.c32 anhang pxelinux.cfg/default label drweb menü label DrWeb kernel memdisk anhang iso raw initrd=isodrweb.iso label eset menü label Eset kernel memdisk anhang iso raw initrd=isoeset_sysrescue.iso label kav menü label KAV Rescue CD KERNEL kav/rescue ANHANG initrd=kav/rescue.igz root=live rootfstype=auto vga=791 init=/init kav_lang=ru udev liveimg doscsi nomodeset ruhig splash #ISO über den vollständigen Pfad laden, kann von einem anderen TFTP geladen werden label winpe menü label WinPE von einem anderen TFTP kernel sccm2012.test.local::smsbootx86memdisk anhang iso raw initrd=sccm2012.test.local::smsbootx86isoWinPE_RaSla.iso label clonezilla menü label Clonezilla kernel memdisk anhang iso raw initrd=isoclonezilla.iso - Insgesamt enthält das Verzeichnis c:remoteinstallsmsbootx86 die Struktur
C:\RemoteInstall\smsbootx86
pxelinux.cfgchain.c32
ldlinux.c32
libcom32.c32
libutil.c32
pxechn.c32
vesamenu.c32
in pxelinux.com um.
background.png
pxelinux.cfg
pxelinux.cfg
pxelinux.cfg
ISO
abortpxe.0 um.
wdsnbp.com
bootmgfw.efi
wdsmgfw.efi
bootmgr.exe
pxeboot.n12
pxeboot.com
abortpxe.comdefault
av.conf
graphics.conf
*.iso - Für die x64-Architektur erstellen wir eine ähnliche Struktur im Ordner
c:remoteinstallsmsbootx64
Ergänzung
Bei Verwendung des Befehlsmenu PASSWDkann das Passwort entweder so gesetzt werden, wie es ist, oder es kann ein Hash-Algorithmus verwendet werden, indem das entsprechende Präfix am Anfang des Parameters hinzugefügt wird.Algorithmus
SignaturMD5
$1$SHA-1
$4$SHA-2-256
$5$SHA-2-512
$6$So ergibt sich für das Passwort
Qwertyund den Algorithmus MD5menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0Ein Passwort kann beispielsweise über einen Online-Hash-Generator erstellt werden. , Zeichenfolge
MD5(Unix)
2. PXELinux-Start einrichten
Jetzt geben wir an, wie pxelinux.com geladen und das Menü erhalten wird.
Das Angeben des Bootloaders pxelinux.com über die WDS-Funktionalität funktioniert nicht in SCCM. Befehle wie
wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86
werden nicht verarbeitet. Um sicherzustellen, dass die Boot-Images nicht festgelegt sind, führen Sie den Befehl zur Anzeige der WDS-Serverkonfiguration aus.
wdsutil /get-server /show:images
So kann in SCCM 2012 die eigene Boot-Datei für den SMSPXE-Anbieter nicht angegeben werden. Daher werden wir die aktive DHCP-Bereiche einrichten.
In den Optionen des aktiven DHCP-Bereichs legen wir die Parameter entsprechend der Tabelle fest.
DHCP-Option
Parametername
Bedeutung
066
Boot-Server-Hostnamen
sccm2012.test.local
067
Boot-Dateiname
smsbootx86pxelinux.com
006
DNS-Server
192.168.57.10
015
DNS-Domänenname
test.local
In der Option 066 geben wir den FQDN-Namen des SCCM-Servers an, in der Option 067 den Pfad zum x86-Bootloader pxelinux.com, beginnend vom TFTP-Wurzelverzeichnis, und in der Option 006 die IP-Adresse des DNS-Servers. Falls in Option 066 ein kurzer Servername verwendet wird, geben wir in Option 015 die DNS-Domänensuffix an.
Ergänzung
Eine ausführlichere Beschreibung der DHCP-Konfiguration finden Sie bei . Aber in derDCfehlte die Option 150, die IP-Adresse des TFTP-Servers, in den DHCP-Bereichseinstellungen, und die Angabe der Option 150 über netsh funktionierte nicht.
3. Funktionsprüfung
Die grundlegenden Einstellungen sind abgeschlossen und wir können mit der Überprüfung beginnen. Wir stellen im BIOS des Testrechners auf Netzwerkstart ein und booten ins Menü.
Wir wählen den Punkt „Start to SCCM“ und wenn dem Computer eine Aufgabenfolge zugewiesen ist, erscheint nach einiger Zeit das Fenster „Assistent zur Erstellung einer Aufgabenfolge“ mit der Aufforderung, ein Passwort einzugeben.

Wir starten die Maschine neu, gehen wieder ins Menü, wählen im Menü „Antivirus und Werkzeuge“ und geben das Passwort ein. Qwerty
Wir wählen einen beliebigen Punkt aus und beobachten das Laden des ISO-Images in den Speicher.
Wir warten und beobachten das Ergebnis.
Die Überprüfung ist abgeschlossen.

4. Zusätzliche Einstellungen und Besonderheiten
Routing-Konfiguration
Wenn der Client, der DHCP-Server und der Server, der den Netzwerkbootloader enthält, im selben Netzwerksegment sind, ist keine zusätzliche Konfiguration erforderlich. Befinden sich der Client und der DHCP-Server oder der WDS/SCCM-Server jedoch in verschiedenen Netzwerksegmenten, wird empfohlen, auf den Routern die Weiterleitung von Broadcast-Paketen vom Client zum aktiven DHCP-Server und zum aktiven WDS/SCCM-Server zu konfigurieren. In englischer Fachliteratur wird dieser Prozess als "IP Helper table updates" bezeichnet. In diesem Fall kontaktiert der Client, nachdem er eine IP-Adresse erhalten hat, den Server, der den Netzwerkbootloader enthält, direkt über DHCP-Pakete, um den Netzwerkbootloader herunterzuladen.
Für Cisco-Router wird der Befehl verwendet
ip helper-address {ip address}
wobei {ip address} die Adresse des DHCP-Servers oder des WDS/SCCM-Servers. Mit diesem Befehl werden auch die folgenden Broadcast-UDP-Pakete weitergeleitet
Port
Protokoll
69
TFTP
53
Domain Name System (DNS)
37
Zeitdienst
137
NetBIOS-Name-Server
138
NetBIOS-Datagramm-Server
67
Bootstrap-Protokoll (BOOTP)
49
TACACS
Eine zweite Methode, um Informationen über den Netzwerkbootloader direkt vom DHCP-Server zu erhalten, besteht darin, die Optionen 60, 66, 67 auf dem DHCP-Server anzugeben. Die Verwendung des DHCP-Parameters 60 mit dem Wert "PXEClient" Dies gilt für alle DHCP-Bereiche, nur wenn der DHCP-Server auf demselben Server wie die Windows-Bereitstellungsdienste gehostet wird. In diesem Fall verbindet sich der Client direkt über das TFTP-Protokoll über UDP-Port 4011 mit dem Server der Windows-Bereitstellungsdienste und nicht über DHCP. Diese Methode wird von Microsoft aufgrund von Problemen mit der Lastverteilung, der fehlerhaften Verarbeitung von DHCP-Optionen und den Antwortparametern der Windows-Bereitstellungsdienste auf der Client-Seite nicht empfohlen. Zudem ermöglicht die Verwendung nur der beiden Optionen 66 und 67 von DHCP, die auf dem Netzwerk-Boot-Server festgelegten Parameter zu umgehen.
Auch die folgenden UDP-Ports müssen auf dem Server der Windows-Bereitstellungsdienste geöffnet werden:
Port 67 (DHCP)
Port 69 (TFTP)
Port 4011 (PXE)
und Port 68, falls eine DHCP-Autorisierung auf dem Server erforderlich ist.
Den Prozess der Konfiguration und die Feinheiten der Umleitung zwischen verschiedenen WDS-Servern finden Sie detaillierter in den folgenden Quellen:
Verwaltung der Netzwerk-Boot-Programme
Serververwaltung
Microsoft Produkt-Supportdienste (PSS) Unterstützungsgrenzen für das Netzwerk-Booten von Microsoft Windows Preinstallation Environment (Windows PE) 2.0
So leiten Sie UDP-Broadcast (BOOTP / DHCP) auf Cisco weiter
Besonderheiten der Funktion und Konfiguration von DHCP auf Cisco-Routern (Teil 2)
Weitere Möglichkeiten des lokalen Bootens
Im Testumfeld gibt das Team
localboot 0 diesen Fehler aus

Laut der Syslinux-Dokumentation bedeutet dies, dass
localboot 0die Boot-Reihenfolge von der lokalen Festplatte erfolgt. Bei Angabe des spezifischen Wertes 0x00 startet es von einem primären Diskettenlaufwerk, während es bei Angabe von 0x80 von einer primären Festplatte bootet. Ändern Sie den Befehl in
localboot 0x80 das lokale Betriebssystem wurde erfolgreich geladen.
Falls es erforderlich ist, von einem spezifischen Laufwerk oder einer Partition zu booten und der Befehl localboot nicht funktioniert, kann die Funktionalität des Moduls genutzt werden chain.c32. Nach dem Laden verwenden Sie den Befehl append, um das spezifische Laufwerk oder die Partition anzugeben, wobei die Laufwerksnummerierung bei 0 beginnt und die Partitionierung bei 1, da bei Angabe der Partition 0 der MBR geladen wird. Bei Angabe des Laufwerks muss die Partition nicht angegeben werden.
KERNEL chain.c32
APPEND hd0 0oder
KERNEL chain.c32
APPEND hd0 Quellen:
Reihenfolge und Beschreibung des Bootens von Dateien über PXE
Wie bereits zu Beginn des Artikels erwähnt, enthält das Verzeichnis, in dem die WDS-Dateien zum Booten gespeichert sind, den Wert des Parameters RootFolder im Registrierungsschlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP
Standardwert C:\RemoteInstall
Hier wird auch im Parameter ReadFilter angegeben, in welchen Verzeichnissen der TFTP-Server nach Boot-Dateien sucht, beginnend vom Wurzelverzeichnis. Bei installiertem SCCM 2012 SP1 hat dieser Parameter folgende Werte
boot*
tmp*
SMSBoot*
SMSTemp*
SMSImages* Wenn der Parameterwert geändert wird auf * Alle Dateien im Verzeichnis werden verarbeitet. RemoteInstall.
Die Rolle des SCCM 2012 Bereitstellungspunktes wird im Registrierungsschlüssel definiert. ProvidersOrder, das sich im Zweig befindet HKLM\System\CurrentControlSet\WDS\Server\Providers\WDSPXE
Parameter ProvidersOrder kann folgende Werte annehmen
SMSPXE
PXE-Dienststelle in SCCM
SMS.PXE.Filter
PXE-Skriptverarbeiter aus MDT (Microsoft Deployment Toolkit)
BINLSVC
Standardverarbeiter von WDS und RIS
Mit installiertem SCCM ist der Parameter ProvidersOrder Bedeutung SMSPXE. Durch Ändern des Parameters kann die Startreihenfolge der Anbieter geändert werden.
Im Verzeichnis RemoteInstall Die folgenden Standarddateien sind vorhanden:
wdsnbp.com
Das Netzwerkbootprogramm, das für Windows-Bereitstellungsdienste entwickelt wurde und folgende Aufgaben ausführt:
1. Entdeckung der Architektur.
2. Betreuung wartender Computer. Wenn die Richtlinie zur automatischen Hinzufügung aktiviert ist, wird dieses Netzwerkbootprogramm an wartende Computer gesendet, um den Netzwerkboot zu unterbrechen und dem Server die Architektur des Clientcomputers zu melden.
3. Verwendung von Netzwerkboot-Links (einschließlich der Verwendung der Optionen 66 und 67 des DHCP-Protokolls).
PXEboot.com
(Standard) Fordert den Benutzer auf, die F12-Taste zu drücken, um den Netzwerkboot fortzusetzen.
PXEboot.n12
Benötigt keinen Benutzer, der die F12-Taste drückt, und beginnt sofort mit dem Netzwerk-Download
AbortPXE.com
Lädt den Computer mit dem nächsten Boot-Element im BIOS, ohne zu warten
Bootmgr.exe
Windows Bootmanager (Bootmgr.exe oder Bootmgr.efi). Lädt mit der Firmware den Windows-Bootloader aus einem bestimmten Disk-Partition oder über eine Netzwerkverbindung (im Falle eines Netzwerkboots)
Bootmgfw.efi
EFI-Version der Programme PXEboot.com und PXEboot.n12 (Im EFI wird die Auswahl, ob PXE geladen werden soll oder nicht, in der EFI-Shell und nicht durch das Netzwerk-Download-Programm getroffen). Das Programm Bootmgfw.efi kombiniert die Funktionen von PXEboot.com, PXEboot.n12, abortpxe.com und bootmgr.exe. Momentan existiert es nur für die Architekturen x64 und Itanium.
Default.bcd
Datenablage für Boot-Configuration (BCD), im REGF-Format, kann in REGEDIT geladen werden, ersetzt die Textdatei Boot.ini.
Der Bootvorgang erfolgt in der oben beschriebenen Reihenfolge.
1. wdsnbp.com wird geladen.
2. Anschließend wird pxeboot.com der entsprechenden Architektur geladen.
3. PXEBoot.com lädt bootmgr.exe und die Datenablage für die Boot-Configuration BCD.
4. Bootmgr.exe liest die Konfigurationsdaten der Betriebssystemstart-BCD und lädt die Datei Boot.sdi sowie das Windows PE-Image (boot.wim) geladen.
5. Bootmgr.exe startet den Windows PE-Ladevorgang, indem es auf Winload.exe im Windows PE-Image zugreift.
Wenn es RemoteInstall Ordner gibt
Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend dann bedeutet deren Vorhandensein, dass vor der Hinzufügung der Verteilungspunkt-Rolle in SCCM 2012 (PXE-Service-Punkte in SCCM 2007) einige Konfigurationsmaßnahmen der installierten Windows Deployment Services (WDS) durchgeführt wurden, wodurch diese Ordner automatisch erstellt wurden.
Für die Verteilungspunkt-Rolle (PXE-Service-Punkt in SCCM 2007) sind nur die folgenden Ordner erforderlich:
SMSBoot
SMSIMAGES
SMSTemp
StoresDas bedeutet nicht, dass SCCM falsch installiert wurde, kann jedoch auf mögliche Fehlerquellen hinweisen.
Die Lösung verschiedener Probleme im Zusammenhang mit WDS, SCCM und PXE wird detailliert in dem Artikel behandelt:
Zusammenfassung
In der IT-Infrastruktur, die von System Center Configuration Manager verwaltet wird, gibt es ein neues Werkzeug für Systemadministratoren vor Ort.
Liste der Links zu ISO-Images (Klicken zum Anzeigen)
Vielen Dank für Ihre Aufmerksamkeit!

Quelle: habr.com
