Skip to content

Conversation

@spesnova717
Copy link

What changes are you introducing?

This PR adds a new section “8.3. Bootloader Binary Location” to the Provisioning Hosts guide:
https://docs.theforeman.org/3.16/Provisioning_Hosts/index-foreman-el.html#using-network-boot-to-provision-hosts

This section explains how PXE bootloader binaries are managed and where they should be placed when setting up network-based provisioning environments.

The section includes:

  • Overview of the /var/lib/tftpboot/ and bootloader-universe/ directory structures
  • Description of how directories are organized by distribution, version, and architecture
  • Instructions for obtaining and placing PXE bootloader binaries (GRUB2, PXELinux, and iPXE)
  • Explanation of how Foreman automatically generates symbolic links for each host under /var/lib/tftpboot/boot/ or /var/lib/tftpboot/host-config/

Why are you introducing these changes? (Explanation, links to references, issues, etc.)

When users install Foreman and Smart Proxy using foreman-installer, PXE bootloader binaries are automatically deployed under /var/lib/tftpboot/.
However, users who handle non-x86 architectures (for example, Arm or PowerPC), or who install these components manually, often find the following points unclear:

  • Which bootloader binaries should be placed under which directories
  • How the bootloader-universe/ structure should be organized
  • How these files correspond to the architectures and operating systems defined in the Foreman Web UI

This update clarifies these points and provides concrete examples of directory layout and file placement.
It helps users correctly prepare and manage PXE bootloader binaries across different architectures and provisioning setups.


Anything else to add? (Considerations, potential downsides, alternative solutions you have explored, etc.)

It improves clarity and usability for users who manually configure PXE, iPXE, or HTTPBoot provisioning environments, including non-x86 systems.


Contributor checklists

  • I am okay with my commits getting squashed when you merge this PR.
  • I am familiar with the contributing guidelines.

Please cherry-pick my commits into:

  • Foreman 3.16 / Katello 4.18 (Satellite 6.18)
  • Foreman 3.15 / Katello 4.17
  • Foreman 3.14 / Katello 4.16 (Satellite 6.17; orcharhino 7.4)
  • Foreman 3.13 / Katello 4.15 (EL9 only)
  • Foreman 3.12 / Katello 4.14 (Satellite 6.16; orcharhino 7.2 on EL9 only; orcharhino 7.3)
  • Foreman 3.11 / Katello 4.13 (orcharhino 6.11 on EL8 only; orcharhino 7.0 on EL8+EL9; orcharhino 7.1 with Leapp)
  • Foreman 3.10 / Katello 4.12
  • Foreman 3.9 / Katello 4.11 (Satellite 6.15; orcharhino 6.8/6.9/6.10)
  • We do not accept PRs for Foreman older than 3.9.

Any feedback or suggestions for improvement are very welcome.
Thank you.

@github-actions github-actions bot added Needs tech review Requires a review from the technical perspective Needs style review Requires a review from docs style/grammar perspective Needs testing Requires functional testing labels Oct 24, 2025
@github-actions
Copy link

github-actions bot commented Oct 24, 2025

@spesnova717 spesnova717 changed the title docs: add section "Bootloader binary location" add section "Bootloader binary location" Oct 27, 2025
@spesnova717 spesnova717 force-pushed the add-bootloader-binary-location branch from 21f4436 to d7f1022 Compare October 27, 2025 05:56
@spesnova717 spesnova717 changed the title add section "Bootloader binary location" Add section "Boot loader management and file structure" Oct 27, 2025
@ekohl ekohl linked an issue Oct 28, 2025 that may be closed by this pull request
@ekohl
Copy link
Member

ekohl commented Oct 28, 2025

@jloeser I've seen you recently investigate and write down some great research into how things work (like https://community.theforeman.org/t/grub2-network-boot-tftp-http-https-for-legacy-bios-uefi/44755). I'd appreciate if you could take a look at the content.

To the writers: would this be better suited for an appendix, or is it too long for that?

Copy link
Contributor

@Lennonka Lennonka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, Yusuke, for your contribution!
This will take a decent amount of fine tuning, so brace yourself.
Let's start with moving the new assembly into an appendix and I'll get back to you with a more detailed review later.

@ekohl Should this replace the PXE loader reference?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I think it will be better as an appendix in doc-Provisioning_Hosts/master.adoc. It's no big deal that it's long.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @Lennonka and @ekohl, for your feedback.

That makes sense — I’ll move the new assembly to an appendix section
under doc-Provisioning_Hosts/master.adoc as suggested.
Once that’s done, I’ll update the PR accordingly and ping you for the next review.

Thanks again for the guidance!

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @Lennonka,
I’ve updated the PR as discussed — the new assembly has been moved to the appendix section under
doc-Provisioning_Hosts/master.adoc.
Thanks again for your helpful feedback!
Please take another look when you have a moment.

@pr-processor pr-processor bot added Waiting on contributor Requires an action from the author and removed Not yet reviewed labels Oct 29, 2025
@stejskalleos
Copy link
Contributor

cc @jafiala

@spesnova717 spesnova717 force-pushed the add-bootloader-binary-location branch from d7f1022 to 7c7a74f Compare October 29, 2025 09:45
@pr-processor pr-processor bot added Needs re-review and removed Waiting on contributor Requires an action from the author labels Oct 29, 2025
When users install Foreman and Smart Proxy using foreman-installer,
PXE bootloader binaries are automatically deployed under
/var/lib/tftpboot/.
However, users who handle non-x86 architectures (for example, Arm or
PowerPC),
or who install these components manually, often find the following
points unclear:

- Which bootloader binaries should be placed under which directories
- How the bootloader-universe/ structure should be organized
- How these files correspond to architectures and operating systems
  defined in the Foreman Web UI

This commit adds a new appendix section titled
"Boot loader management and file structure" to the Provisioning Hosts
guide.

The appendix explains:
1. The structure and purpose of /var/lib/tftpboot/ and
   bootloader-universe/
2. Where to place PXE bootloader binaries for GRUB2, PXELinux, and iPXE
3. How symbolic links are automatically created for each host at build
   time

This documentation helps users correctly prepare and manage PXE
bootloader files for both x86 and non-x86 environments.

Co-Authored-By: Vanou Ishii <[email protected]>
@spesnova717 spesnova717 force-pushed the add-bootloader-binary-location branch from 7c7a74f to 162b582 Compare October 29, 2025 09:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs style review Requires a review from docs style/grammar perspective Needs tech review Requires a review from the technical perspective Needs testing Requires functional testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add documentation for PXE bootloader binary location

4 participants