Facet Wiki
PXE-bootserver opzetten met iPXE en Secure Boot
Deze stappen beschrijven in het kort hoe je een PXE-server opzet om een BCLD ISO te starten via een netwerk. Dit werkt met Secure Boot, dankzij iPXE en een correct ondertekende bootloader.
We maken gebruiken van een Ubuntu Server 22.04 (of 24.04).
Benodigdheden
✔ Een server of VM (bijv. Ubuntu Server 22.04 of 24.04)
✔ Een client-pc die PXE ondersteunt (controleer in BIOS/UEFI)
✔ Een netwerk met een DHCP-server (bijv. pfSense of een Linux-server)
✔ De BCLD ISO
Installeren van PXE/TFTP-server
Log in op je Ubuntu-server en installeer de benodigde pakketten:
sudo apt update && sudo apt install isc-dhcp-server tftpd-hpa nginx -y
DHCP-server configureren voor PXE (we gebruiken IP-reeks 192.168.1.x in dit voorbeeld)
Bewerk het DHCP-configuratiebestand:sudo nano /etc/dhcp/dhcpd.conf
Voeg de volgende regels toe (pas subnet aan op basis van je netwerk):
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
# PXE instellingen
next-server 192.168.1.10;
filename "ipxe.efi"; # Gebruik iPXE als PXE-loader
}
Sla op en start DHCP opnieuw:sudo systemctl restart isc-dhcp-server
Controleer of DHCP werkt:sudo systemctl status isc-dhcp-server
iPXE installeren en configureren
Download de iPXE EFI-binaries:cd /srv/tftp
wget https://boot.ipxe.org/ipxe.efi
wget https://boot.ipxe.org/undionly.kpxe
Maak een iPXE-bootmenu:sudo nano /srv/tftp/boot.ipxe
Voeg het volgende toe:#!ipxe
set timeout 5000
set base-url http://192.168.1.10/pxe
menu PXE Boot Menu
item bcld Boot BCLD ISO
choose --default bcld --timeout 5000 selected
:bcld
kernel ${base-url}/bcld/vmlinuz
initrd ${base-url}/bcld/initrd
boot
Webserver instellen voor iPXE bestanden
PXE kan geen grote bestanden over TFTP laden, dus we gebruiken Nginx om de ISO-bestanden te serveren.
Bewerk de Nginx-configuratie:sudo nano /etc/nginx/sites-available/pxe
Voeg toe:server {
listen 80;
server_name 192.168.1.10;
location /pxe/ {
root /var/www/html;
autoindex on;
}
}
Activeer de configuratie:sudo ln -s /etc/nginx/sites-available/pxe /etc/nginx/sites-enabled/
sudo systemctl restart nginx
Plaats de BCLD ISO en kernel + initrd in /var/www/html/pxe/
.mkdir -p /var/www/html/pxe/{bcld}
cp /path/to/bcld/kernel /var/www/html/pxe/bcld/vmlinuz
cp /path/to/bcld/initrd /var/www/html/pxe/bcld/initrd
Secure Boot ondersteunen met een ondertekende bootloader
Download een ondertekende GRUB2-EFI voor Secure Boot:
sudo apt install grub-efi-amd64-signed shim-signed
cp /usr/lib/shim/shimx64.efi /srv/tftp/
cp /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed /srv/tftp/grubx64.efi
Pas de DHCP-configuratie aan zodat shimx64.efi wordt geladen in Secure Boot-modus:
if option architecture = 00:07 {
filename "shimx64.efi";
} else {
filename "ipxe.efi";
}
Start de DHCP-server opnieuw:
sudo systemctl restart isc-dhcp-server
Testen van PXE Boot
Start een client-pc op en ga naar de BIOS/UEFI
Schakel PXE-boot in (en Secure Boot indien nodig)
Kies “Network Boot” in het bootmenu
iPXE start op en toont het menu
Kies "Boot BCLD"
Samenvatting
✅ DHCP-server met PXE-ondersteuning ingesteld
✅ TFTP-server geconfigureerd met iPXE
✅ Webserver ingesteld voor snellere bestandsoverdracht
✅ Secure Boot-ondersteuning met shim en ondertekende GRUB
Je PXE-netwerk is nu klaar voor BCLD via iPXE!