Guida al boot da rete (PXE)

()

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)

  1. Installare WDS
    • Apri Server Manager e aggiungi il ruolo Windows Deployment Services
    • Includi sia il ruolo Deployment Server che Transport Server
  2. 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)
  3. Aggiungere immagini
    • Inserisci il DVD/ISO di Windows
    • Importa l’immagine boot (boot.wim) e l’immagine installazione (install.wim)
  4. 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

  1. Installare i pacchetti bash sudo apt install dnsmasq pxelinux syslinux-common tftpd-hpa
  2. Configurare dnsmasq
    • File di configurazione dnsmasq.conf: go interface=eth0 dhcp-range=192.168.1.50,192.168.1.150,12h dhcp-boot=pxelinux.0 enable-tftp tftp-root=/srv/tftp
  3. 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
  4. Configurare pxelinux.cfg/default bash DEFAULT menu.c32 LABEL install KERNEL vmlinuz APPEND initrd=initrd.gz
  5. 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

powershell 
Get-WindowsFeature -Name DHCP
Install-WindowsFeature -Name DHCP -IncludeManagementTools

Configurazione directory TFTP

powershell 
New-Item -Path "C:\TFTP-Root" -ItemType Directory
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tftpd32" -Name "Directory" -Value "C:\TFTP-Root"

Avvio dei servizi

powershell
Start-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: powershellCopiaModificaSet-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

/ 5
Grazie per aver votato!

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?