Prefazione dettagliata
Il boot da rete, noto come PXE (Preboot Execution Environment), è una funzionalità potente e poco utilizzata che consente di avviare un computer senza supporti fisici come hard disk, DVD o chiavette USB. Questo tipo di avvio è molto utile in ambienti enterprise e nei laboratori, dove la distribuzione massiva di sistemi operativi o immagini disco su più dispositivi deve avvenire in modo rapido e automatizzato. PXE funziona tramite la rete locale (LAN) sfruttando protocolli come DHCP e TFTP. In questa guida vedremo come configurare correttamente il boot da rete PXE in ambienti Windows, Linux e tramite PowerShell, con esempi pratici e soluzioni per i problemi più comuni.
Domande e risposte – causa, come, dove, quando, perché
Qual è la causa del problema?
In molti scenari, si ha la necessità di installare o avviare un sistema operativo su macchine prive di supporti fisici oppure su hardware senza storage interno.
Come si risolve?
Utilizzando PXE boot, che permette di caricare il sistema operativo da un server di rete configurato per fornire i file necessari all’avvio.
Dove si applica questa tecnica?
In ambienti aziendali, scuole, laboratori, infrastrutture IT dove si gestiscono molte macchine da un punto centrale.
Quando conviene usare PXE boot?
Durante installazioni multiple, aggiornamenti massivi o nel caso di PC client leggeri (thin client) senza disco.
Perché scegliere PXE rispetto ad altri metodi?
PXE è scalabile, automatizzabile, efficiente e non richiede supporti fisici. È particolarmente utile per la gestione di flotte di PC.
Soluzioni
✅ Ambiente Windows – PXE con Windows Deployment Services (WDS)
- Installare WDS
- Apri Server Manager e aggiungi il ruolo Windows Deployment Services
- Includi sia il ruolo Deployment Server che Transport Server
- Configurare WDS
- Avvia la console WDS
- Configura il server specificando una cartella di immagini e un server DHCP (può essere lo stesso server o separato)
- Aggiungere immagini
- Inserisci il DVD/ISO di Windows
- Importa l’immagine boot (boot.wim) e l’immagine installazione (install.wim)
- Configurazione del client
- Imposta nel BIOS l’opzione Network Boot
- Avvia il PC e premi il tasto corrispondente al boot da rete (es. F12)
🐧 Ambiente Linux – PXE con dnsmasq e TFTP
- Installare i pacchetti bash
sudo apt install dnsmasq pxelinux syslinux-common tftpd-hpa
- Configurare dnsmasq
- File di configurazione
dnsmasq.conf
: gointerface=eth0 dhcp-range=192.168.1.50,192.168.1.150,12h dhcp-boot=pxelinux.0 enable-tftp tftp-root=/srv/tftp
- File di configurazione
- Copiare i file di boot bash
sudo mkdir -p /srv/tftp/pxelinux.cfg sudo cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp sudo cp /usr/lib/syslinux/modules/bios/* /srv/tftp
- Configurare pxelinux.cfg/default bash
DEFAULT menu.c32 LABEL install KERNEL vmlinuz APPEND initrd=initrd.gz
- Riavviare i servizi bash
sudo systemctl restart dnsmasq sudo systemctl restart tftpd-hpa
💻 PowerShell – Configurazione server PXE (con DHCP e TFTP via script)
PowerShell può essere usato per automatizzare la configurazione PXE nei server Windows:
Verifica ruolo DHCP
powershellGet-WindowsFeature -Name DHCP
Install-WindowsFeature -Name DHCP -IncludeManagementTools
Configurazione directory TFTP
powershellNew-Item -Path "C:\TFTP-Root" -ItemType Directory
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tftpd32" -Name "Directory" -Value "C:\TFTP-Root"
Avvio dei servizi
powershellStart-Service dhcpserver
Start-Service wdsserver
Best Practice consigliate
- Verificare che il BIOS o UEFI del client sia abilitato per il Network Boot.
- Utilizzare indirizzi IP statici per i server PXE per evitare problemi di rete.
- Assicurarsi che il firewall non blocchi porte 69 UDP (TFTP) e 67/68 (DHCP).
- Testare la configurazione su una macchina virtuale prima del deployment su vasta scala.
- Mantenere aggiornati i file boot.wim e install.wim.
- Salvare una configurazione di backup di dnsmasq e pxelinux.
- Usare firmware compatibile UEFI/BIOS, secondo il tipo di client.
- Monitorare il log del servizio TFTP e DHCP per errori.
- Se possibile, separare il server DHCP e PXE per maggiore affidabilità.
- Automatizzare la distribuzione usando risposte automatiche (file unattend.xml).
Conclusione
Il boot da rete PXE è uno strumento strategico per gestire l’installazione e l’avvio di sistemi operativi in ambienti controllati e distribuiti. È particolarmente utile per chi lavora con grandi parchi macchine, poiché elimina la necessità di supporti fisici e rende il processo molto più rapido e automatizzabile. Con gli strumenti giusti su Windows, Linux e anche tramite PowerShell, puoi configurare un ambiente PXE robusto e flessibile.
✅ Checklist pratica per configurazione PXE boot
🔧 Checklist Preparatoria (valida per ogni ambiente)
- Verifica che i client supportino PXE nel BIOS/UEFI
- Abilita l’opzione Network Boot nel BIOS/UEFI dei dispositivi
- Disabilita Secure Boot (se necessario per compatibilità con PXE legacy)
- Assicurati che il server PXE abbia IP statico
- Controlla che le porte di rete siano aperte nel firewall:
- 67/68 UDP (DHCP)
- 69 UDP (TFTP)
- 4011 UDP (WDS – opzionale)
🪟 Checklist PXE su Windows (con WDS)
- Installa i ruoli WDS e DHCP (se non già presenti)
- Avvia Server Manager > Aggiungi ruoli e funzionalità
- Configura WDS con percorso immagine (es: D:\RemoteInstall)
- Importa le immagini:
- boot.wim
- install.wim
- Verifica che il servizio WDS sia attivo e automatico
- Testa l’avvio di un client via rete (es: premere F12 all’avvio)
🐧 Checklist PXE su Linux (con dnsmasq + TFTP)
- Installa i pacchetti: dnsmasq, tftpd-hpa, syslinux
- Configura
/etc/dnsmasq.conf
con:- Interfaccia corretta
- Range DHCP appropriato
- Opzioni TFTP e percorso file
- Crea cartella
/srv/tftp/
e copia:- pxelinux.0
- menu.c32
- vmlinuz
- initrd.gz
- Crea il file
/srv/tftp/pxelinux.cfg/default
con un menu valido - Riavvia servizi:
systemctl restart dnsmasq
systemctl restart tftpd-hpa
- Test PXE boot con client reale o VM
⚡ Checklist PowerShell (per server PXE su Windows)
- Installa ruolo DHCP: powershell
Install-WindowsFeature -Name DHCP -IncludeManagementTools
- Crea cartella TFTP: powershell
New-Item -Path "C:\TFTP-Root" -ItemType Directory
- Imposta directory in registro di sistema: powershellCopiaModifica
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tftpd32" -Name "Directory" -Value "C:\TFTP-Root"
- Avvia i servizi: powershell
Start-Service dhcpserver Start-Service wdsserver
🧩 Checklist finale: test e validazione
- Test su VM o hardware reale
- Verifica il caricamento del file pxelinux.0
- Controlla che il menu venga mostrato correttamente
- Avvia l’installazione remota da PXE
- In caso di problemi, analizza i log:
- Windows: Event Viewer > Application and Services Logs > WDS
- Linux:
journalctl -xe
,/var/log/syslog
- Salva una copia di backup della configurazione funzionante