F45 Change Proposal: ModernizeBootISO [SystemWide]

ModernizeBootISO

Wiki

Announced

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary :open_book:

We will switch over production of the boot.iso from using lorax to image-builder modernizing the build of the deliverable while keeping functional parity.

Owner :open_book:

Detailed Description :open_book:

Over the past few Fedora releases we have slowly been moving deliverable production over to new image build tooling. Package based live media has moved onto kiwi. ostree-, and bootc-based artifacts have moved onto image-builder though some deliverables remain to be migrated in this area.

One of the important artifacts in Fedora is the boot.iso. This is the network installer that is shipped as the “Everything” network installer, or the “Server” network installer for Fedora Server edition.

This artifact is used in pungi and processed further into the dvd.iso (by embedding a compose’s repositories into the boot.iso) and the Fedora Atomic installers (by embedding a compose’s ostree commit into the boot.iso).

We would like to start producing the boot.iso with modern image build tooling.

image-builder is currently deployed in Fedora’s Koji build system and can produce both the Everything and Fedora Server Edition boot.iso’s. Thus for this effort we would like to switch over the pungi configuration to start using image-builder for these deliverables.

While image-builder definitions currently provide a boot.iso that is at parity we would like to also use this switch to address several concerns with the boot.iso media while keeping functional parity. This includes (less|no) usage of Lorax in the build process which might necessitate changes to packages and/or configuration (mostly in Anaconda).

Since the boot.iso media is used in many workflows both internal to Fedora and by users we have explicitly targeted Fedora 45 to give us enough time to discover any dragons that might appear.

We plan to switch over as early as possible after rawhide becomes Fedora 45 to give users and ourselves the maximum amount of time to find any regressions and address them.

Separately, any work on the Pungi side of things and the investigative work that will go into this will benefit other image build tooling such as kiwi to also be able to produce these deliverables in the future as these parts are shared. Having redundancy in our tooling (both image-builder and kiwi being able to build the same artifacts) is a great thing to have as it allows us to switch over the build backend when one or the other is having issues and reduces the risk of any complications affecting all deliverables.

Feedback :open_book:

Benefit to Fedora :open_book:

Changing the production of the boot.iso over to image-builder brings infrastructural benefits. It also allows users to easily build (customized) boot.iso’s locally that match official Fedora deliverables and provides an easier way to produce derivatives and Fedora remixes that want to create boot.iso media using image-builder or kiwi.

Aside from this the process on how these deliverables are produced becomes more linear and simpler to understand.

Scope :open_book:

  • Proposal owners: implement definitions (image-builder) and descriptions (kiwi) to build modernized boot.iso media. Update pungi configuration to make use of this (might imply changes to pungi itself as well).
  • Other developers: None.
  • Release engineering: F45 system-wide change: modernize boot.iso
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with the Fedora Strategy:

Upgrade/compatibility impact :open_book:

Early Testing (Optional) :open_book:

Users can test the current state of these artifacts by installing image-builder and building the deliverables as they are now:

$ sudo dnf install image-builder
$ sudo image-builder build everything-network-installer

Note that several changes need to land upstream and thus these installers do not properly reflect the state that we want in Fedora, yet.

How To Test :open_book:

Once the pungi configuration for rawhide has been changed to produce these deliverables with image-builder OpenQA will start testing these automatically.

Users can also start testing after this point. The tests would involve the usual requirements and criteria for the boot.iso.

Once the new deliverables are testable an announcement will be made on the mailinglist and discussion forum to get as many eyes on this as possible.

User Experience :open_book:

The user experience of using the boot.iso media should not change in any functional way.

Dependencies :open_book:

There are no dependencies on other changes. The owners of this proposal will likely need to perform work in pungi, the pungi configuration, and perhaps Anaconda.

We have explicitly targeted Fedora 45 to give us enough time to make these changes as they might have long(er) timeframes to land in Fedora.

If any critical changes are not able to land before Fedora 45 we will have the option to either pave over them in image-builder (for example, if configuration files need to be moved around, or directories need to be removed) or to trigger the contigency and defer to Fedora 46.

Contingency Plan :open_book:

  • Contingency mechanism: Revert pungi configuration changes
  • Contingency deadline: Beta Freeze
  • Blocks release: Yes

Documentation :open_book:

Notes will be written and kept as the implementation progresses.

Release Notes :open_book:

Last edited by @hricky 2025-12-19T22:20:21Z

Last edited by @hricky 2025-12-19T22:20:21Z

2 Likes

How do you feel about the proposal as written?

  • Strongly in favor
  • In favor, with reservations
  • Neutral
  • Opposed, but could be convinced
  • Strongly opposed
0 voters

If you are in favor but have reservations, or are opposed but something could change your mind, please explain in a reply.

We want everyone to be heard, but many posts repeating the same thing actually makes that harder. If you have something new to say, please say it. If, instead, you find someone has already covered what you’d like to express, please simply give that post a :heart: instead of reiterating. You can even do this by email, by replying with the heart emoji or just “+1”. This will make long topics easier to follow.

Please note that this is an advisory “straw poll” meant to gauge sentiment. It isn’t a vote or a scientific survey. See About the Change Proposals category for more about the Change Process and moderation policy.

(post deleted by author)

Kiwi can not (currently) produce the boot.iso, as we implement it there as well I’ll be adding testing instructions for kiwi too.

You could use isoinfo or xorrisofs to get information about the ISO, parti looks really nice though; is that not packaged in Fedora?

1 Like

(post deleted by author)

1 Like

I’ve long been talking about having an installer that is a normal disk image (instead of an actual ISO 9660 file). This change proposal is not about that since we still have criteria for actual ISO media, while many people might not directly use them to burn to optical media there are still many clouds and server management interfaces that require actual ISO 9660 media.


It’s definitely something worth looking into in the future to provide a separate artifact that would be only the disk image part (since that’s how the ISO gets used the most). You can probably already tinker with either image-builder or kiwi to try and get one working. I think the last time I tried I ran into (some) issues keeping it read-only and Anaconda not detecting the source device it was installing from.

Terminology would be hard since many people equate “ISO” to “installer” :slight_smile:

2 Likes

It used to be possible to run Anaconda from an arbitrary system and tell it what disk it is going to target. Unfortunately, that functionality was removed in Fedora Linux 40 (see this PR for the implementation).

Currently, Anaconda cannot filter out the source device unless it is a read-only one (which is a big part of why we still do ISO9660 style images). I would be curious if it would automatically filter out booting from a read-only Btrfs volume, though.

1 Like

This change proposal has now been submitted to FESCo with ticket #3528 for voting.

To find out more, please visit our Changes Policy documentation.

This change has been approved by FESCo and will be included in Fedora Linux 45.
To find out more about how our changes policy works, please visit our docs site.

FESCo Issue: Making sure you're not a bot!