Zavaděcí menu PXE se System Center Configuration Manager

Zavaděcí menu PXE se System Center Configuration Manager

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 RootFolder ve větvi HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP
    Výchozí hodnota C:\RemoteInstall
    Soubory pro zavádění z bodu nasazení SCCM se nacházejí v adresářích smsbootx86 a smsbootx64 v závislosti na architektuře.
    Nejprve nastavíme adresář pro 32-bitovou architekturu, ve výchozím stavu c:\RemoteInstall\smsbootx86
  • Stáhneme archiv s posledním syslinux . Zkopírujeme z syslinux-5.01.zip do c:\RemoteInstall\smsbootx86 ná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ě
    Zavaděcí menu PXE se System Center Configuration Manager
  • V c:\RemoteInstall\smsbootx86 přejmenujeme pxelinux.0 v pxelinux.com
    Ve složce c:\remoteinstall\smsbootx86 uděláme kopii abortpxe.com a přejmenujeme ji na abortpxe.0
    Pokud však nepřejmenováváme na příponu .0, pak například instrukce
    Kernel abortpxe.com

    bude 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: http://www.syslinux.org/wiki/index.php/SYSLINUX#KERNEL_file 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
    Zavaděcí menu PXE se System Center Configuration Manager
    Poznámka: Nezapomeňte přejmenovat tyto soubory i ve složce pro x64, protože při nahrávání x86wdsnbp.com ze 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 ne x86pxeboot.com, a x64pxeboot.com
  • Stahujeme/vytváříme background.png, s rozlišením 640x480, zkopírujeme do stejné složky. Vytvoříme složku ISO kam umístíme ISO obrazy. Vytvoříme složku pxelinux.cfg pro 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.0

    Ve složce pxelinux.cfg vytváříme soubor graphics.conf s 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 0

    Ve složce pxelinux.cfg vytváříme soubor av.conf s 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.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

  • Pro architekturu x64 obdobně kopírujeme a vytváříme stejnou strukturu ve složce c:remoteinstallsmsbootx64

Doplnění
Při použití příkazu menu PASSWD můžete zadat heslo buď tak, jak je, nebo použít hashovací algoritmus přidáním příslušné signatury na začátek parametru

Algoritmus
Podpis

MD5
$1$

SHA-1
$4$

SHA-2-256
$5$

SHA-2-512
$6$

Takže pro heslo Qwerty a algoritmu MD5

menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0

Heslo lze například vygenerovat pomocí online generátoru hashů www.insidepro.com/hashes.php?lang=ces, ř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

Zavaděcí menu PXE se System Center Configuration Manager
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 mvgolubev zde. Ale na DC možnost 150, IP adresa TFTP serveru, chyběla v nastavení oblasti DHCP a určení možnosti 150 přes netsh nefungovalo.Zavaděcí menu PXE se System Center Configuration Manager

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.
Zavaděcí menu PXE se System Center Configuration Manager

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.
Zavaděcí menu PXE se System Center Configuration Manager

Restartujeme stroj, znovu vstupujeme do menu, vybíráme v menu „Antivirus and tools“ a zadáme heslo. Qwerty
Zavaděcí menu PXE se System Center Configuration Manager

Vybereme libovolnou položku a sledujeme načítání ISO obrazu do paměti.
Zavaděcí menu PXE se System Center Configuration Manager

Čekáme a sledujeme výsledek.
Zavaděcí menu PXE se System Center Configuration Manager

Kontrola byla dokončena.
Zavaděcí menu PXE se System Center Configuration Manager

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 http://technet.microsoft.com/ru-ru/library/cc732351(v=ws.10).aspx
Správa serveru http://technet.microsoft.com/ru-ru/library/cc770637(v=ws.10).aspx
Microsoft Product Support Services (PSS) podmínky pro síťové bootování Microsoft Windows Preinstallation Environment (Windows PE) 2.0 http://support.microsoft.com/kb/926172/en-us
Jak přesměrovat UDP broadcast (BOOTP / DHCP) na Cisco http://www.cisco-faq.com/163/forward_udp_broadcas.html
Specifika práce a nastavení DHCP na routerech Cisco (Část 2) http://habrahabr.ru/post/89997/

Doplňkové možnosti místního bootování

Na testovacím prostředí příkaz

localboot 0

vyhazuje takovou chybu
Zavaděcí menu PXE se System Center Configuration Manager
Z dokumentace syslinux vyplývá, že při

localboot 0

bootová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 0

nebo

KERNEL chain.c32
APPEND hd0

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

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
Stores

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

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

Děkujeme za pozornost!
Zavaděcí menu PXE se System Center Configuration Manager

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster