Skip to content

Boot Config

iPXE boot script system, Profile management, and default menu configuration.

Docs: Architecture Mapping & Secure Boot | DHCP Config | Netboot Catalog


iPXE Boot Script System

PxeLab's iPXE boot uses a configuration-driven decision tree — no need to write raw iPXE scripts, configure visually through the Web UI:

Client requests boot script

    ├─ 1. Custom script? → Yes → Return directly, ignore all below

    ├─ 2. Host has Profile? → Profile with menu → Return Profile menu

    ├─ 3. Catalog redirect? → Enabled → Chain to OS install catalog

    └─ 4. Default boot menu → Return configured default menu

Boot Menu Types

BootTypePurposeExample
localBoot from local diskSkip network boot
directDirectly load kernel + initrdLinux distro installation
chainChain-load other bootloadersGRUB2, Windows Boot Manager
wdsWindows WIM bootWindows PE / installation
sanbootiSCSI SAN bootDiskless workstations

sanboot Use Cases

ScenarioSuitable?Reason
DOS boot diskBoots and runs immediately
Live LinuxKernel + initramfs self-contained
WinPE maintenance diskGets tools via network after entering PE
Memtest86+Doesn't access disk after boot
iSCSI LUN direct bootInstalled system disk
CentOS/RHEL install⚠️→❌Anaconda needs explicit inst.repo
Windows installNeeds wim + BCD extraction, use wimboot

Profile (Boot Configuration)

Profile is a boot config bound to a specific host, containing a boot menu:

  • Create Profile: Specify name, architecture, boot type, and parameters
  • Bind Host: Bind Profile to host MAC address
  • Script Versioning: Auto-saves version snapshots on every modification, supports diff and rollback
  • Create from Netboot: One-click Profile creation from OS install catalog

Each Profile is a single boot entry for simplified config:

Profile: "Install Ubuntu 22.04"
  ├─ Architecture: x86_64
  ├─ Type: direct
  ├─ Kernel: vmlinuz
  ├─ Initrd: initrd.img
  └─ Cmdline: net.ifnames=0 console=tty0

Default Boot Menu

Displayed when client has no associated Profile and Netboot catalog redirect is disabled.

Two modes supported (Web UI: Service Config → Netboot Catalog, or sidebar bottom Settings → Netboot):

  1. Show default Profile's boot entry — Only show Profiles marked as default
  2. List all Profiles — All Profiles as menu items

Configuration:

  • Menu Title — Default PxeLab Boot Menu
  • Timeout — 0 = no auto-select, >0 = auto-select default entry after timeout
  • Menu Entries — Add multiple boot entries

Custom iPXE Script

Fill in Settings → Netboot → Custom iPXE Script to completely replace all visual configuration:

Available template variables:

  • {{.URL}} — Server address (e.g., http://192.168.1.10:8080)
  • {{.MAC}} — Client MAC address
  • {{.NextServer}} — Server IP (without port)

PxeLab - All-in-one PXE Network Boot Server