
Zvažujeme rozšíření funkcí System Center Configuration Manager (produkty pro správu IT infrastruktury) při zavádění uživatelských PC přes síť pomocí PXE. Vytvoříme zaváděcí menu na základě PXELinux s funkcionalitou System Center a přidáme možnosti antivirové kontroly, diagnostické a obnovovací obrazy. Na konci článku se dotkneme zvláštností práce System Center 2012 Configuration Manager ve spolupráci s Windows Deployment Services (WDS) při zavádění přes PXE.
Všechny akce provádíme na testovací prostředí, ve kterém je již nainstalován System Center 2012 Configuration Manager SP1, řadič domény a určité množství testovacích strojů. Předpokládáme, že v SCCM již je používáno nasazení přes síť pomocí PXE.
Úvod
Testovací prostředí se skládá z několika virtuálních strojů. Na všech strojích je nainstalován hostitelský OS Microsoft Windows Server 2008 R2 (x64), síťový adaptér E1000, SCSI řadič: LSI Logic SAS.
Název (Role)
IP adresa / DNS jméno
Funkčnost
SCCM (System Center Configuration Manager)
192.168.57.102
sccm2012.test.local
Nainstalovaný System Center Configuration Manager 2012 SP1
DC (AD, DHCP, DNS)
192.168.57.10
dc1.test.local
Role řadiče domény, DHCP serveru a DNS serveru
TEST (Testovací stroj)
192.168.57.103
test.test.local
Pro testování
GW (Brána)
192.168.57.1
Směrování mezi sítěmi. Role brány
1. Přidáme PXELinux do SCCM
Akce provádíme na stroji, kde je nainstalován System Center Configuration Manager
- Určíme adresář, kde se nacházejí soubory WDS pro zavádění, k tomu v registru kontrolujeme hodnotu parametru
RootFolderve větviHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP
Výchozí hodnotaC:\RemoteInstall
Soubory pro zavádění z bodu nasazení SCCM se nacházejí v adresáříchsmsbootx86asmsbootx64v závislosti na architektuře.
Nejprve nastavíme adresář pro 32-bitovou architekturu, ve výchozím stavuc:\RemoteInstall\smsbootx86 - Stáhneme archiv s posledním . Zkopírujeme z syslinux-5.01.zip do
c:\RemoteInstall\smsbootx86následující soubory:
memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
Další soubory jsou potřebné, aby nedošlo k podobné chybě
- V
c:\RemoteInstall\smsbootx86přejmenujemepxelinux.0vpxelinux.com
Ve složcec:\remoteinstall\smsbootx86uděláme kopiiabortpxe.coma přejmenujeme ji naabortpxe.0
Pokud však nepřejmenováváme na příponu.0, pak například instrukceKernel abortpxe.combude provedena s chybou: Booting kernel failed: Bad file number
Pro PXELINUX by měla být přípona souboru zavádění nastavena podle tabulkyžádný nebo jiný obrázek jádra Linuxu .0 program pro nabootování přes PXE (pouze [PXELINUX]) .bin "Boot sektor CD" [pouze ISOLINUX] .bs Boot sektor [pouze SYSLINUX] .bss Boot sektor, DOS superblok bude opraven v [pouze SYSLINUX] .c32 obrázek COM32 (32-bit COMBOOT) .cbt obrázek COMBOOT (nerealizovatelný z DOS) .com obrázek COMBOOT (realizovatelný z DOS) .img obrázek disku [pouze ISOLINUX]Zdroj: sekce "Jádrový soubor"
- Abychom nemuseli několikrát stisknout klávesu F12 při bootování SCCM z menu, přejmenujeme pxeboot.com na pxeboot.com.f12, zkopírujeme pxeboot.n12 na pxeboot.com
Pokud to neuděláme, při výběru dostaneme každé vyzvání podobnou zprávu
Poznámka: Nezapomeňte přejmenovat tyto soubory i ve složce pro x64, protože při nahráváníx86wdsnbp.comze složky x86, bootloader rozpozná architekturu procesoru a následující soubor již načítá ze složky s odpovídající architekturou. Takže pro x64 bude následující soubor nex86pxeboot.com, ax64pxeboot.com - Stahujeme/vytváříme , s rozlišením 640x480, zkopírujeme do stejné složky. Vytvoříme složku
ISOkam umístíme ISO obrazy. Vytvoříme složkupxelinux.cfgpro konfigurační soubory. - Ve složce pxelinux.cfg vytvoříme soubor default, kódování ne unicode, s obsahem
default (Klikněte pro zobrazení)# используем графическое меню 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.0Ve složce
pxelinux.cfgvytváříme souborgraphics.confs obsahem
graphics.conf (Klikněte pro zobrazení)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 0Ve složce
pxelinux.cfgvytváříme souborav.confs obsahem
av.conf (Klikněte pro zobrazení)DEFAULT vesamenu.c32 PROMPT 0 MENU TITLE Antivirus a nástroje MENU INCLUDE pxelinux.cfg/graphics.conf label main menu menu label návrat do hlavního menu 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 #Načítáme ISO podle plné cesty, můžeme načítat z jiného TFTP label winpe menu label WinPE z jiného 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 - V důsledku toho katalog c:remoteinstallsmsbootx86 obsahuje strukturu
c:\remoteinstall\smsbootx86
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 - Pro architekturu x64 obdobně kopírujeme a vytváříme stejnou strukturu ve složce
c:remoteinstallsmsbootx64
Doplnění
Při použití příkazumenu PASSWDmůžete zadat heslo buď tak, jak je, nebo použít hashovací algoritmus přidáním příslušné signatury na začátek parametruAlgoritmus
PodpisMD5
$1$SHA-1
$4$SHA-2-256
$5$SHA-2-512
$6$Takže pro heslo
Qwertya algoritmu MD5menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0Heslo lze například vygenerovat pomocí online generátoru hashů , řetězec
MD5(Unix)
2. Nastavujeme načítání PXELinux
Nyní uvedeme, jak načíst pxelinux.com a získat menu.
Určení boot loaderu pxelinux.com pomocí funkce WDS nefunguje v SCCM. Příkazy tohoto typu
wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86
nejsou zpracovány. Ověřte, že obrazy pro načítání nebyly nastaveny, vykonáním příkazu pro zobrazení konfigurace serveru WDS
wdsutil /get-server /show:images
Takže v SCCM 2012 nelze určit svůj soubor pro načítání přes PXE pro poskytovatele SMSPXE. Proto budeme nastavovat aktivní oblast DHCP serveru.
V parametrech aktivní oblasti DHCP nastavujeme parametry podle tabulky
Možnost DHCP
Název parametru
Hodnota
066
Název hostitele serveru pro spouštění
sccm2012.test.local
067
Název spouštěcího souboru
smsbootx86pxelinux.com
006
Servery DNS
192.168.57.10
015
Název domény DNS
test.local
V možnosti 066 uvádíme FQDN jméno sccm serveru, v možnosti 067 uvádíme cestu k x86 bootloaderu pxelinux.com počínaje kořenovým adresářem TFTP, a v možnosti 006 uvádíme IP adresu DNS serveru. V případě, že v možnosti 066 používáte zkrácené jméno serveru, v možnosti 015 uvádíme DNS sufix domény.
Doplnění
Podrobněji nastavení DHCP popsal . Ale naDCmožnost 150, IP adresa TFTP serveru, chyběla v nastavení oblasti DHCP a určení možnosti 150 přes netsh nefungovalo.
3. Kontrola funkce
Hlavní nastavení byla dokončena a můžeme přistoupit k ověření. Upozorňujeme na testovém počítači, že se má bootovat po síti a bootujeme do menu.
Vybereme položku „Start to SCCM“ a pokud je počítači přiřazena sekvence úloh, po chvíli se objeví okno „Průvodce tvorbou sekvence úloh“ s nabídkou na zadání hesla.

Restartujeme stroj, znovu vstupujeme do menu, vybíráme v menu „Antivirus and tools“ a zadáme heslo. Qwerty
Vybereme libovolnou položku a sledujeme načítání ISO obrazu do paměti.
Čekáme a sledujeme výsledek.
Kontrola byla dokončena.

4. Dodatečná nastavení a zvláštnosti
Nastavení směrování
Pokud je klient, DHCP server a server obsahující síťový bootstrap v jedné síti, není potřeba žádné další nastavení. Pokud je však klient a DHCP server nebo server WDS/SCCM v různých segmentech sítě, doporučuje se na routerech nastavit přesměrování broadcastových paketů od klienta na aktivní DHCP server a aktivní server WDS/SCCM. V anglické literatuře je tento proces znám jako „IP Helper table updates“. V takovém případě se klient po získání IP adresy přímo spojí se serverem, který obsahuje síťový bootstrap, prostřednictvím DHCP paketů, aby stáhl síťový bootstrap.
Pro routery Cisco se používá příkaz
ip helper-address {ip address}
kde {ip address} adresa DHCP serveru nebo serveru WDS/SCCM. Při použití tohoto příkazu se také přeposílají následující broadcastové UDP pakety
Port
Protokol
69
TFTP
53
Domain Name System (DNS)
37
Časová služba
137
NetBIOS Name Server
138
NetBIOS Datagram Server
67
Bootstrap Protocol (BOOTP)
49
TACACS
Druhým způsobem, jak klient získá informace o síťovém bootstrapu přímo z DHCP serveru, je specifikace voleb 60, 66, 67 na DHCP serveru. Použití parametru DHCP 60 s hodnotou „PXEClient“ do všech rozsahů DHCP, pouze pokud je server DHCP umístěn na stejném serveru jako služby nasazení Windows. V takovém případě se klient spojí se serverem služeb nasazení Windows přímo prostřednictvím protokolu TFTP přes UDP port 4011, nikoli prostřednictvím DHCP. Tento způsob Microsoft nedoporučuje kvůli problémům s vyvažováním zátěže, nesprávnému zpracování DHCP parametrů a odpovědním parametrům služeb nasazení Windows na straně klienta. A také proto, že použití pouze dvou voleb 66 a 67 DHCP umožňuje obejít parametry nastavené na serveru síťového bootstrapu.
Je také nutné otevřít následující UDP porty na serveru služeb nasazení Windows
port 67 (DHCP)
port 69 (TFTP)
port 4011 (PXE)
a port 68, pokud je potřebná DHCP autorizace na serveru.
Podrobnosti o procesu nastavení a nuancích přesměrování mezi různými servery WDS jsou popsány níže v zdrojích:
Správa programů síťového bootstrapu
Správa serveru
Microsoft Product Support Services (PSS) podmínky pro síťové bootování Microsoft Windows Preinstallation Environment (Windows PE) 2.0
Jak přesměrovat UDP broadcast (BOOTP / DHCP) na Cisco
Specifika práce a nastavení DHCP na routerech Cisco (Část 2)
Doplňkové možnosti místního bootování
Na testovacím prostředí příkaz
localboot 0 vyhazuje takovou chybu

Z dokumentace syslinux vyplývá, že při
localboot 0bootování dojde k startu z místního disku. Při zadání konkrétní hodnoty 0x00 z hlavní (primary) disketové jednotky a 0x80 z hlavního (primary) pevného disku. Změněním příkazu na
localboot 0x80 místní OS se načetl.
Pokud je potřeba provést bootování z konkrétního disku, oddílu nebo příkazu localboot nefunguje, lze využít možnosti modulu chain.c32. Po jeho načtení příkazem append určíme konkrétní disk nebo oddíl disku, číslování disků začíná od 0, číslování oddílů od 1, protože při zadání oddílu 0 se načítá MBR. Při zadání disku oddíl není nutné uvádět.
KERNEL chain.c32
APPEND hd0 0nebo
KERNEL chain.c32
APPEND hd0 Zdroje:
Pořadí a popis načítání souborů pomocí PXE
Jak již bylo zmíněno na začátku článku, adresář, kde se nacházejí soubory WDS pro načítání, je obsažen v hodnotě parametru RootFolder v větvi registru HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP
Výchozí hodnota C:\RemoteInstall
Zde v parametru ReadFilter jsou uvedeny adresáře, ve kterých TFTP server hledá soubory pro načítání, počínaje z kořene. Při nainstalovaném SCCM 2012 SP1 má tento parametr tuto hodnotu
boot*
tmp*
SMSBoot*
SMSTemp*
SMSImages* Pokud změníte hodnotu parametru na * budou zpracovávány všechny soubory umístěné v adresáři RemoteInstall.
Role bodu nasazení SCCM 2012 je uvedena v parametru registru ProvidersOrder, umístěném v větvi HKLMSystemCurrentControlSetWDSServerProvidersWDSPXE
Parameter ProvidersOrder může přijímat hodnoty
SMSPXE
bod služby PXE v SCCM
SMS.PXE.Filter
Zpracovatel PXE skriptů z MDT (Microsoft Deployment Toolkit)
BINLSVC
Standardní zpracovatel WDS a RIS
Při nainstalovaném SCCM má parametr ProvidersOrder význam SMSPXE. Změnou parametru lze měnit pořadí bootování providerů.
V adresáři RemoteInstall jsou zde následující standardní soubory
wdsnbp.com
Program pro síťové bootování, vyvinutý pro služby nasazení Windows, vykonávající následující úkoly:
1. Zjištění architektury.
2. Obsluhování čekajících počítačů. Když je aktivována politika automatického přidání, tento program pro síťové bootování je odeslán na čekající počítače, aby pozastavil síťové bootování a informoval server o architektuře klientského počítače.
3. Použití odkazů na síťové bootování (včetně použití parametrů 66 a 67 protokolu DHCP)
PXEboot.com
(Ve výchozím nastavení) Požaduje, aby uživatel stiskl klávesu F12 pro pokračování v síťovém bootování
PXEboot.n12
Není třeba, aby uživatel stiskl klávesu F12, a ihned začne síťové spuštění
AbortPXE.com
Spouští počítač pomocí následujícího spouštěcího prvku v BIOSu bez čekání
Bootmgr.exe
Správce spouštění Windows (Bootmgr.exe nebo Bootmgr.efi). Spouští pomocí firmware spouštěč Windows z určeného oddílu disku nebo přes síťové připojení (v případě síťového spouštění)
Bootmgfw.efi
Verze EFI programů PXEboot.com a PXEboot.n12 (v EFI se rozhodnutí, zda spustit nebo nespustit PXE, provádí v EFI shellu, nikoli programem pro síťové spuštění). Program Bootmgfw.efi slučuje funkce PXEboot.com, PXEboot.n12, abortpxe.com a bootmgr.exe. V současnosti existuje pouze pro architektury x64 a Itanium
Default.bcd
Úložiště dat konfigurace spouštění (BCD), formát REGF, lze nahrát v REGEDIT, nahrazuje textový soubor Boot.ini
Spuštění probíhá v následujícím pořadí podle výše uvedeného popisu
1. Načítá se wdsnbp.com.
2. Následně se načítá pxeboot.com odpovídající architektury
3. PXEBoot.com načítá bootmgr.exe a úložiště dat konfigurace spouštění BCD
4. Bootmgr.exe čte záznamy operačního systému z dat konfigurace spouštění BCD a načítá soubor Boot.sdi a obraz Windows PE (boot.wim)
5. Bootmgr.exe začíná spouštění Windows PE přístupem k Winload.exe v obrazu Windows PE
Pokud v RemoteInstall jsou složky
Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend jejich přítomnost znamená, že před přidáním role distribučního bodu do SCCM 2012 (bodů služeb PXE v SCCM 2007) bylo provedeno nějaké konfigurační opatření nainstalovaných Windows Deployment Services (WDS), které vedlo k automatickému vytvoření těchto složek.
Pro roli distribučního bodu (bodů služeb PXE v SCCM 2007) stačí pouze následující složky
SMSBoot
SMSIMAGES
SMSTemp
StoresTo neznamená, že SCCM byl nainstalován nesprávně, ale může naznačovat možné zdroje chyb.
Podrobně byla řešení různých problémů integrace WDS, SCCM a PXE podrobně popsána v článku
Výsledek
V IT infrastruktuře pod správou System Center Configuration Manager přibyl nový nástroj pro práci systémových administrátorů v terénu.
Seznam odkazů na obrazy ISO (Klikněte pro zobrazení)
Děkujeme za pozornost!

Zdroj: habr.com
