Network Boot Guide
This guide covers setting up PXE boot and HTTPBoot for FOG clients.
Overview
FOG supports two network boot methods:
- PXE Boot (TFTP) - Traditional network booting via TFTP
- HTTPBoot (HTTP/HTTPS) - Modern network booting via HTTP (UEFI only)
PXE Boot Setup
For External DHCP Servers
Configure your existing DHCP server with these options:
Option 66 (Next Server): your-fog-server-ip Option 67 (Boot File):
- BIOS clients (Arch:00000):
undionly.kkpxe - UEFI 32-bit clients (Arch:00002, 00006):
i386-efi/snponly.efi - UEFI 64-bit clients (Arch:00007, 00008, 00009):
snponly.efi - UEFI ARM64 clients (Arch:00011):
arm64-efi/snponly.efi
For FOG’s Built-in DHCP
Enable FOG’s DHCP server in your .env file:
FOG_DHCP_ENABLED=true
FOG_DHCP_SUBNET=192.168.1.0
FOG_DHCP_NETMASK=255.255.255.0
FOG_DHCP_ROUTER=192.168.1.1
FOG_DHCP_START_RANGE=192.168.1.100
FOG_DHCP_END_RANGE=192.168.1.200
FOG_DHCP_DNS=8.8.8.8
FOG_DHCP_BOOTFILE_BIOS=undionly.kkpxe
FOG_DHCP_BOOTFILE_UEFI32=i386-efi/snponly.efi
FOG_DHCP_BOOTFILE_UEFI64=snponly.efi
FOG_DHCP_BOOTFILE_ARM64=arm64-efi/snponly.efi
HTTPBoot Setup
HTTPBoot is automatically available for UEFI clients. No additional configuration needed!
How HTTPBoot Works
- Client requests iPXE binary via HTTP/HTTPS
- iPXE binary loads and detects architecture
- Architecture detection happens automatically
- FOG boot menu is served based on client architecture
HTTPBoot URLs
HTTPBoot URLs are automatically constructed as:
:///service/ipxe/
Examples:
- HTTP:
http://192.168.1.100/fog/service/ipxe/snponly.efi - HTTPS:
https://fog.example.com/fog/service/ipxe/snponly.efi
Architecture Support
UEFI Systems (HTTPBoot supported):
- x86_64 UEFI clients
- ARM64 UEFI clients
- Various network adapters (Intel, Realtek, etc.)
Legacy BIOS Systems:
- Must use traditional PXE boot via TFTP
- HTTPBoot not supported
Boot File Architecture Detection
FOG uses intelligent architecture detection:
The Boot Process
- Initial Boot: Client downloads iPXE binary
- Architecture Detection: iPXE detects client architecture (
${buildarch}) - Default Boot Script: iPXE loads
default.ipxewith architecture info - FOG Boot Menu:
boot.phpserves appropriate menu based on architecture
Example Flow
Client → HTTPBoot URL → iPXE Binary → default.ipxe → boot.php → FOG Boot Menu
Available Boot Files
HTTPBoot Files (UEFI systems only)
snponly.efi- Standard UEFI 64-bit clients (x86_64) - Default for UEFI 64-biti386-efi/snponly.efi- UEFI 32-bit clients - Default for UEFI 32-bitarm64-efi/snponly.efi- ARM64 UEFI clients - Default for UEFI ARM64ipxe.efi- Alternative UEFI clients (x86_64, ARM64, etc.)intel.efi- Intel network adapter clientsrealtek.efi- Realtek network adapter clientssnp.efi- Secure Network PXE clientsarm64-efi/ipxe.efi- ARM64 UEFI clients (alternative)arm64-efi/intel.efi- Intel network adapter (ARM64)arm64-efi/realtek.efi- Realtek network adapter (ARM64)
TFTP Files (BIOS systems)
undionly.kkpxe- Legacy BIOS clients - Default for BIOSundionly.kpxe- Alternative BIOS clientsipxe.kpxe- Alternative BIOS clients
Testing Network Boot
Test HTTPBoot URLs
# Test x86_64 UEFI iPXE file
curl -I https://fog.progressive-sealing.com/fog/service/ipxe/snponly.efi
# Test UEFI 32-bit iPXE file
curl -I https://fog.progressive-sealing.com/fog/service/ipxe/i386-efi/snponly.efi
# Test ARM64 UEFI iPXE file
curl -I https://fog.progressive-sealing.com/fog/service/ipxe/arm64-efi/snponly.efi
# Test Intel network adapter iPXE files
curl -I https://fog.progressive-sealing.com/fog/service/ipxe/intel.efi
curl -I https://fog.progressive-sealing.com/fog/service/ipxe/arm64-efi/intel.efi
Test TFTP Access
# Test TFTP connectivity
tftp your-fog-server
tftp> get undionly.kkpxe
tftp> quit
Troubleshooting
PXE Boot Issues
- Verify TFTP server is accessible from client machines
- Check port 69/UDP is open and accessible
- Verify DHCP configuration points to correct TFTP server
- Check DHCP option 66 (next-server) points to
FOG_TFTP_HOST - Verify DHCP option 67 (filename) is set to correct boot file
HTTPBoot Issues
- Verify iPXE files are accessible via HTTP/HTTPS
- Check protocol matches your
FOG_HTTP_PROTOCOLsetting - Test URLs directly in a browser
- Verify reverse proxy configuration (if using)
Common Issues
- “Failed to download nbp file” - Check HTTPBoot URL accessibility
- “Chainloading permission denied” - Verify iPXE file permissions
- Architecture detection fails - Check
default.ipxefile content
Advanced Configuration
Custom Boot Files
You can customize boot files by:
- Modifying
.envboot file variables - Replacing iPXE binaries in
/tftpboot/directory - Customizing
default.ipxescript
Network Adapter Specific Boot
For specific network adapters:
- Intel: Use
intel.efiorarm64-efi/intel.efi - Realtek: Use
realtek.efiorarm64-efi/realtek.efi - Generic UEFI 64-bit: Use
snponly.efi(default) - Generic UEFI 32-bit: Use
i386-efi/snponly.efi(default) - Generic UEFI ARM64: Use
arm64-efi/snponly.efi(default) - Alternative: Use
ipxe.efiorarm64-efi/ipxe.efi
Next Steps
After setting up network boot:
- Configuration Guide - Configure FOG settings
- SSL/HTTPS Setup - Set up HTTPS (optional)
- Troubleshooting Guide - Common issues and solutions