-
Notifications
You must be signed in to change notification settings - Fork 260
Open
Description
PXE Boot Menu Missing - Direct Login Redirect Issue
Environment
- FOG Version: Latest development
- Previous Working Version: 1.5.9
Problem
The interactive PXE boot menu from v1.5.9 has been replaced with a simple timeout prompt that redirects directly to login. Users can no longer access utilities like memtest, registration, or system info without authentication.
Expected Behavior (v1.5.9)
Interactive menu with options:
- Boot from hard disk (default)
- Run Memtest86+
- Host Registration
- Deploy Image
- Join Multicast Session
- Client System Information
Current Behavior
- Without PXE authentication: Shows
Booting... (Press ESC to access the menu)→ Direct login redirect - With PXE authentication enabled: Machine boots directly to hard disk without showing any prompt or ESC option
Code Comparison
Current version:
#!ipxe
set fog-ip [REDACTED]
set fog-webroot fog
set boot-url http://${fog-ip}/${fog-webroot}
set setmacto ${net0/mac}
set storage-ip [REDACTED]
set keymap us
set arch ${buildarch}
iseq ${arch} i386 && cpuid --ext 29 && set arch x86_64 ||
iseq ${platform} efi && set key 0x1b || set key 0x1b
iseq ${platform} efi && set keyName ESC || set keyName Escape
prompt --key ${key} --timeout 10000 Booting... (Press ${keyName} to access the menu) && goto menuAccess || exit 0
:menuAccess
login
params
param mac0 ${net0/mac}
param arch ${arch}
param platform ${platform}
param username ${username}
param password ${password}
param menuaccess 1
param debug 1
param sysuuid ${uuid}
isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
:bootme
chain -ar http://[REDACTED]/fog/service/ipxe/boot.php##paramsWorking v1.5.9:
#!ipxe
set fog-ip [REDACTED]
set fog-webroot fog
set boot-url http://${fog-ip}/${fog-webroot}
cpuid --ext 29 && set arch x86_64 || set arch i386
goto get_console
:console_set
colour --rgb 0x00567a 1 ||
colour --rgb 0x00567a 2 ||
colour --rgb 0x00567a 4 ||
cpair --foreground 7 --background 2 2 ||
goto MENU
:alt_console
cpair --background 0 1 ||
cpair --background 1 2 ||
goto MENU
:get_console
console --picture http://[REDACTED]/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console
:MENU
menu
colour --rgb 0xff0000 0 ||
cpair --foreground 1 1 ||
cpair --foreground 0 3 ||
cpair --foreground 4 4 ||
item --gap Host is NOT registered!
item --gap -- -------------------------------------
item fog.local Boot from hard disk
item fog.memtest Run Memtest86+
item fog.reginput Perform Full Host Registration and Inventory
item fog.reg Quick Registration and Inventory
item fog.deployimage Deploy Image
item fog.multijoin Join Multicast Session
item fog.sysinfo Client System Information (Compatibility)
choose --default fog.local --timeout 3000 target && goto ${target}
:fog.local
sanboot --no-describe --drive 0x80 || goto MENU
:fog.memtest
kernel memdisk initrd=memtest.bin iso raw
initrd memtest.bin
boot || goto MENU
:fog.reginput
kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=275000 web=http://[REDACTED]/fog/ consoleblank=0 rootfstype=ext4 storage=[REDACTED]:/images/ storageip=[REDACTED] nvme_core.default_ps_max_latency_us=0 loglevel=4 mode=manreg
imgfetch init_32.xz
boot || goto MENU
:fog.reg
kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=275000 web=http://[REDACTED]/fog/ consoleblank=0 rootfstype=ext4 storage=[REDACTED]:/images/ storageip=[REDACTED] nvme_core.default_ps_max_latency_us=0 loglevel=4 mode=autoreg
imgfetch init_32.xz
boot || goto MENU
:fog.deployimage
login
params
param mac0 ${net0/mac}
param arch ${arch}
param username ${username}
param password ${password}
param qihost 1
isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
param sysuuid ${uuid}
:fog.multijoin
login
params
param mac0 ${net0/mac}
param arch ${arch}
param username ${username}
param password ${password}
param sessionJoin 1
isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
param sysuuid ${uuid}
:fog.sysinfo
kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=275000 web=http://[REDACTED]/fog/ consoleblank=0 rootfstype=ext4 storage=[REDACTED]:/images/ storageip=[REDACTED] nvme_core.default_ps_max_latency_us=0 loglevel=4 mode=sysinfo
imgfetch init_32.xz
boot || goto MENU
:bootme
chain -ar http://[REDACTED]/fog/service/ipxe/boot.php##params ||
goto MENU
autobootImpact
- Critical: With PXE authentication enabled, no access to FOG functionality at all (direct hard disk boot)
- No self-service registration for unregistered hosts
- Lost access to memtest and system utilities
- Poor user experience
File: /fog/service/ipxe/boot.php
Edit
- The problem occurs specifically with older computers using UEFI boot. When I disable "Hide Menu", the menu displays correctly, but the keyboard is not functional. The FOG server has up-to-date kernel and init files, and /tftpboot has been freshly compiled. When switching to legacy boot mode, the keyboard works properly.
Metadata
Metadata
Assignees
Labels
No labels