
Consideriamo l'espansione delle funzionalità di System Center Configuration Manager (prodotto per la gestione dell'infrastruttura IT) durante il boot dei computer degli utenti via rete utilizzando PXE. Creiamo un menu di avvio basato su PXELinux con le funzionalità di System Center e aggiungiamo opzioni di scansione antivirus, immagini di diagnostica e ripristino. Alla fine dell'articolo trattiamo delle peculiarità del funzionamento di System Center 2012 Configuration Manager in combinazione con Windows Deployment Services (WDS) durante l'avvio tramite PXE.
Tutte le operazioni vengono eseguite in un ambiente di test, in cui è già installato System Center 2012 Configuration Manager SP1, un controller di dominio e un certo numero di macchine di test. Si presume che in SCCM sia già in uso il deployment tramite rete utilizzando PXE.
Introduzione
L'ambiente di test è composto da diverse macchine virtuali. Su tutte le macchine è installato il sistema operativo guest Microsoft Windows Server 2008 R2 (x64), adattatore di rete E1000, controller SCSI: LSI Logic SAS.
Nome (Ruoli)
Indirizzo IP / Nome DNS
Funzionalità
SCCM (System Center Configuration Manager)
192.168.57.102
sccm2012.test.local
Installato System Center Configuration Manager 2012 SP1
DC (AD, DHCP, DNS)
192.168.57.10
dc1.test.local
Ruolo di controller di dominio, server DHCP e server DNS
TEST (Macchina di test)
192.168.57.103
test.test.local
Per il testing
GW (Gateway)
192.168.57.1
Routing tra reti. Ruolo del gateway
1. Aggiungiamo PXELinux in SCCM
Le operazioni vengono eseguite su una macchina in cui è installato System Center Configuration Manager.
- Definiamo la directory in cui si trovano i file WDS per l'avvio; per fare ciò, consultiamo il valore del parametro nel registro.
RootFoldernella chiaveHKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Valore predefinitoC:RemoteInstall
I file per il boot dal punto di distribuzione SCCM si trovano nelle directorysmsbootx86esmsbootx64a seconda dell'architettura.
Iniziamo configurando la directory per l'architettura a 32 bit, per impostazione predefinitac:Remoteinstallsmsbootx86 - Scarichiamo l'archivio con l'ultima . Copiamo da syslinux-5.01.zip i seguenti file:
c:Remoteinstallsmsbootx86memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
File aggiuntivi sono necessari per evitare un errore simile.
Rinominiamo
- In
c:Remoteinstallsmsbootx86pxelinux.0pxelinux.cominc:remoteinstallsmsbootx86
Nella cartellafacciamo una copia diabortpxe.come la rinominiamo inabortpxe.0Se non si rinomina in questo modo
, allora ad esempio l'istruzione.0Kernel abortpxe.comverrà eseguita con errore: Booting kernel failed: Bad file numberPer PXELINUX l'estensione del file di avvio deve essere impostata secondo la tabella.
Per PXELINUX, l'estensione del file di avvio deve essere impostata secondo la tabella.nessuno o altro immagine del kernel Linux .0 programma di bootstrap PXE (NBP) [solo PXELINUX] .bin "settore di avvio CD" [solo ISOLINUX] .bs Settore di avvio [solo SYSLINUX] .bss Settore di avvio, il superblocco DOS sarà patchato in [solo SYSLINUX] .c32 immagine COM32 (COMBOOT a 32 bit) .cbt immagine COMBOOT (non eseguibile da DOS) .com immagine COMBOOT (eseguibile da DOS) .img immagine del disco [solo ISOLINUX]Fonte: sezione "File del kernel"
- Per evitare di premere ripetutamente il tasto F12 durante il caricamento di SCCM dal menu, rinominiamo pxeboot.com in pxeboot.com.f12, copiamo pxeboot.n12 in pxeboot.com
Se non lo facciamo, ogni volta che faremo una scelta riceveremo questo messaggio
Nota: Non dimentichiamo di rinominare questi file anche nella cartella per x64 perché durante il caricamentox86wdsnbp.comdalla cartella x86, il bootloader determina l'architettura del processore e carica il file successivo dalla cartella corrispondente. Quindi, per x64, il file successivo non saràx86pxeboot.com, max64pxeboot.com - Scarichiamo/creiamo , con risoluzione 640x480, lo copiamo nella stessa cartella. Creiamo la cartella
ISOdove metteremo le immagini ISO. Creiamo la cartellapxelinux.cfgper le configurazioni. - Nella cartella pxelinux.cfg creiamo un file default, in codifica non Unicode, con il contenuto
default (Clicca per visualizzare)# используем графическое меню 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.0Nella cartella
pxelinux.cfgcreiamo un filegraphics.confcon il contenuto
graphics.conf (Clicca per visualizzare)MENU MARGIN 10 MENU ROWS 16 MENU TABMSGROW 21 MENU TIMEOUTROW 26 MENU COLOR BORDER 30;44 #00000000 #00000000 nessuno MENU COLOR SCROLLBAR 30;44 #00000000 #00000000 nessuno MENU COLOR TITLE 0 #ffffffff #00000000 nessuno MENU COLOR SEL 30;47 #40000000 #20ffffff MENU BACKGROUND background.png NOESCAPE 0 ALLOWOPTIONS 0Nella cartella
pxelinux.cfgcreiamo un fileav.confcon il contenuto
av.conf (Clicca per visualizzare)DEFAULT vesamenu.c32 PROMPT 0 MENU TITLE Antivirus e strumenti MENU INCLUDE pxelinux.cfg/graphics.conf label main menu menu label torna al menu principale 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 #Carichiamo ISO dal percorso completo, possiamo caricare da un'altra TFTP label winpe menu label WinPE da un'altra 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 - Di conseguenza, la cartella c:remoteinstallsmsbootx86 contiene la struttura
facciamo una copia di
pxelinux.cfgchain.c32
ldlinux.c32
libcom32.c32
libutil.c32
pxechn.c32
vesamenu.c32
c:remoteinstallsmsbootx86
background.png
pxelinux.cfg
pxelinux.cfg
pxelinux.cfg
ISO
Se non si rinomina in questo modo
wdsnbp.com
bootmgfw.efi
wdsmgfw.efi
bootmgr.exe
pxeboot.n12
pxeboot.com
e la rinominiamo indefault
av.conf
graphics.conf
*.iso - Per l'architettura x64 copiamo analogamente e creiamo la stessa struttura nella cartella
c:remoteinstallsmsbootx64
Estensione
Quando utilizziamo il comandomenu PASSWDla password può essere impostata o così com'è, o utilizzare un algoritmo di hashing, aggiungendo all'inizio del parametro la corrispondente firmaAlgoritmo
FirmaMD5
$1$SHA-1
$4$SHA-2-256
$5$SHA-2-512
$6$Quindi per la password
Qwertye l'algoritmo MD5menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0È possibile generare una password, ad esempio, tramite un generatore di hash online , stringa
MD5(Unix)
2. Configuriamo il caricamento di PXELinux
Ora indichiamo come caricare pxelinux.com e ottenere il menu.
L'indicazione del bootloader pxelinux.com tramite la funzionalità WDS non funziona in SCCM. Comandi come
wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86
non vengono elaborati. Assicurati che le immagini di avvio non siano impostate eseguendo il comando per visualizzare la configurazione del server WDS
wdsutil /get-server /show:images
Pertanto, in SCCM 2012 non è possibile impostare il proprio file di avvio tramite PXE per il fornitore SMSPXE. Dobbiamo quindi configurare l'area attiva del server DHCP.
Nelle impostazioni dell'area attiva DHCP impostiamo i parametri secondo la tabella
Opzione DHCP
Nome parametro
Valore
066
Nome host del server di avvio
sccm2012.test.local
067
Nome del file di avvio
smsbootx86pxelinux.com
006
Server DNS
192.168.57.10
015
Nome di dominio DNS
test.local
Nell'opzione 066 indichiamo il nome FQDN del server sccm, nell'opzione 067 indichiamo il percorso fino al bootloader x86 pxelinux.com partendo dalla radice TFTP, nell'opzione 006 indichiamo l'indirizzo IP del server DNS. Se nell'opzione 066 viene utilizzato un nome breve del server, nell'opzione 015 indichiamo il suffisso DNS del dominio.
Estensione
Una descrizione più dettagliata della configurazione DHCP è stata fornita da . Ma nell'DCopzione 150, l'indirizzo IP del server TFTP, era assente nelle impostazioni dell'area DHCP e l'indicazione dell'opzione 150 tramite netsh non funzionava.
3. Verifica del funzionamento
Le impostazioni principali sono terminate e possiamo procedere con la verifica. Indichiamo sul computer di test nel BIOS di avviarsi tramite rete e ci avviamo nel menu
Selezioniamo la voce «Inizio a SCCM» e se al computer è assegnata una sequenza di attività, dopo un po' apparirà la finestra «Master di creazione sequenza di attività» con la richiesta di inserire la password

Riavviamo la macchina, accediamo di nuovo al menu, selezioniamo nel menu «Antivirus e strumenti» e inseriamo la password Qwerty
Selezioniamo un'opzione a caso e osserviamo il caricamento dell'immagine ISO nella memoria
Aspettiamo e osserviamo il risultato
Verifica completata

4. Impostazioni aggiuntive e caratteristiche
Configurazione della routing
Se il client, il server DHCP e il server contenente il caricatore di rete si trovano nella stessa rete, non è necessaria alcuna configurazione aggiuntiva. Se invece il client e il server DHCP o il server WDS/SCCM si trovano in segmenti di rete diversi, si raccomanda di configurare i router per reindirizzare i pacchetti di broadcast dal client al server DHCP attivo e al server WDS/SCCM attivo. Nella letteratura anglofona, questo processo è noto come "aggiornamenti della tabella IP Helper". In tal caso, il client, dopo aver ottenuto l'indirizzo IP, contatta direttamente il server contenente il caricatore di rete tramite pacchetti DHCP, per scaricare il caricatore di rete.
Per i router Cisco si utilizza il comando
ip helper-address {ip address}
dove {ip address} indirizzo del server DHCP o del server WDS/SCCM. Utilizzando questo comando vengono inoltre inoltrati i seguenti pacchetti UDP di broadcast
Porta
Protocollo
69
TFTP
53
Domain Name System (DNS)
37
Servizio di tempo
137
NetBIOS Name Server
138
NetBIOS Datagram Server
67
Bootstrap Protocol (BOOTP)
49
TACACS
Un secondo metodo per ottenere informazioni sul caricatore di rete direttamente dal server DHCP è specificare le opzioni 60, 66, 67 sul server DHCP. L'uso del parametro DHCP 60 con valore "PXEClient" in tutte le aree di applicazione DHCP, solo se il server DHCP è ospitato sullo stesso server delle funzioni di distribuzione di Windows. In questo caso, il client contatta direttamente il server delle funzioni di distribuzione di Windows tramite il protocollo TFTP sulla porta UDP 4011, invece che tramite DHCP. Microsoft sconsiglia questo modo a causa di problemi di bilanciamento del carico, della gestione errata dei parametri DHCP e dei parametri di risposta delle funzioni di distribuzione di Windows lato client. E anche perché l'uso delle sole due opzioni 66 e 67 DHCP consente di aggirare i parametri impostati sul server di avvio della rete.
È inoltre necessario aprire le seguenti porte UDP sul server delle funzioni di distribuzione di Windows
porta 67 (DHCP)
porta 69 (TFTP)
porta 4011 (PXE)
e la porta 68, se è richiesta l'autorizzazione DHCP sul server.
In dettaglio, il processo di configurazione e le sfumature del reindirizzamento tra diversi server WDS sono descritti di seguito nelle fonti:
Gestione dei programmi di avvio di rete
Gestione del server
Limiti di supporto dei Microsoft Product Support Services (PSS) per l'avvio di rete di Microsoft Windows Preinstallation Environment (Windows PE) 2.0
Come reindirizzare i broadcast UDP (BOOTP / DHCP) su Cisco
Caratteristiche di funzionamento e configurazione di DHCP sui router Cisco (Parte 2)
Ulteriori possibilità di avvio locale
Nel sistema di test il comando
localboot 0 genera un errore del genere

Dalla documentazione di syslinux, risulta che
localboot 0il boot avverrà dal disco locale. Specificando un valore specifico 0x00 dal floppy disk principale, specificando 0x80 dal disco rigido principale. Modificando il comando in
localboot 0x80 l'OS locale si è avviato.
Se c'è la necessità di avviare da un disco o partizione specifica e il comando localboot non funziona, allora si possono utilizzare le possibilità del modulo chain.c32. Dopo il suo avvio, con il comando append si indica un disco o una partizione specifica, la numerazione dei dischi parte da 0, la numerazione delle partizioni da 1 poiché specificando la partizione 0 si carica il MBR. Se viene specificato un disco, non è necessario indicare la partizione.
KERNEL chain.c32
APPEND hd0 0o
KERNEL chain.c32
APPEND hd0 Fonti:
L'ordine e la descrizione del caricamento dei file tramite PXE
Come già accennato all'inizio dell'articolo, la cartella in cui si trovano i file WDS per l'avvio è contenuta nel valore del parametro RootFolder nella chiave di registro HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Valore predefinito C:RemoteInstall
Qui, nel parametro ReadFilter sono indicati i percorsi in cui il server TFTP cerca i file per l'avvio, partendo dalla radice. Con SCCM 2012 SP1 installato, questo parametro è
boot*
tmp*
SMSBoot*
SMSTemp*
SMSImages* Se si modifica il valore del parametro in * verranno elaborati tutti i file presenti nella cartella RemoteInstall.
Il ruolo del punto di distribuzione SCCM 2012 è specificato nel parametro del registro ProvidersOrder, situato nella chiave HKLMSystemCurrentControlSetWDSServerProvidersWDSPXE
Parametro ProvidersOrder può assumere i valori
SMSPXE
il punto di servizio PXE in SCCM
SMS.PXE.Filter
Il gestore degli script PXE da MDT (Microsoft Deployment Toolkit)
BINLSVC
Il gestore standard WDS e RIS
Con SCCM installato, il parametro ProvidersOrder ha importanza SMSPXE. Modificando il parametro si può cambiare l'ordine di avvio dei provider.
Nella directory RemoteInstall sono presenti i seguenti file standard
wdsnbp.com
Il programma di avvio di rete, sviluppato per i servizi di distribuzione Windows, svolge i seguenti compiti:
1. Rilevamento dell'architettura.
2. Gestione dei computer in attesa. Quando è abilitata la politica di inserimento automatico, questo programma di avvio di rete viene inviato ai computer in attesa per sospendere il boot di rete e comunicare al server l'architettura del computer client.
3. Utilizzo dei riferimenti per l'avvio di rete (incluso l'uso dei parametri 66 e 67 del protocollo DHCP)
PXEboot.com
(Per impostazione predefinita) Richiede che l'utente prema il tasto F12 per continuare l'avvio di rete
PXEboot.n12
Non richiede la pressione del tasto F12 da parte dell'utente e inizia immediatamente il caricamento di rete
AbortPXE.com
Carica il computer utilizzando il successivo elemento di avvio nel BIOS senza attesa
Bootmgr.exe
Gestore avvio di Windows (Bootmgr.exe o Bootmgr.efi). Carica tramite firmware il caricatore di Windows da una partizione specifica del disco o attraverso una connessione di rete (in caso di caricamento di rete)
Bootmgfw.efi
Versione EFI dei programmi PXEboot.com e PXEboot.n12 (in EFI la scelta di caricare o meno PXE avviene nella shell EFI, non dal programma di caricamento di rete). Il programma Bootmgfw.efi combina le funzionalità di PXEboot.com, PXEboot.n12, abortpxe.com e bootmgr.exe. Attualmente esiste solo per le architetture x64 e Itanium
Default.bcd
Archivio configurazione avvio (BCD), formato REGF, può essere caricato in REGEDIT, sostituisce un file di testo Boot.ini
Il caricamento avviene nel seguente ordine secondo la descrizione sopra
1. Viene caricato wdsnbp.com.
2. Successivamente viene caricato pxeboot.com dell'architettura corrispondente
3. PXEBoot.com carica bootmgr.exe e l'archivio configurazione avvio BCD
4. Bootmgr.exe legge le voci del sistema operativo dall'archivio configurazione avvio BCD e carica il file Boot.sdi e l'immagine Windows PE (boot.wim)
5. Bootmgr.exe inizia il caricamento di Windows PE, contattando Winload.exe nell'immagine Windows PE
Se in RemoteInstall ci sono cartelle
Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend la loro presenza indica che prima di aggiungere il ruolo di punto di distribuzione in SCCM 2012 (punti di servizio PXE in SCCM 2007) c'è stata qualche azione di configurazione dei Windows Deployment Services (WDS) installati, che ha portato alla creazione automatica di queste cartelle.
Per il ruolo di punto di distribuzione (punto di servizio PXE in SCCM 2007) sono sufficienti solo le seguenti cartelle
SMSBoot
SMSIMAGES
SMSTemp
StoresQuesto non implica che SCCM sia stato installato in modo errato, ma può indicare una possibile fonte di errori.
Una risoluzione molto dettagliata di vari problemi legati a WDS, SCCM e PXE è trattata nell'articolo
Risultato
Nell'infrastruttura IT gestita da System Center Configuration Manager è stato aggiunto un nuovo strumento per il lavoro degli amministratori di sistema on-site.
Elenco dei collegamenti per le immagini ISO (Clicca per visualizzare)
Grazie per l'attenzione!

Fonte: habr.com
