
Wir betrachten die Erweiterung der Funktionen des System Center Configuration Manager (Produkt zur Verwaltung der IT-Infrastruktur) beim Booten von Benutzer-PCs über das Netzwerk unter Verwendung von PXE. Wir erstellen ein Bootmenü basierend auf PXELinux mit den Funktionen des System Centers und fügen die Möglichkeiten zur Antivirusprüfung, Diagnosetools und Wiederherstellungsabbilder hinzu. Am Ende des Artikels werden die Besonderheiten der Zusammenarbeit von System Center 2012 Configuration Manager mit Windows Deployment Services (WDS) beim Booten über PXE angesprochen.
Alle Aktionen werden in einer Testumgebung durchgeführt, in der bereits System Center 2012 Configuration Manager SP1, ein Domänencontroller und eine gewisse Anzahl an Testmaschinen installiert sind. Es wird davon ausgegangen, dass SCCM bereits für 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, Netzwerkadapter E1000, 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
Für Tests
GW (Gateway)
192.168.57.1
Routing zwischen Netzwerken. Gateway-Rolle.
1. Fügen Sie PXELinux zu SCCM hinzu.
Die Aktionen werden auf der Maschine durchgeführt, auf der System Center Configuration Manager installiert ist.
- Lassen Sie uns das Verzeichnis bestimmen, in dem sich die WDS-Bootdateien befinden. Dazu schauen wir im Registrierungseditor den Wert des Parameters an.
RootFolderunter dem SchlüsselHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP
StandardwertC:\RemoteInstall
Die Bootdateien aus dem SCCM-Bereitstellungspunkt befinden sich in den Verzeichnissensmsboot\x86undsmsboot\x64je nach Architektur.
Zuerst konfigurieren wir das Verzeichnis für die 32-Bit-Architektur, standardmäßigc:\RemoteInstall\smsboot\x86 - Wir laden das Archiv mit der neuesten . Wir kopieren aus syslinux-5.01.zip die
c:\RemoteInstall\smsboot\x86folgenden Dateien:
memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
Zusätzliche Dateien sind erforderlich, um solche Fehler zu vermeiden.
- Im
c:\RemoteInstall\smsboot\x86Wir benennen umpxelinux.0inpxelinux.com
Im Verzeichnisc:\remoteinstall\smsboot\x86Wir machen eine Kopie vonabortpxe.comund benennen sie um inabortpxe.0
Wenn wir jedoch nicht in die Erweiterung umbenennen, wird beispielsweise die Anweisung.0Kernel abortpxe.commit einem Fehler ausgeführt: Booting kernel failed: Bad file number.Für PXELINUX sollte die Erweiterung der Bootdatei entsprechend der Tabelle festgelegt werden.
Für PXELINUX sollte die Dateierweiterung entsprechend 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 von DOS ausführbar) .com COMBOOT-Image (von DOS ausführbar) .img Disk-Image [nur ISOLINUX]Quelle: Abschnitt „Kernel-Datei“
- Um mehrmaliges Drücken der F12-Taste beim Laden von SCCM über das Menü zu vermeiden, benennen wir pxeboot.com in pxeboot.com.f12 um und kopieren pxeboot.n12 nach pxeboot.com
Wenn dies nicht gemacht wird, erhalten wir bei der Auswahl jedes Mal diese Nachricht.
Hinweis: Vergessen Sie nicht, diese Dateien auch im Ordner für x64 umzubenennen, da beim Ladenx86wdsnbp.comaus dem Ordner x86 der Bootloader die Prozessorarchitektur erkennt und die nächste Datei bereits aus dem entsprechenden Architekturoption lädt. Somit wird für x64 die nächste Datei nichtx86pxeboot.com, undx64pxeboot.com - Laden/Selbst erstellen , mit einer Auflösung von 640x480, kopieren wir in denselben Ordner. Erstellen Sie einen Ordner
ISOin dem wir die ISO-Images ablegen werden. Erstellen Sie einen Ordnerpxelinux.cfgfür die Konfigurationen. - Im Ordner pxelinux.cfg erstellen wir eine Datei default, in einer nicht-Unicode-Kodierung, mit dem Inhalt
default (Klicken, um anzuzeigen)# используем графическое меню 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 Verzeichnis
pxelinux.cfgwir erstellen die Dateigraphics.confmit dem Inhalt
graphics.conf (Klicken, um anzuzeigen)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 0Im Verzeichnis
pxelinux.cfgwir erstellen die Dateiav.confmit dem Inhalt
av.conf (Klicken, um anzuzeigen)DEFAULT vesamenu.c32 PROMPT 0 MENU TITLE Antivirus und Tools MENU INCLUDE pxelinux.cfg/graphics.conf label main menu menu label zurück zum Hauptmenü 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 #ISO vom vollständigen Pfad laden, kann von einem anderen TFTP geladen werden label winpe menu label WinPE von einem anderen 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 - Infolgedessen enthält das Verzeichnis c:remoteinstallsmsbootx86 die Struktur
c:\remoteinstall\smsboot\x86
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 - Für die x64-Architektur kopieren wir ebenso und erstellen eine ähnliche Struktur im Ordner
c:remoteinstallsmsbootx64
Ergänzung
Bei der Verwendung des Befehlsmenu PASSWDkann das Passwort entweder so festgelegt werden, wie es ist, oder es kann ein Hash-Algorithmus verwendet werden, indem zu Beginn des Parameters das entsprechende Signatur hinzugefügt wird.Algorithmus
SignaturMD5
$1$SHA-1
$4$SHA-2-256
$5$SHA-2-512
$6$Somit für das Passwort
Qwertyund den Algorithmus MD5menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0Ein Passwort kann beispielsweise über einen Online-Hash-Generator erstellt werden. , Zeile
MD5(Unix)
2. PXELinux-Boot konfigurieren
Jetzt geben wir an, wie pxelinux.com geladen wird und das Menü erhalten wird.
Die Angabe des Bootloaders pxelinux.com über die WDS-Funktion funktioniert in SCCM nicht. Befehle wie
wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86
werden nicht verarbeitet. Um sicherzustellen, dass die Boot-Images nicht festgelegt sind, kann der Befehl zur Ausgabe der WDS-Serverkonfiguration ausgeführt werden:
wdsutil /get-server /show:images
Somit kann in SCCM 2012 keine eigene Datei für das Booten über PXE für den SMSPXE-Anbieter angegeben werden. Daher konfigurieren wir den aktiven DHCP-Bereich.
In den Einstellungen des aktiven DHCP-Bereichs legen wir die Parameter gemäß der Tabelle fest.
DHCP-Option
Parametername
Wert
066
Hostname des Bootservers
sccm2012.test.local
067
Bootdateiname
smsbootx86pxelinux.com
006
DNS-Server
192.168.57.10
015
DNS-Domain-Name
test.local
In der Option 066 geben wir den FQDN-Namen des SCCM-Servers an, in Option 067 den Pfad zum x86-Bootloader pxelinux.com, beginnend mit dem Wurzelverzeichnis von TFTP, und in Option 006 die IP-Adresse des DNS-Servers. Falls in Option 066 ein kurzes Servernamen verwendet wird, geben wir in Option 015 den DNS-Domänensuffix an.
Ergänzung
Eine detaillierte Beschreibung der DHCP-Konfiguration hat verfasst. Doch beiDCfehlte die Option 150, die IP-Adresse des TFTP-Servers, in den Einstellungen des DHCP-Bereichs, 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 geben im BIOS des Testcomputers an, dass von Netzwerk gebootet werden soll, und booten ins Menü.
Wählen Sie den Punkt „Start to SCCM“ und wenn dem Computer eine Aufgabenfolge zugewiesen ist, wird nach einiger Zeit das Fenster „Assistent zur Erstellung der Aufgabenfolge“ angezeigt, in dem zur Eingabe des Passworts aufgefordert wird.

Wir starten die Maschine neu, gehen wieder ins Menü, wählen im Menü „Antivirus and tools“ und geben das Passwort ein. Qwerty
Wir wählen einen beliebigen Punkt aus und beobachten, wie das ISO-Image in den Speicher geladen wird.
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 mit dem Netzwerk-Bootloader im selben Netzwerksegment sind, sind keine zusätzlichen Einstellungen erforderlich. Wenn der Client und der DHCP-Server oder der WDS/SCCM-Server jedoch in verschiedenen Netzwerksegmenten sind, wird empfohlen, auf den Routern die Weiterleitung von Broadcast-Paketen vom Client zum aktiven DHCP-Server und dem aktiven WDS/SCCM-Server einzurichten. In der englischsprachigen Literatur ist dieser Prozess als 'IP Helper table updates' bekannt. In diesem Fall verbindet sich der Client nach Erhalt der IP-Adresse direkt über DHCP-Pakete mit dem Server, der den Netzwerk-Bootloader enthält, um den Bootloader herunterzuladen.
Für Cisco-Router wird der Befehl verwendet
ip helper-address {ip address}
wo {ip address} Adresse des DHCP-Servers oder des WDS/SCCM-Servers. Bei Verwendung dieses Befehls 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 für den Client, Informationen zum Netzwerk-Bootloader direkt vom DHCP-Server zu erhalten, besteht darin, die Optionen 60, 66, 67 auf dem DHCP-Server anzugeben. Dabei wird der DHCP-Parameter 60 mit dem Wert «PXEClient» in allen Gültigkeitsbereichen von DHCP verwendet, nur wenn der DHCP-Server auf demselben Server gehostet wird wie die Windows-Bereitstellungsdienste. In diesem Fall verbindet sich der Client direkt über das TFTP-Protokoll über den UDP-Port 4011 mit dem Windows-Bereitstellungsserver statt über DHCP. Diese Methode wird von Microsoft aufgrund von Problemen mit der Lastverteilung, falscher Verarbeitung von DHCP-Parametern und den Antwortparametern der Windows-Bereitstellungsdienste auf der Clientseite nicht empfohlen. Zudem ermöglicht die Verwendung nur der beiden Optionen 66 und 67 DHCP, die auf dem Netzwerk-Boot-Server festgelegten Parameter zu umgehen.
Darüber hinaus müssen die folgenden UDP-Ports auf dem Windows-Bereitstellungsserver geöffnet werden
Port 67 (DHCP)
Port 69 (TFTP)
Port 4011 (PXE)
und Port 68, falls eine DHCP-Autorisierung auf dem Server erforderlich ist.
Der Prozess der Konfiguration und die Feinheiten der Umleitung zwischen verschiedenen WDS-Servern sind unten in den Quellen detaillierter beschrieben:
Management der Netzwerk-Boot-Programme
Serververwaltung
Microsoft Product Support Services (PSS) Supportgrenzen für die Netzwerk-Booting von Microsoft Windows Preinstallation Environment (Windows PE) 2.0
So leiten Sie UDP-Broadcasts (BOOTP / DHCP) auf Cisco weiter
Besonderheiten der Funktionsweise und Konfiguration von DHCP auf Cisco-Routern (Teil 2)
Zusätzliche Möglichkeiten für das lokale Booten
In der Testumgebung wird der Befehl
localboot 0 gibt diesen Fehler aus

Aus der Syslinux-Dokumentation geht hervor, dass bei
localboot 0der Boot-Prozess von der lokalen Festplatte erfolgt. Bei Angabe eines bestimmten Wertes 0x00 von der primären (primary) Diskette und bei Angabe 0x80 von der primären (primary) Festplatte. Wenn der Befehl geändert wird in
localboot 0x80 das lokale Betriebssystem wurde geladen.
Falls es notwendig ist, von einer bestimmten Festplatte, Partition oder einem Befehl zu booten, localboot nicht funktioniert, kann man die Möglichkeiten des Moduls nutzen chain.c32. Nach dem Laden geben wir mit dem Befehl append die spezifische Festplatte oder Partition an, die Nummerierung der Festplatten beginnt bei 0, die Nummerierung der Partitionen beginnt bei 1, da beim Angabe von Partition 0 der MBR geladen wird. Bei Angabe der Festplatte kann die Partition weggelassen werden.
KERNEL chain.c32
APPEND hd0 0oder
KERNEL chain.c32
APPEND hd0 Quellen:
Reihenfolge und Beschreibung des Datei-Boots über PXE
Wie bereits zu Beginn des Artikels erwähnt, befindet sich das Verzeichnis, in dem die WDS-Bootdateien gespeichert sind, im Wert des Parameters RootFolder in dem Registrierungsschlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP
Standardwert C:\RemoteInstall
Hier ist auch im Parameter ReadFilter die Verzeichnisse angegeben, in denen der TFTP-Server die Dateien zum Booten sucht, beginnend mit dem Root. Bei installiertem SCCM 2012 SP1 hat dieser Parameter den Wert
boot*
tmp*
SMSBoot*
SMSTemp*
SMSImages* Wenn der Parameter geändert wird auf * werden alle Dateien, die sich im Verzeichnis RemoteInstall.
Die Rolle des SCCM 2012 Bereitstellungspunktes wird im Registrierungsschlüssel ProvidersOrder, der sich im Schlüssel HKLMSystemCurrentControlSetWDSServerProvidersWDSPXE
Parameter ProvidersOrder einen der Werte annehmen kann
SMSPXE
PXE-Dienst in SCCM
SMS.PXE.Filter
PXE-Skripthandler von MDT (Microsoft Deployment Toolkit)
BINLSVC
Standard WDS und RIS Handler
Bei installiertem SCCM hat der Parameter ProvidersOrder Bedeutung. SMSPXE. Durch Ändern des Parameters kann die Reihenfolge der Anbieter geändert werden.
Im Verzeichnis RemoteInstall die folgenden Standarddateien befinden sich
wdsnbp.com
Das Netzwerk-Startprogramm, das für die Windows-Bereitstellungsdienste entwickelt wurde und folgende Aufgaben ausführt:
1. Architektur erkennung.
2. Verwaltung wartender Computer. Wenn die automatische Hinzufügen-Politik aktiviert ist, wird dieses Netzwerk-Startprogramm an wartende Computer gesendet, um den Netzwerk-Start zu pausieren und dem Server die Architektur des Client-Computers zu melden.
3. Verwendung von Netzwerk-Start-Links (einschließlich Verwendung von Parametern 66 und 67 des DHCP-Protokolls)
PXEboot.com
(Standard) Erfordert, dass der Benutzer die F12-Taste drückt, um mit dem Netzwerk-Start fortzufahren
PXEboot.n12
Benötigt kein Drücken der F12-Taste durch den Benutzer und startet sofort den Netzwerkboot
AbortPXE.com
Lädt den Computer mithilfe des nächsten Bootelements im BIOS ohne zu warten
Bootmgr.exe
Windows-Bootmanager (Bootmgr.exe oder Bootmgr.efi). Lädt den Windows-Loader mithilfe der Firmware aus einem bestimmten Disk-Partition oder über eine Netzwerkinstallation (im Falle des Netzwerkboots)
Bootmgfw.efi
Version EFI von PXEboot.com und PXEboot.n12 (im EFI wird die Entscheidung, ob PXE geladen werden soll oder nicht, in der EFI-Shell und nicht durch das Netzwerkboot-Programm getroffen). Das Programm Bootmgfw.efi kombiniert die Funktionen von PXEboot.com, PXEboot.n12, abortpxe.com und bootmgr.exe. Derzeit existiert es nur für die Architekturen x64 und Itanium
Default.bcd
Speicher für Bootkonfigurationsdaten (BCD), im REGF-Format, kann in REGEDIT geladen werden, ersetzt die Textdatei Boot.ini
Der Bootvorgang erfolgt in folgender Reihenfolge gemäß der oben beschriebenen Anordnung
1. wdsnbp.com wird geladen.
2. Danach wird das PXEboot.com der entsprechenden Architektur geladen
3. PXEBoot.com lädt bootmgr.exe und das Bootkonfigurationsdaten-Storage BCD
4. Bootmgr.exe liest die Betriebssystemeinträge aus dem BCD Bootkonfigurationsdaten und lädt die Datei Boot.sdi sowie das Windows PE-Image (boot.wim)
5. Bootmgr.exe beginnt mit dem Laden von Windows PE, indem es auf Winload.exe im Windows PE-Image zugreift
Wenn in RemoteInstall Verzeichnisse vorhanden sind
Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend ihre Anwesenheit zeigt an, dass vor dem Hinzufügen der Verteilungspunktrolle in SCCM 2012 (PXE-Dienstpunkt in SCCM 2007) irgendeine Konfiguration des installierten Windows Deployment Services (WDS) vorgenommen wurde, die diese Verzeichnisse automatisch erstellt hat.
Für die Rolle des Verteilungspunktes (PXE-Dienstpunkt in SCCM 2007) reichen die folgenden Verzeichnisse aus
SMSBoot
SMSIMAGES
SMSTemp
StoresDas bedeutet nicht, dass SCCM falsch installiert wurde, könnte aber auf eine mögliche Fehlerquelle hinweisen.
Eine detaillierte Lösung verschiedener Probleme der Integration von WDS, SCCM und PXE wird in dem Artikel
Fazit
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
