
Esploriamo l'espansione delle capacità di System Center Configuration Manager (un prodotto per la gestione dell'infrastruttura IT) per l'avvio di computer utente tramite rete utilizzando PXE. Creiamo un menu di avvio basato su PXELinux con le funzionalità di System Center e aggiungiamo opzioni per la scansione antivirus, immagini di diagnostica e recupero. Alla fine dell'articolo, tocchiamo le peculiarità del lavoro di System Center 2012 Configuration Manager in collaborazione con Windows Deployment Services (WDS) per l'avvio tramite PXE.
Tutte le operazioni vengono eseguite in un ambiente di test, dove è 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 attraverso rete utilizzando PXE.
Introduzione
L'ambiente di test è composto da diverse macchine virtuali. Su tutte le macchine è installato il sistema operativo ospite 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 test
GW (Gateway)
192.168.57.1
Routing tra reti. Ruolo del gateway.
1. Aggiungiamo PXELinux in SCCM
Le azioni vengono effettuate su una macchina dove è installato System Center Configuration Manager
- Determiniamo la directory in cui si trovano i file WDS per il boot; per questo controlliamo nel registro il valore del parametro
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, di defaultc:Remoteinstallsmsbootx86 - Scarichiamo l'archivio con l'ultima versione . Copiamo da syslinux-5.01.zip i
c:Remoteinstallsmsbootx86seguenti file:
memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
File aggiuntivi sono necessari per evitare questo errore
- In
c:Remoteinstallsmsbootx86rinominiamopxelinux.0inpxelinux.com
Nella cartellac:remoteinstallsmsbootx86facciamo una copia diabortpxe.come la rinominiamo inabortpxe.0
Se non viene rinominato all'estensione.0, quindi ad esempio l'istruzioneKernel abortpxe.comverrà eseguita con errore: Booting kernel failed: Bad file number
Per PXELINUX, l'estensione del file di boot deve essere impostata secondo la tabellanessuno o altro Immagine del kernel Linux .0 Programma di avvio PXE (NBP) [solo PXELINUX] .bin "Settore di avvio del CD" [solo ISOLINUX] .bs Settore di avvio [solo SYSLINUX] .bss Settore di avvio, il superblocco DOS sarà patchato [solo SYSLINUX] .c32 Immagine COM32 (COMBOOT a 32 bit) .cbt Immagine COMBOOT (non eseguibile da DOS) .com Immagine COMBOOT (eseguibile da DOS) .img Immagine disco [solo ISOLINUX]Fonte: sezione “File kernel”
- Per non dover premere più volte il tasto F12 durante il caricamento di SCCM dal menu, rinominiamo pxeboot.com in pxeboot.com.f12 e copiamo pxeboot.n12 in pxeboot.com
Se non lo facciamo, ogni volta che selezioniamo otterremo questo messaggio
Nota: Non dimentichiamo di rinominare questi file anche nella cartella per x64 perché, quando si avviax86wdsnbp.comdalla cartella x86, il caricatore determina l'architettura del processore e carica il file successivo dalla cartella con l'architettura corrispondente. Quindi per x64 il file successivo non saràx86pxeboot.com, ex64pxeboot.com - Scarichiamo/creiamo , con risoluzione 640x480, copiando nella stessa cartella. Creiamo la cartella
ISOdove posizioneremo 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)MARGINE MENU 10 RIGHE MENU 16 MENU TABMSGROW 21 MENU TIMEOUTROW 26 MENU COLORE BORDO 30;44 #00000000 #00000000 nessuno MENU COLORE BARRA DI SCORRIMENTO 30;44 #00000000 #00000000 nessuno MENU COLORE TITOLO 0 #ffffffff #00000000 nessuno MENU COLORE SELEZIONE 30;47 #40000000 #20ffffff MENU SFONDO background.png NOESCAPE 0 ALLOWOPTIONS 0Nella cartella
pxelinux.cfgcreiamo un fileav.confcon il contenuto
av.conf (Clicca per visualizzare)DEFAULT vesamenu.c32 PROMPT 0 TITOLO MENU Antivirus e strumenti MENU INCLUDI pxelinux.cfg/graphics.conf etichetta menu principale etichetta menu ritorna al menu principale kernel vesamenu.c32 append pxelinux.cfg/default etichetta drweb etichetta menu DrWeb kernel memdisk append iso raw initrd=isodrweb.iso etichetta eset etichetta menu Eset kernel memdisk append iso raw initrd=isoeset_sysrescue.iso etichetta kav etichetta menu 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 tramite il percorso completo, è possibile caricare da un altro TFTP etichetta winpe etichetta menu WinPE da un altro TFTP kernel sccm2012.test.local::smsbootx86memdisk append iso raw initrd=sccm2012.test.local::smsbootx86isoWinPE_RaSla.iso etichetta clonezilla etichetta menu Clonezilla kernel memdisk append iso raw initrd=isoclonezilla.iso - Alla fine, la cartella c:remoteinstallsmsbootx86 contiene la struttura
c:remoteinstallsmsbootx86
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 - Per l'architettura x64 si copia in modo analogo e si crea la stessa struttura nella cartella
c:remoteinstallsmsbootx64
Supplemento
Utilizzando il comandomenu PASSWDla password può essere impostata sia così com'è, sia utilizzando un algoritmo di hashing, aggiungendo all'inizio del parametro la firma corrispondenteAlgoritmo
FirmaMD5
$1$SHA-1
$4$SHA-2-256
$5$SHA-2-512
$6$Pertanto, 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 boot di PXELinux
Ora specifichiamo come caricare pxelinux.com e ottenere il menu.
La specifica del bootloader pxelinux.com tramite la funzionalità WDS non funziona in SCCM. I comandi come
wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86
non vengono elaborati. Assicurarsi che le immagini di avvio non siano impostate eseguendo il comando di output della configurazione del server WDS
wdsutil /get-server /show:images
Pertanto, in SCCM 2012 non è possibile specificare il proprio file di avvio tramite PXE per il fornitore SMSPXE. Perciò configureremo l'area attiva del server DHCP.
Nelle impostazioni dell'area attiva del DHCP impostiamo i parametri secondo la tabella
Opzione DHCP
Nome del parametro
Significato
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 specifichiamo il percorso del bootloader x86 pxelinux.com a partire 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.
Supplemento
Ho descritto più nel dettaglio la configurazione DHCP . Ma sullaDCl'opzione 150, l'indirizzo IP del server TFTP, era assente nelle impostazioni dell'area DHCP e la specifica dell'opzione 150 tramite netsh non funzionava.
3. Verifica del funzionamento
Le impostazioni principali sono concluse e possiamo procedere alla verifica. Indichiamo sul computer di test nel BIOS che deve avviarsi tramite rete e ci avviamo nel menu
Selezioniamo l'opzione «Start to SCCM» e se al computer è assegnata una sequenza di attività, dopo un po' apparirà la finestra «Master di creazione della sequenza di attività» con la richiesta di inserire la password

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

4. Impostazioni e caratteristiche aggiuntive
Configurazione del routing
Se il client, il server DHCP e il server che contiene il bootloader di rete si trovano nello stesso segmento di rete, non è necessaria alcuna configurazione aggiuntiva. Tuttavia, se il client e il server DHCP o il server WDS/SCCM si trovano in segmenti di rete diversi, è consigliabile configurare i router per la riassegnazione dei pacchetti di broadcast dal client al server DHCP attivo e al server WDS/SCCM attivo. In letteratura anglofona, questo processo è noto come "aggiornamenti della tabella IP Helper". In questo caso, il client, dopo aver ricevuto un indirizzo IP, si connette al server che contiene il bootloader di rete direttamente tramite pacchetti DHCP per scaricare il bootloader 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 anche inoltrati i seguenti pacchetti UDP di broadcast
Porto
Protocollo
69
TFTP
53
Domain Name System (DNS)
37
Servizio di time
137
NetBIOS Name Server
138
NetBIOS Datagram Server
67
Bootstrap Protocol (BOOTP)
49
TACACS
Il secondo metodo per ottenere informazioni sul bootloader di rete direttamente dal server DHCP da parte del client consiste nell'impostare le opzioni 60, 66, 67 sul server DHCP. L'uso del parametro DHCP 60 con il valore "PXEClient" in tutte le aree di applicazione DHCP, solo se il server DHCP è ospitato sullo stesso server delle funzionalità di distribuzione di Windows. In questo caso, il client si connette al server delle funzioni di distribuzione di Windows direttamente attraverso il protocollo TFTP via UDP sulla porta 4011, invece che tramite DHCP. Questo approccio non è consigliato da Microsoft a causa di problemi di bilanciamento del carico, elaborazione errata delle opzioni DHCP e delle risposte delle funzionalità di distribuzione di Windows sul lato client. Inoltre, l'uso delle sole due opzioni 66 e 67 DHCP consente di eludere le impostazioni definite sul server di avvio di rete.
È inoltre necessario aprire le seguenti porte UDP sul server delle funzionalità di distribuzione di Windows
porta 67 (DHCP)
porta 69 (TFTP)
porta 4011 (PXE)
e porta 68, se è necessaria l'autenticazione DHCP sul server.
Il processo di configurazione e i dettagli del reindirizzamento tra i vari server WDS sono descritti di seguito nelle risorse:
Gestione dei programmi di avvio di rete
Gestione del server
Microsoft Product Support Services (PSS) limiti di supporto per il boot di rete dell'ambiente di preinstallazione di Microsoft Windows (Windows PE) 2.0
Come inoltrare il broadcast UDP (BOOTP / DHCP) su Cisco
Caratteristiche del funzionamento e della configurazione DHCP sui router Cisco (Parte 2)
Ulteriori opzioni di avvio locale
Nel ambiente di test, il team
localboot 0 riporta questo errore

Dalla documentazione di syslinux, si evince che
localboot 0il caricamento avverrà dal disco locale. Specificando un valore concreto di 0x00 si avvierà dal floppy disk primario, mentre specificando 0x80 dal disco rigido primario. Modificando il comando in
localboot 0x80 il sistema operativo locale si è avviato.
Se è necessario avviare da un disco specifico, la partizione o il comando localboot non funziona, allora si possono utilizzare le funzionalità del modulo chain.c32. Dopo il suo caricamento, con il comando append si specifica il disco o la partizione del disco, la numerazione dei dischi inizia da 0, la numerazione delle partizioni da 1, in quanto specificando la partizione 0 si carica il MBR. Se si specifica il disco, la partizione può non essere indicata.
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 nel ramo del registro HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Valore predefinito C:RemoteInstall
Qui, nel parametro ReadFilter sono indicati i cataloghi 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 * tutti i file presenti nella directory verranno elaborati RemoteInstall.
Il ruolo del punto di distribuzione SCCM 2012 è specificato nel parametro del registro ProvidersOrder, situato nel ramo HKLMSystemCurrentControlSetWDSServerProvidersWDSPXE
Caratteristica ProvidersOrder può assumere i valori
SMSPXE
punto di servizio PXE in SCCM
SMS.PXE.Filter
Gestore PXE degli script MDT (Microsoft Deployment Toolkit)
BINLSVC
Gestore standard WDS e RIS
Con SCCM installato, il parametro ProvidersOrder ha importanza SMSPXE. Modificando il parametro, è possibile cambiare l'ordine di avvio dei provider.
Nella directory RemoteInstall i seguenti file standard sono presenti
wdsnbp.com
Programma di avvio della rete, progettato per servizi di distribuzione Windows, eseguendo le seguenti funzioni:
1. Rilevamento dell'architettura.
2. Gestione dei computer in attesa. Quando è attivata la politica di aggiunta automatica, questo programma di avvio della rete viene inviato ai computer in attesa per sospendere l'avvio di rete e comunicare al server l'architettura del computer client.
3. Uso dei riferimenti per l'avvio della rete (incluso l'uso dei parametri 66 e 67 del protocollo DHCP)
PXEboot.com
(Di default) 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
Avvia il computer utilizzando il seguente elemento di avvio nel BIOS senza attese
Bootmgr.exe
Gestore di avvio di Windows (Bootmgr.exe o Bootmgr.efi). Avvia utilizzando il firmware per caricare Windows da una partizione del disco o tramite una connessione di rete (in caso di avvio di rete)
Bootmgfw.efi
Versione EFI dei programmi PXEboot.com e PXEboot.n12 (in EFI, la scelta di avviare o meno PXE avviene nell'interfaccia EFI e non dal programma di avvio di rete). Il programma Bootmgfw.efi unisce le funzionalità di PXEboot.com, PXEboot.n12, abortpxe.com e bootmgr.exe. Al momento è disponibile solo per le architetture x64 e Itanium
Default.bcd
Magazzino dati di configurazione di avvio (BCD), formato REGF, può essere caricato in REGEDIT, sostituisce il file di testo Boot.ini
Il caricamento avviene nell'ordine seguente in base alla descrizione sopra
1. Viene caricato wdsnbp.com.
2. Successivamente viene caricato pxeboot.com corrispondente all'architettura
3. PXEBoot.com carica bootmgr.exe e il magazzino dati di configurazione di avvio BCD
4. Bootmgr.exe legge le voci di configurazione dell'avvio del sistema operativo nel BCD e carica il file Boot.sdi e l'immagine Windows PE (boot.wim)
5. Bootmgr.exe inizia il caricamento di Windows PE, richiamando Winload.exe nell'immagine Windows PE
Se ci sono RemoteInstall cartelle
Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend la loro presenza indica che è stata eseguita qualche azione di configurazione dei Windows Deployment Services (WDS) installati prima di aggiungere il ruolo di punto di distribuzione in SCCM 2012 (punto di servizio PXE in SCCM 2007), che ha portato alla creazione automatica di queste cartelle.
Per il ruolo di punto di distribuzione (punto di servizio PXE in SCCM 2007) è sufficiente solo le seguenti cartelle
SMSBoot
SMSIMAGES
SMSTemp
StoresQuesto non significa che SCCM sia installato in modo errato, ma può indicare una possibile fonte di errori.
La risoluzione di vari problemi relativi all'integrazione di WDS, SCCM e PXE è trattata in modo dettagliato nell'articolo
Risultato
Nell'infrastruttura IT gestita da System Center Configuration Manager è stato aggiunto un nuovo strumento per il lavoro degli amministratori di sistema sul campo.
Elenco di link alle immagini ISO (Clicca per visualizzare)
Grazie per l'attenzione!

Fonte: habr.com
