Preboot Execution Environment
Preboot Execution Environment (PXE), ovvero ambiente di esecuzione pre-boot, è un metodo per eseguire il boot di un computer utilizzando una connessione di rete ethernet ed il supporto di un server, e senza bisogno di una unità di memoria di massa.
PXE fu introdotto come parte del framework Wired for Management di Intel, ed è descritto nella specifica (v2.1) pubblicata da Intel e Systemsoft il 20 settembre,1999.
Questa voce descrive la modalità di funzionamento prevista nella specifica ma anche alcune varianti comunemente implementate.
PXE utilizza molteplici protocolli di rete:
Inoltre, utilizza concetti come GUID/UUID e Universal Network Device Interface ed estende il firmware del client PXE (il computer che viene avviato via PXE con un ulteriori Application programming interface.
Utilizzi
Il boot via PXE viene utilizzato nei seguenti scenari:
- installazione di un sistema operativo sulla memoria di massa di un computer. Questa modalità permette di installare un sistema operativo senza dover acquistare o masterizzare un cd-rom, e funziona anche in assenza delle periferiche spesso usate a questo scopo (lettore cd-rom, memorie USB, possibilmente anche monitor e tastiera)
- possibilità di caricare su un calcolatore un sistema operativo diverso da quello normalmente usato, ad esempio per riparare una installazione malfunzionante o per utilizzarlo per funzioni particolari.
- network computing, ovvero utilizzo di un sistema operativo che viene ogni volta caricato attraverso la rete.
Funzionamento
Quando è presente la funzionalità PXE, il bios presenta all'utente la possibilità di scegliere, tra i possibili dispositivi da cui caricare il sistema operativo, il boot da rete.
Se viene selezionata questa opzione, il firmware PXE utilizza DHCP per configurare un indirizzo IP sulla scheda di rete ed individuare un server ("boot server") da cui scaricare via TFTP un file, immagazzinandolo nella memoria RAM. Questo file viene poi eseguito, provvedendo ad avviare un sistema operativo.
Nella modalità di funzionamento prevista dallo standard, il server DHCP non fornisce direttamente il boot server, ma agisce da "PXE redirection service", ovvero redirige il client ai server PXE disponibili. I server PXE sono server DHCP modificati, che utilizzano la porta UDP 4011, e forniscono al client l'indirizzo IP del boot server ed il nome del network bootstrap program (NBP) da scaricare.
Nella pratica, normalmente il firmware PXE è in grado di ricevere direttamente dal server DHCP i parametri necessari per identificare il boot server e il file da scaricare, ed è quindi possibile configurare un normale server DHCP per fornire i parametri necessari al boot via PXE.
Piattaforme supportate
PXE è stato progettato per essere utilizzabile su molte architetture. La specifica v2.1 definisce identificatori di architettura per 6 tipi di sistemi, compresi IA64 Itanium architecture e Alpha. Tuttavia, la specifica copre competamente solo Intel 32 Bit (IA-32). Intel ha incluso PXE nella Extensible Firmware Interface per IA-64, creando uno standard de facto con la sua implementazione.
Uso del DHCP
Il client, nel pacchetto DHCPDISCOVER, si identifica come client PXE, impostando il parametro Class Id ad un valore della forma
“PXEClient:Arch:xxxxx:UNDI:yyyzzz”
Se è disponibile a ottenere i parametri di boot direttametne dal server DHCP, richiede i seguenti parametri:
Data Tag Name Length Meaning Reference --- ---- ------ ------- --------- 66 Server-Name N TFTP Server Name [RFC2132] 67 Bootfile-Name N Boot File Name [RFC2132]
Il protocollo PXE permette inoltre al server DHCP di inviare al client gli elementi per offrire all'utente un menù diverse opzioni di boot. Questo menù viene implementato dal firmware PXE, e permette di proseguire nel processo di boot con diversi server o file a seconda delle scelte dell'utente.
Il server DHCP decide se inviare i parametri necessari al boot da rete, e quali parametri inviare, sulla base dei dati presenti nella richiesta DHCP. Ad esempio, può essere necessario fornire a calcolatori differenti diversi boot file.
In particolare, il formato dell'opzione Class Id è costruito per codificare in modo standard i dati necessari ad identificare un client.
Scaricamento del Network Bootstrap Program
Dopo aver identificato il boot server da usare ed il nome del file da scaricare, il firmware PXE scaricherà questo file via TFTP, memorizzandolo nella propria RAM, ne verificherà la correttezza e lo eseguirà. A questo punto il compito del PXE in senso stretto è finito, ed è il NBP a prendere il controllo del calcolatore.
Multicast
Il protocollo PXE prevede la possibilità di far scaricare il NBP in modalità multicast, in modo da ridurre il carico sulla rete e sul server nel caso molti client tentino di avviarsi contemporaneamente.
il Network Bootstrap Program
In pratica, spesso il firmware PXE scarica un boot loader, che a sua volta scarica via TFTP il kernel del sistema operativo ed un "initial ramdisk", ovvero l'immagine di un filesystem che viene copiata in memoria RAM. Il bootloader può a sua volta offrire all'utente un menù con diverse opzioni di boot, e/o la possibilità di modificare i parametri passati al sistema operativo.