Meniul de boot PXE cu System Center Configuration Manager

Meniul de boot PXE cu System Center Configuration Manager

Analizăm extinderea funcționalităților System Center Configuration Manager (un produs pentru gestionarea infrastructurii IT) la bootarea PC-urilor utilizatorilor prin rețea folosind PXE. Creăm un meniu de boot bazat pe PXELinux cu funcționalități ale System Center și adăugăm capabilități de verificare antivirus, imagini de diagnosticare și recuperare. La finalul articolului, abordăm specificitățile colaborării între System Center 2012 Configuration Manager și Windows Deployment Services (WDS) în procesul de bootare prin PXE.

Toate acțiunile se desfășoară într-un mediu de testare, în care este deja instalat System Center 2012 Configuration Manager SP1, un controler de domeniu și un anumit număr de mașini de test. Se presupune că în SCCM se utilizează deja desfășurarea prin rețea folosind PXE.

Introducere

Mediul de testare constă din mai multe mașini virtuale. Pe toate mașinile este instalat sistemul de operare Microsoft Windows Server 2008 R2 (x64), adaptor de rețea E1000, Controler SCSI: LSI Logic SAS.

Nume (Roluri)
Adresă IP / nume DNS
Funcționalitate

SCCM (System Center Configuration Manager)
192.168.57.102
sccm2012.test.local

System Center Configuration Manager 2012 SP1 este instalat

DC (AD, DHCP, DNS)
192.168.57.10
dc1.test.local

Rol de controler de domeniu, server DHCP și server DNS

TEST (Mașina de test)
192.168.57.103
test.test.local

Pentru testare

GW (Gateway)
192.168.57.1
Rutare între rețele. Rolul gateway-ului.

1. Adăugăm PXELinux în SCCM

Acțiunile se desfășoară pe mașina unde este instalat System Center Configuration Manager.

  • Definim catalogul unde se află fișierele WDS pentru bootare, pentru aceasta în registrul de sistem verificăm valoarea parametrului. RootFolder în ramura HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
    Valorile posibile C:RemoteInstall
    Fișierele pentru bootare din punctul de desfășurare SCCM sunt situate în directoarele smsbootx86 și smsbootx64 în funcție de arhitectură.
    Întâi configurăm directorul pentru arhitectura de 32 de biți, în mod implicit c:Remoteinstallsmsbootx86
  • Descărcăm arhiva cu ultima versiune syslinux . Copiem din syslinux-5.01.zip în c:Remoteinstallsmsbootx86 fișierele următoare:
    memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
    Fișiere suplimentare sunt necesare pentru a evita o eroare de acest tip.
    Meniul de boot PXE cu System Center Configuration Manager
  • În c:Remoteinstallsmsbootx86 renunțăm la denumirea pxelinux.0 în pxelinux.com
    În folderul c:remoteinstallsmsbootx86 facem o copie abortpxe.com și o redenumim în abortpxe.0
    Dacă nu o redenumim în extensia .0, atunci, de exemplu, instrucțiunea
    Kernel abortpxe.com

    va fi executată cu eroarea: Booting kernel failed: Bad file number
    Pentru PXELINUX, extensia fișierului de boot trebuie stabilită conform tabelului.

    niciun alt	imagine a kernel-ului Linux
     .0		programul de bootstrap PXE (NBP) [doar PXELINUX]
     .bin		"sector de boot CD" [doar ISOLINUX]
     .bs		Sector de boot [doar SYSLINUX]
     .bss		Sector de boot, superblocul DOS va fi patch-uit [doar SYSLINUX]
     .c32		imagine COM32 (COMBOOT pe 32 de biți)
     .cbt		imagine COMBOOT (nu este rulabil din DOS)
     .com		imagine COMBOOT (rulabil din DOS)
     .img		imagine de disc [doar ISOLINUX]
    

    Sursa: http://www.syslinux.org/wiki/index.php/SYSLINUX#KERNEL_file secțiunea "Fișier kernel"

  • Pentru a nu apăsa de mai multe ori tasta F12 la bootarea SCCM prin meniu, redenumim pxeboot.com în pxeboot.com.f12, copiem pxeboot.n12 în pxeboot.com
    Dacă nu facem acest lucru, la selecție vom primi de fiecare dată acest mesaj
    Meniul de boot PXE cu System Center Configuration Manager
    Notă: Nu uitați să redenumiți aceste fișiere și în folderul pentru x64, deoarece la bootare x86wdsnbp.com din folderul x86, bootloader-ul determină arhitectura procesorului și următorul fișier este încărcat deja din folderul cu arhitectura corespunzătoare. Astfel, pentru x64, următorul fișier va fi nu x86pxeboot.com, iar x64pxeboot.com
  • Descărcăm/creăm background.png, cu rezoluția 640x480, copiem în același folder. Creăm un folder ISO unde vom plasa imaginile ISO. Creăm un folder pxelinux.cfg pentru configurații.
  • În folderul pxelinux.cfg creăm fișierul default, într-o codare non-UTF, cu conținutul
    default (Apasă pentru a vizualiza)
    # используем графическое меню
    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

    În folderul pxelinux.cfg creăm fișierul graphics.conf cu conținutul
    graphics.conf (Apasă pentru a vizualiza)

    MARJA MENU 10
    RÂNDURI MENU 16
    RÂND MSGTAB MENU 21
    RÂNDUL TIMPULUI MENU 26
    CULOARE MENU BORDA 30;44 #00000000 #00000000 niciuna
    CULOARE MENU BARE DE DERulare 30;44 #00000000 #00000000 niciuna
    CULOARE MENU TITLU 0 #ffffffff #00000000 niciuna
    CULOARE MENU SEL 30;47 #40000000 #20ffffff
    FOND MENU background.png
    NENEGATIV 0
    PERMITE OPȚIUNI 0

    În folderul pxelinux.cfg creăm fișierul av.conf cu conținutul
    av.conf (Apasă pentru a vizualiza)

    DEFAULT vesamenu.c32
    PROMPT 0
    TITLU MENU Antivirus și instrumente
    INCLUDE MENU pxelinux.cfg/graphics.conf
    
    eticheta meniu principal
    eticheta meniu eticheta întoarce la meniul principal
    kernel vesamenu.c32
    atașează pxelinux.cfg/default
    
    eticheta drweb
    eticheta meniu DrWeb
    kernel memdisk
    atașează iso raw initrd=isodrweb.iso
    
    eticheta eset
    eticheta meniu Eset
    kernel memdisk
    atașează iso raw initrd=isoeset_sysrescue.iso
    
    eticheta kav
    eticheta meniu KAV Rescue CD
    KERNEL kav/rescue
    ATAȘEAZĂ initrd=kav/rescue.igz root=live rootfstype=auto vga=791 init=/init kav_lang=ro udev liveimg doscsi nomodeset quiet splash
    
    #Se încarcă ISO din calea completă, se poate încărca din alt TFTP
    eticheta winpe
    eticheta meniu WinPE dintr-un alt TFTP
    kernel sccm2012.test.local::smsbootx86memdisk
    atașează iso raw initrd=sccm2012.test.local::smsbootx86isoWinPE_RaSla.iso
    
    eticheta clonezilla
    eticheta meniu Clonezilla
    kernel memdisk
    atașează iso raw initrd=isoclonezilla.iso
    
  • În final, catalogul c:remoteinstallsmsbootx86 conține structura

    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

  • Pentru arhitectura x64, similar copiem și creăm aceeași structură în folderul c:remoteinstallsmsbootx64

Complement
Când folosiți comanda meniul PASSWD parola poate fi setată fie așa cum este, fie folosind un algoritm de hash, adăugând la începutul parametrului semnătura corespunzătoare

Algoritm
Semnătura

MD5
$1$

SHA-1
$4$

SHA-2-256
$5$

SHA-2-512
$6$

Astfel, pentru parola Qwerty și algoritmul MD5

menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0

Parola poate fi generată, de exemplu, printr-un generator online de hash-uri. www.insidepro.com/hashes.php?lang=ron, linie MD5(Unix)

2. Configurăm încărcarea PXELinux

Acum vom specifica cum să încărcăm pxelinux.com și să obținem meniul.
Specificarea încărcătorului pxelinux.com prin funcționalitatea WDS nu funcționează în SCCM. Comenzile de tip

wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86

nu sunt procesate. Verificați că imaginile de încărcare nu sunt setate executând comanda de ieșire a configurației serverului WDS

wdsutil /get-server /show:images

Meniul de boot PXE cu System Center Configuration Manager
Astfel, în SCCM 2012 nu se poate specifica propriul fișier pentru încărcare prin PXE pentru furnizorul SMSPXE. Prin urmare, vom configura domeniul activ al serverului DHCP.
În parametrii domeniului activ DHCP, specificăm parametrii conform tabelului.

Opțiunea DHCP
Numele parametrului
Valoare

066
Numele gazdei serverului de boot
sccm2012.test.local

067
Numele fișierului de boot
smsbootx86pxelinux.com

006
Servere DNS
192.168.57.10

015
Nume de domeniu DNS
test.local

În opțiunea 066, specificăm numele FQDN al serverului SCCM, iar în opțiunea 067 indicăm calea către încărcătorul x86 pxelinux.com începând de la rădăcina TFTP, în opțiunea 006 specificăm adresa IP a serverului DNS. În cazul în care în opțiunea 066 este folosit un nume scurt al serverului, în opțiunea 015 specificăm sufixul DNS al domeniului.

Complement
Mai detaliat, configurația DHCP a fost descrisă de mvgolubev aici. Dar pe DC opțiunea 150, adresa IP a serverului TFTP, a lipsit de la configurațiile domeniului DHCP și specificarea opțiunii 150 prin netsh nu a funcționat.Meniul de boot PXE cu System Center Configuration Manager

3. Verificarea funcționării

Configurările principale au fost finalizate și putem începe verificarea. Specificăm pe computerul de test din BIOS să se încarce prin rețea și ne încărcăm în meniul
Meniul de boot PXE cu System Center Configuration Manager

Selectăm punctul «Start to SCCM» și dacă pe computer este alocată o secvență de sarcini, după un timp va apărea fereastra «Asistent pentru crearea secvenței de sarcini» cu cererea de a introduce parola.
Meniul de boot PXE cu System Center Configuration Manager

Reporniți mașina, intrați din nou în meniu, selectați în meniu «Antivirus and tools» și introducem parola. Qwerty
Meniul de boot PXE cu System Center Configuration Manager

Selectăm un punct aleatoriu și observăm încărcarea imaginii ISO în memorie.
Meniul de boot PXE cu System Center Configuration Manager

Așteptăm și observăm rezultatul.
Meniul de boot PXE cu System Center Configuration Manager

Verificare finalizată.
Meniul de boot PXE cu System Center Configuration Manager

4. Setări suplimentare și particularități.

Configurarea rutării.

Dacă clientul, serverul DHCP și serverul care conține încărcătorul de rețea se află în același segment de rețea, nu este necesară configurarea suplimentară. Totuși, dacă clientul și serverul DHCP sau serverul WDS/SCCM se află în segmente de rețea diferite, se recomandă configurarea redirecționării pachetelor de difuzare de la client la serverul DHCP activ și la serverul WDS/SCCM activ pe routere. În literatura de specialitate în limba engleză, acest proces este cunoscut sub numele de „IP Helper table updates”. În acest caz, clientul, după ce primește o adresă IP, se conectează la serverul care conține încărcătorul de rețea direct prin pachete DHCP pentru a descărca încărcătorul de rețea.
Pentru routerele Cisco se folosește comanda

ip helper-address {ip address}

unde {ip address} adresa serverului DHCP sau a serverului WDS/SCCM. Folosind această comandă, sunt de asemenea redirecționate următoarele pachete UDP de difuzare

Port
Protocolul

69
TFTP

53
Domain Name System (DNS)

37
Serviciul de timp

137
Server de nume NetBIOS

138
Server de datagrame NetBIOS

67
Bootstrap Protocol (BOOTP)

49
TACACS

A doua metodă pentru a obține informații despre încărcătorul de rețea direct de la serverul DHCP este specificarea opțiunilor 60, 66, 67 pe serverul DHCP. Utilizarea parametrului DHCP 60 cu valoarea „PXEClient” în toate domeniile de aplicare DHCP, doar dacă serverul DHCP se află pe același server cu serviciile de desfășurare Windows. În acest caz, clientul se conectează la serverul serviciilor de desfășurare Windows direct prin protocolul TFTP prin UDP-portul 4011, și nu prin DHCP. Această metodă nu este recomandată de Microsoft din cauza problemelor de echilibrare a încărcăturii, procesării incorecte a parametrilor DHCP și a parametrilor de răspuns ai serviciilor de desfășurare Windows pe partea clientului. De asemenea, utilizarea doar a două opțiuni 66 și 67 DHCP permite evitarea parametrilor stabiliți pe serverul de încărcare a rețelei.
De asemenea, trebuie să deschideți următoarele портuri UDP pe serverul serviciilor de desfășurare Windows
portul 67 (DHCP)
portul 69 (TFTP)
portul 4011 (PXE)
și portul 68, dacă este necesară autorizarea DHCP pe server.

Mai detaliat procesul de configurare și nuanțele redirecționării între diferite servere WDS sunt descrise mai jos în surse:
Gestionarea programelor de încărcare a rețelei http://technet.microsoft.com/ru-ru/library/cc732351(v=ws.10).aspx
Gestionarea serverului http://technet.microsoft.com/ru-ru/library/cc770637(v=ws.10).aspx
Limitele de suport ale Microsoft Product Support Services (PSS) pentru încărcarea în rețea a Microsoft Windows Preinstallation Environment (Windows PE) 2.0 http://support.microsoft.com/kb/926172/en-us
Cum să redirecționezi difuzarea UDP (BOOTP / DHCP) pe Cisco http://www.cisco-faq.com/163/forward_udp_broadcas.html
Caracteristicile funcționării și configurării DHCP pe routerele Cisco (Partea 2) http://habrahabr.ru/post/89997/

Funcționalități suplimentare de încărcare locală

În mediu de test, comanda

localboot 0

întâlnește o astfel de eroare
Meniul de boot PXE cu System Center Configuration Manager
Din documentația syslinux reiese că

localboot 0

încărcarea se va face de pe disc local. Iar când se specifică o valoare concretă 0x00 de pe discheta principală și 0x80 de pe discul dur principal. Schimbând comanda în

localboot 0x80

OS-ul local a fost încărcat.
Dacă trebuie să faceți încărcarea de pe un disc, o partiție sau comanda localboot nu funcționează, atunci se poate utiliza capacitățile modulului chain.c32. După ce acesta a fost încărcat, comanda append specifică discul sau partiția specifică, numerotarea discurilor începe de la 0, iar numerotarea partițiilor de la 1, deoarece specificarea partiției 0 încarcă MBR. La specificarea discului, partiția poate fi omisă.

KERNEL chain.c32
APPEND hd0 0

sau

KERNEL chain.c32
APPEND hd0

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

Ordinea și descrierea încărcării fișierelor prin PXE

Așa cum s-a menționat la începutul articolului, directorul în care se află fișierele WDS pentru încărcare este conținut în valoarea parametrului RootFolder din ramura registrului HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Valorile posibile C:RemoteInstall
Aici, în parametru ReadFilter sunt specificate directoarele unde serverul TFTP caută fișiere pentru încărcare, începând de la rădăcină. Cu SCCM 2012 SP1 instalat, acest parametru este astfel

boot*
tmp*
SMSBoot*
SMSTemp*
SMSImages*

Dacă modificați valoarea parametrului în * toate fișierele din directorul RemoteInstall.

Rolul punctului de desfășurare SCCM 2012 este specificat în parametrul registrului ProvidersOrder, situat în ramura HKLMSystemCurrentControlSetWDSServerProvidersWDSPXE
Parametru ProvidersOrder poate lua valori

SMSPXE
punctul de servicii PXE în SCCM

SMS.PXE.Filter
Procesorul de script-uri PXE din MDT (Microsoft Deployment Toolkit)

BINLSVC
Procesor standard WDS și RIS

Cu SCCM instalat, parametrul ProvidersOrder are valoarea SMSPXE. Modificând parametrul se poate schimba ordinea de încărcare a furnizorilor.

În directorul RemoteInstall se află următoarele fișiere standard

wdsnbp.com

Program de încărcare prin rețea, dezvoltat pentru serviciile de implementare Windows care îndeplinește următoarele sarcini:
1. Detectarea arhitecturii.
2. Administrarea calculatoarelor aflate în așteptare. Atunci când politica de adăugare automată este activată, acest program de încărcare prin rețea este trimis către calculatoarele aflate în așteptare, pentru a suspenda încărcarea prin rețea și a informa serverul despre arhitectura computerului client.
3. Utilizarea legăturilor de încărcare prin rețea (inclusiv utilizarea parametrilor 66 și 67 din protocolul DHCP)

PXEboot.com

(Implicit) Necesită ca utilizatorul să apese tasta F12 pentru a continua încărcarea prin rețea

PXEboot.n12

Nu necesită apăsarea tastei F12 de către utilizator și începe imediat încărcarea rețelei

AbortPXE.com

Încarcă computerul folosind următorul element de încărcare din BIOS fără a aștepta

Bootmgr.exe

Managerul de încărcare Windows (Bootmgr.exe sau Bootmgr.efi). Încarcă prin programul încorporat de încărcare Windows dintr-o partiție specifică a unității sau printr-o conexiune la rețea (în cazul încărcării rețelei)

Bootmgfw.efi

Versiunea EFI a programelor PXEboot.com și PXEboot.n12 (în EFI, opțiunea de a încărca sau nu PXE este gestionată în shell-ul EFI, nu de programul de încărcare rețea). Programul Bootmgfw.efi combină funcționalitățile PXEboot.com, PXEboot.n12, abortpxe.com și bootmgr.exe. În prezent, există doar pentru arhitecturile x64 și Itanium

Default.bcd

Depozitul datelor de configurare a încărcării (BCD), format REGF, poate fi încărcat în REGEDIT, înlocuiește fișierul text Boot.ini

Încărcarea se realizează în următoarea ordine conform descrierii de mai sus
1. Se încarcă wdsnbp.com.
2. Apoi se încarcă pxeboot.com pentru arhitectura corespunzătoare
3. PXEBoot.com încarcă bootmgr.exe și depozitul de date de configurare a încărcării BCD
4. Bootmgr.exe citește înregistrările sistemului de operare din depozitul de date de configurare a încărcării BCD și încarcă fișierul Boot.sdi și imaginea Windows PE (boot.wim)
5. Bootmgr.exe începe încărcarea Windows PE, apelând la Winload.exe din imaginea Windows PE

Dacă în RemoteInstall există foldere

Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend

prezența acestora indică faptul că, înainte de a adăuga rolul de punct de distribuție în SCCM 2012 (punctele de servicii PXE în SCCM 2007), a existat o acțiune de configurare a serviciilor de desfășurare a Windows (WDS), rezultând astfel crearea automată a acestor foldere.
Pentru rolul de punct de distribuție (punct de servicii PXE în SCCM 2007), este suficient doar următoarele foldere

SMSBoot
SMSIMAGES
SMSTemp
Stores

Aceasta nu înseamnă că SCCM este instalat incorect, dar poate indica o posibilă sursă de erori.
Soluționarea diferitelor probleme ale legăturii WDS, SCCM și PXE este discutată detaliat în articolul Troubleshooting the PXE Service Point and WDS in Configuration Manager 2007

Rezultatul

În infrastructura IT gestionată de System Center Configuration Manager, a fost adăugat un nou instrument pentru administratori sistemici pe teren.

Lista linkurilor către imagini ISO (Faceți clic pentru a afișa)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

Vă mulțumesc pentru atenție!
Meniul de boot PXE cu System Center Configuration Manager

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster