Skip to content

autoexec.ipxe is how UEFI boots now, not an opt-in - #123

Merged
mastacontrola merged 2 commits into
masterfrom
autoexec-is-the-default
Aug 18, 2026
Merged

autoexec.ipxe is how UEFI boots now, not an opt-in#123
mastacontrola merged 2 commits into
masterfrom
autoexec-is-the-default

Conversation

@mastacontrola

Copy link
Copy Markdown
Member

FOG 1.6.1 builds every UEFI binary without its iPXE boot script compiled in, so each one downloads autoexec.ipxe and runs it. The autoexec/ folder that used to hold the script-less duplicates is gone — the root binaries are that build now — and the installer removes it on upgrade.

Pairs with FOGProject/fogproject#1190 and fog-ipxe#7.

DHCP page

That inverts what the page described, so "The autoexec/ boot files (UEFI only)" is replaced rather than amended. It gains an upgrade note with the old-path → new-path table:

Old New
autoexec/snponly.efi snponly.efi
autoexec/i386-efi/snponly.efi i386-efi/snponly.efi

A DHCP filename beginning autoexec/ stops resolving, and TFTP answers a missing file with an error most firmware renders as a generic PXE failure. Nothing in that symptom points the reader here, so the mapping has to be findable from it.

Also documents --boot-delay, including the part that is easy to get wrong: it edits autoexec.ipxe, so it does nothing for legacy BIOS, whose script is still compiled in. A non-zero delay makes FOG's generated DHCP config point BIOS clients at 10secdelay/ instead, and that build is exactly ten seconds whatever value was passed.

Secure Boot pages

Three statements that are now wrong rather than merely incomplete:

  • The hard-link set is the TFTP root, i386-efi/, arm64-efi/, secureboot/ and secureboot/arm64-efi/ — five paths, not six, and no autoexec/ among them. Verified on a 1.6.1 server: one inode, links=5.
  • The repair one-liner pointed at /tftpboot/autoexec/autoexec.ipxe, which no longer exists.
  • "FOG's own build — the boot script compiled in, no signature" was true of both halves and is now true of neither. FOG's build reads autoexec.ipxe exactly like upstream's, and on a server with Secure Boot keys it carries FOG's own signature. What actually separates the two files is which trust root the client must have enrolled, so the note says that instead.

Not touched

translations/docs/ is the source of truth and translate.yml regenerates it. The French copies are stale until that workflow's provider is configured, which is the repo's existing state rather than something this changes.

mastacontrola and others added 2 commits August 18, 2026 12:02
FOG 1.6.1 builds every UEFI binary without its iPXE boot script compiled in,
so each one downloads autoexec.ipxe and runs it. The autoexec/ folder that used
to hold the script-less duplicates is gone -- the root binaries ARE that build
now -- and the installer removes it on upgrade.

That inverts what these pages describe, so the DHCP page's "The autoexec/ boot
files (UEFI only)" section is replaced rather than amended, with an upgrade note
carrying the old-path -> new-path table. A DHCP filename beginning "autoexec/"
stops resolving, and TFTP answers a missing file with an error most firmware
renders as a generic PXE failure -- nothing in it points the reader here, so the
mapping has to be findable from the symptom.

Documents --boot-delay while there, including the part that is easy to get
wrong: it edits autoexec.ipxe, so it does nothing for legacy BIOS, whose script
is still compiled in. A non-zero delay makes FOG's generated DHCP config point
BIOS clients at 10secdelay/ instead, and that build is exactly ten seconds
whatever value was passed.

Secure Boot pages corrected on three points that are now wrong rather than
merely incomplete:

  - the hard-link set is the TFTP root, i386-efi/, arm64-efi/, secureboot/ and
    secureboot/arm64-efi/ -- five paths, not six, and no autoexec/ among them.
    Verified against a 1.6.1 server: one inode, links=5.
  - the repair one-liner pointed at /tftpboot/autoexec/autoexec.ipxe, which no
    longer exists.
  - "FOG's own build -- the boot script compiled in, no signature" was true of
    both halves and is now true of neither. FOG's build reads autoexec.ipxe like
    upstream's does, and on a server with Secure Boot keys it carries FOG's own
    signature. What actually separates the two files is which trust root the
    client must have enrolled, so say that instead.

translations/ is left alone: docs/ is the source of truth and translate.yml
regenerates it, which is the repo's existing arrangement.
No 1.6.x tag exists yet -- 1.6.0 has never been released, so "FOG 1.6.1
removes ..." pointed readers at a release that does not exist, and
"upgrading from 1.6.0 or earlier" described an upgrade nobody can be
doing. The autoexec/ folder only ever shipped in 1.6.0 betas, and all of
this lands in 1.6.0 itself.

Co-Authored-By: Claude <noreply@anthropic.com>
@mastacontrola
mastacontrola merged commit ae008e8 into master Aug 18, 2026
@mastacontrola
mastacontrola deleted the autoexec-is-the-default branch August 18, 2026 18:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant