Menu di avvio PXE con System Center Configuration Manager

Menu di avvio PXE con System Center Configuration Manager

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. RootFolder nella chiave HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
    Valore predefinito C:RemoteInstall
    I file per il boot dal punto di distribuzione SCCM si trovano nelle directory smsbootx86 e smsbootx64 a seconda dell'architettura.
    Iniziamo configurando la directory per l'architettura a 32 bit, per impostazione predefinita c:Remoteinstallsmsbootx86
  • Scarichiamo l'archivio con l'ultima syslinux . Copiamo da syslinux-5.01.zip i seguenti file: c:Remoteinstallsmsbootx86 memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
    File aggiuntivi sono necessari per evitare un errore simile.
    Rinominiamo
    Menu di avvio PXE con System Center Configuration Manager
  • In c:Remoteinstallsmsbootx86 pxelinux.0 pxelinux.com in c:remoteinstallsmsbootx86
    Nella cartella facciamo una copia di abortpxe.com e la rinominiamo in abortpxe.0 Se non si rinomina in questo modo
    , allora ad esempio l'istruzione .0Kernel abortpxe.com
    verrà eseguita con errore: Booting kernel failed: Bad file number

    Per 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: http://www.syslinux.org/wiki/index.php/SYSLINUX#KERNEL_file 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
    Menu di avvio PXE con System Center Configuration Manager
    Nota: Non dimentichiamo di rinominare questi file anche nella cartella per x64 perché durante il caricamento x86wdsnbp.com dalla 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, ma x64pxeboot.com
  • Scarichiamo/creiamo background.png, con risoluzione 640x480, lo copiamo nella stessa cartella. Creiamo la cartella ISO dove metteremo le immagini ISO. Creiamo la cartella pxelinux.cfg per 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.0

    Nella cartella pxelinux.cfg creiamo un file graphics.conf con 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 0

    Nella cartella pxelinux.cfg creiamo un file av.conf con 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.cfg

    chain.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 in

    default
    av.conf
    graphics.conf
    *.iso

  • Per l'architettura x64 copiamo analogamente e creiamo la stessa struttura nella cartella c:remoteinstallsmsbootx64

Estensione
Quando utilizziamo il comando menu PASSWD la password può essere impostata o così com'è, o utilizzare un algoritmo di hashing, aggiungendo all'inizio del parametro la corrispondente firma

Algoritmo
Firma

MD5
$1$

SHA-1
$4$

SHA-2-256
$5$

SHA-2-512
$6$

Quindi per la password Qwerty e l'algoritmo MD5

menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0

È possibile generare una password, ad esempio, tramite un generatore di hash online www.insidepro.com/hashes.php?lang=rus, 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

Menu di avvio PXE con System Center Configuration Manager
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 mvgolubev qui. Ma nell' DC opzione 150, l'indirizzo IP del server TFTP, era assente nelle impostazioni dell'area DHCP e l'indicazione dell'opzione 150 tramite netsh non funzionava.Menu di avvio PXE con System Center Configuration Manager

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
Menu di avvio PXE con System Center Configuration Manager

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
Menu di avvio PXE con System Center Configuration Manager

Riavviamo la macchina, accediamo di nuovo al menu, selezioniamo nel menu «Antivirus e strumenti» e inseriamo la password Qwerty
Menu di avvio PXE con System Center Configuration Manager

Selezioniamo un'opzione a caso e osserviamo il caricamento dell'immagine ISO nella memoria
Menu di avvio PXE con System Center Configuration Manager

Aspettiamo e osserviamo il risultato
Menu di avvio PXE con System Center Configuration Manager

Verifica completata
Menu di avvio PXE con System Center Configuration Manager

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 http://technet.microsoft.com/ru-ru/library/cc732351(v=ws.10).aspx
Gestione del server http://technet.microsoft.com/ru-ru/library/cc770637(v=ws.10).aspx
Limiti di supporto dei Microsoft Product Support Services (PSS) per l'avvio di rete di Microsoft Windows Preinstallation Environment (Windows PE) 2.0 http://support.microsoft.com/kb/926172/en-us
Come reindirizzare i broadcast UDP (BOOTP / DHCP) su Cisco http://www.cisco-faq.com/163/forward_udp_broadcas.html
Caratteristiche di funzionamento e configurazione di DHCP sui router Cisco (Parte 2) http://habrahabr.ru/post/89997/

Ulteriori possibilità di avvio locale

Nel sistema di test il comando

localboot 0

genera un errore del genere
Menu di avvio PXE con System Center Configuration Manager
Dalla documentazione di syslinux, risulta che

localboot 0

il 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 0

o

KERNEL chain.c32
APPEND hd0

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

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
Stores

Questo 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 Risoluzione dei problemi del punto di servizio PXE e di WDS in Configuration Manager 2007

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

Grazie per l'attenzione!
Menu di avvio PXE con System Center Configuration Manager

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster