Fedora netboot images improvements

TL;DR

Can we have a smaller netboot ISO and make it so it actually installs the selected edition with its default settings? An installation summary before starting the installation starts would also be nice and helpful.

My Netboot Installation Experience

Yesterday, for the first time in a very long while, I had the need to install Fedora from scratch.

I headed over to the main landing page for downloading an ISO. I came across the netboot image of Fedora 38 Server, which is advertised as:

Note: You can select different editions of Fedora to install with this netinstall. You are not limited to Server edition only.

That’s exactly what I was looking for. Small image, up to date packages downloaded from the mirrors, choice of desktop environment, flavor and additional packages.

It turns out not all of these were delivered. After some discussion with @chrismurphy on IRC, I decided to summarize this in order to discuss with a broader audience and maybe we can decide on some improvements.

Small Image :x:

The image isn’t small. It’s advertised as being 600MB on alt.fp.o. In fact it’s more than 700MB. Back in the day, if I remember correctly, the netboot ISO used to be relatively with around 100MB. I don’t know why it has grown to a full fledged ISO when all that is needed is a very basic OS and the installer. I’m curious, though.

Up To Date Packages :white_check_mark:

That’s why I like using the netboot ISO. It downloads required packages from the mirrors, saving me having to pull in a large update right after installing. Especially when installing later in the release cycle this is a big advantage.

Choice of Desktop Environment :white_check_mark: :x:

While I can choose the desktop environment I’d like to install, the final installation turns out to deviate from the default workstation installation. It uses LVM+XFS[1] instead of BTRFS, which is the default for Workstation. I only discovered that after the installation was finished. At the start of the installation the progress report already hinted at it, but I let it run anyway.

It would be nice to have an installation summary before the actual installation kicks off. That way I can verify that all settings are correct and the installation will do what I expect it to do. For example, I forgot to set a hostname in the network configuration, only realizing my oversight post installation.

Having a summary presented, would have allowed me to go back and change my configuration using the advanced partitioning feature for configuring BTRFS and setting the hostname.


  1. The Server default of LVM+XFS is not mentioned in the Server documentation. The section mentions: “You get a partitioning as described in the Server installation introduction”, but the link in that sentence does not lead to a page with more information regarding default partitioning. ↩︎

1 Like

It turns out the link is wrong/broken. It should be: https://docs.fedoraproject.org/en-US/fedora-server/installation/#_what_default_partitioning_does, not https://docs.fedoraproject.org/en-US/fedora-server/#_what_default_partitioning_does/.

I just ran the installation again. This time choosing custom partitioning. I removed all the existing partitions from the previous installation (LVM+XFS), then chose BTRFS and clicked on Click here to create them automatically in the New Fedora 38 Installation section.

That created a default BTRFS partitioning scheme, but no separate home volume. According to manual partitioning documentation[1] this should follow the recommended partitioning scheme, which mentions a separate mount point for /home.


  1. The links are for Fedora 36. But I assume things haven’t changed that much since wrt installation. Anyway, I was unable to dig up anything helpful regarding manual partitioning that is specifically for F38. ↩︎

The netinstall is indeed not equivalent to Fedora Workstation. It will get you something close to Fedora Server plus your choice of packages, but it won’t be Workstation. We could fix this by creating a separate netinstall image just for Workstation, but there has been little appetite for this since most people who use netinstall are looking to customize things. I don’t think the netinstall images are suitable for most users.

Regarding btrfs, the documentation is old: there are no benefits to having a separate /home partition. What anaconda is doing, /home on a subvolume, is superior since you don’t have to worry about how much space you allocate to / vs. /home.

1 Like

I don’t know where you found this. It is definitely wrong! “Fedora Server 38 Netboot ISO” is exactly that, what is says: Install Fedora Server and nothing else. This ISO uses various default values, which are very different from Workstation ISO. You should definitely not use it to install any other edition (or spin) than Fedora Server.

Thanks for the info. I’ll fix it asap.

1 Like

It’s not exactly wrong. You can choose other package sets to install. You will get the Server filesystem defaults (xfs-on-LVM, root partition sized between 2 and 15G), but other than that you get whatever package set you pick.

The page in question is https://alt.fedoraproject.org/ . I think the overall approach there needs to be revised. We should put the Everything netinst up where Server netinst is, and remove the Server netinst, which is already listed at Fedora Server | The Fedora Project . I think the listing of Server netinst on the alt page dates back to the early fedora.next days when we actually didn’t build an Everything netinst, and the Server netinst was the only available netinst image (and didn’t have server-targeted filesystem defaults).

2 Likes

You are referring to the “Installation Guide”, which the Fedora docs team withdrew completely with Release 37. For one thing, this guide is so (hopelessly) outdated that it is practically impossible to update it without a complete rewrite. On the other hand, the differences between the editions are now so extensive that a unified installation guide is no longer possible at all.

Therefore, we have now Edition-specific installation or getting-started guides. Everything you have found and quoted about installation applies exclusively to Server and no other edition. User documentation about Workstation is at Fedora Workstation Documentation :: Fedora Docs

Filed https://pagure.io/fedora-websites/issue/1204 with recommended improvements.

2 Likes

On image size: it’s as small as we can make it, unfortunately. It’s already a lot of very ugly work to make it that small. There are two major reasons it’s much bigger than it used to be:

  1. The kernel and all the drivers and especially firmware required to ensure hardware support are much bigger than they used to be. Firmware is a big problem: Intel wifi firmware alone is about 50M in size, and we can’t drop that or else you can’t do an install over wifi. NVIDIA and AMD graphics card firmwares take up another large chunk of space, and we can’t drop those or you won’t be able to see the installer.

  2. The size of the components required to show the graphical installer. In the current design anaconda runs on gnome-kiosk, which means it needs enough stuff installed to run gnome-kiosk and anaconda itself, and the size of those deps isn’t trivial. We do some very ugly hacking around to cut out a lot of stuff that the packages depend on but which we know the installer environment doesn’t need, or else the image would be even larger, but that stuff is fragile and hard to maintain and we can’t really take it any further than we already have. There’s one particular dep chain that makes me sad - in order to display anaconda’s help pages, we include the Yelp help viewer, and that depends on webkitgtk, which in turn pulls in a bunch of multimedia packages because these days an HTML engine has to be capable of displaying sound and playing video. But we don’t really have a good option for cutting that dep chain anywhere, because…we need to be able to see the help pages and there is no practical non-web-engine-based choice for doing that.

In the very old days the installer environment was entirely custom and built completely separately from the main distro, which helped with making it small but was a nightmare to maintain and broke frequently. We can’t really go back to that. Even if we did, it’d probably still be much bigger than 100MB. Stuff is just bigger than it used to be. Keeping it under 700M is already an ongoing nightmare and we’re probably going to have to give up on it soon, because I hear that NVIDIA and AMD are going to adopt the Intel wifi approach to firmware, shipping dozens of different firmware files for slightly different GPUs - only each one will be 20-30MB, not 0.5-1MB as with Intel wifi firmwares.

Just a small note to OP in case you are not aware of… there are actually two different netinstall isos.

  • The one you downloaded from the Fedora download page, server section, is a “netinstall server” iso that uses typical server settings such as XFS filesystem

  • The other one, and I assume that was that one you were looking for, is called Everything (EV) netinstall image, also available on https://alt.fedoraproject.org/. If you choose “Fedora Workstation” in software selection, you get a typical workstation setup with BTRFS filesystem as default. It’s size is 685 MB.

+1.

Or, how about we leave the server netinstall to the download page in the server section, and place the EV netinstall in the download section of Workstation, or even as a separate category “Netinstall images”, which then could have both listed, the server netintall and the EV netinstall images?

Another thing I was wondering is the name - the server netinstall image is advertised as “netboot”.
Is that an intentional change? in my opinion, netinstall describes much better what type of ISO this is. It installs Fedora via a network connection, but there is nothing special about booting from/over the network. That name seems to be confusing.

It’s been several years since I looked deeply at the anaconda code, but I don’t think it’s changed much, and it basically consists of two parts: a UI-driven flow to create a kickstart, and then a second part which executes that. It should be possible to make an inst.cmdline image which wouldn’t bring along the windowing environment or online help or anything. This could either:

  1. Be generic “edition” versions that assume a disk with free space and use firstboot for configuration.
  2. Be generated with imagebuilder with your choices baked in – possibly including which firmware.
  3. Have an online provisioning system with some way of identifying the system (like Setting up a Device with Zezere :: Fedora Docs)
1 Like

well, I mean, if you want it to be simpler we could just do a text-only installer image. that would save all the space needed for the graphical installer environment. we do have an interactive TUI installer.

But…why? Is it really worth the effort to save ~500M of download? Sure, that probably matters to someone, but lots of things matter to someone and we only have so many resources. We have to prioritize.

I don’t honestly see how that would be better than my suggestion in any way. Everything is not a Workstation image, it shouldn’t be on the Workstation page; the Workstation team does not want it emphasized as an option for installing Workstation, they don’t see it as that. The Server netinst is intended to be a Server image, so it only makes sense to advertise it on the Server page; the Everything netinst is what we should offer someone who just wants a netinst they can install any Fedora package set from.

I’m aware of the fact that BTRFS doesn’t need separate partitions. Instead one creates volumes, which can be mounted anywhere in the file system. The recommended partitioning scheme talks about a separate mount point for /home. In case of BTRFS that entails a separate volume, which is not created automatically.

Thank you! I’m aware that the doc team did a lot of work recently revamping the Fedora websites. May I seize the opportunity to express my gratitude for all the hard work. Of course, that applies to the whole team.

That’s not exactly right. :stuck_out_tongue_winking_eye: The ISO has everything one needs to setup whatever flavor of Fedora one wants to install. In addition I can select extra packages (or package groups) right from the start. By choosing custom partitioning I can even create the default workstation partitioning scheme, except for the home volume, which needs to be created manually.

The download link on alt.fp.o will bring you to the Server download page. I don’t see any harm in that.

What do you mean by “withdrew”? It’s still out there. And the fact it refers to F36 is easily overlooked. Besides the Workstation Documentation page you linked is still a bit, eh, empty. I assume it’s still being worked on.

I was looking specifically for manual partitioning information and the LVM+XFS Server layout. With some searching the F36 site and the wrongly linked Server page came up.

Thank you for the extended information. I can live with a larger download and I prefer the graphical installer. For TUIs I usually turn to Debian. :speak_no_evil: The drive towards larger and more firmware blobs is regrettable, but something beyond Fedora to influence, I guess.

Well, is there really that much difference between the two? Yes, the default partitioning scheme is certainly noteworthy. And I could imagine that less experienced, first time users of Fedora don’t want to mess with custom partitioning. But they are more likely to download the Workstation[1] ISO anyway.

As I mentioned already, the Server netinstall ISO has everything on board to configure and install Fedora to one’s liking. Users need only be made aware of the fact that if they desire the default Workstation partition scheme, they have to configure that using custom partitioning. I, personally, don’t think that’s difficult, especially if proper instructions are provided.

To put my money where my mouth is, I will also download the Everything netinstall ISO and try to achieve the reverse: installing Server with the LVM+XFS partition scheme from it. If that succeeds, I would propose to merge the two ISOs and provide proper instructions.

That summary screen would become almost mandatory for the merged netinstall ISO.

I agree. I think netinstall is the preferred term. I used netboot[2] only because it was mentioned on the page and I didn’t want to cause more/extra confusion.


  1. or the ISO of their preferred desktop flavor ↩︎

  2. netboot sounds more like a PXE installation ↩︎

I said you get the Server partitioning defaults. Which is completely right. Of course you can change them in custom partitioning. That’s why it’s called “custom partitioning”.

That’s not really a very good reason to “merge the two ISOs”. We don’t want to force everybody to use custom partitioning. The Server teams wants a Server netinst; the Server netinst is probably not appropriate as a generic netinst (which is why we should stop listing it as one on alt.fp.o).

Oh, absolutely — this is a suggestion of an approach for any such someone. :classic_smiley:

This might possibly be some of me geekily getting lost in the tech-details weeds. But also, sometimes things like this spread into “Fedora’s installer architecture is inflexible” and I want to make anyone reading along and really interested knows the possibilities.

I said you get the Server partitioningdefaults. Whichis
completely right. Of course you can change them in custom
partitioning. That’s why it’s called “custom partitioning”.

I was teasing. I didn’t mean to step on your toes.

In the end you get what you configure. If you leave the default, yes,
you get the default Server partitioning scheme.

That’s not really a very good reason to “merge the two ISOs”. We
don’t want to force everybody to use custom partitioning. The Server
teams wants a Server netinst; the Server netinst is probably not
appropriate as a generic netinst (which is why we should stop listing
it as one on alt.fp.o).

Well, there’s two flavors of custom partitioning. I’d call one the
simple custom partitioning and the other, Blivet GUI, expert.

The simple option provides a dropdown list, letting the user choose from
one of the default layouts. It may require freeing up space first, but
that’s true for the default as well. It’s not very hard and the presets
provide sane defaults[1]. And the presets behave slightly different. On
Everything, choosing LVM will get you LVM+EXT4, while on Server it
will get you LVM+XFS. I’m sure these options can be consolidated and
relabeled. E.g.: LVM+XFS (for Server) and LVM+EXT4 (for Workstation).

How about the default is adjusted according to what the user chooses in
the Software Selection (Base Environment) step, which is mandatory?
That way we could just drop any association with whatever Fedora
edition. For my part we’d call it Fedora Buffet - The All You Can Eat
Netinstall ISO
! :yum:

I don’t know how hard that would be. It sure does require some
adjustments in the installer. But I don’t get why the partitioning
scheme, while user configurable in the installer, is pre-baked into the
ISO. It makes more sense doing that for the live ISOs. But these are
mostly used for people trying out different flavors of Fedora and
eventually installing the one they like best.

What we have now is two separate netinstall ISOs, which are, I assume,
for the largest part identical. One of them is labelled Server, while
the other one is labelled Everything (Experts Only). With the
changes proposed above, they could be merged into one, saving
build/compose time and storage space on the mirrors.

Apart from the partitioning scheme presets, I’m able to install whatever
flavor of Fedora using either Server or Everything netinstall ISO.


  1. Be it that the Server netinstall doesn’t create a home volume,
    neither for BTRFS nor for LVM. Which appears to be a feature. Although,
    I fail to see how that aligns with the recommended partitioning scheme. ↩︎

“Withdrew” means, it is no longer part of the Fedora documentation. You still get it, if you select a no longer supported release. Some of the docs team proposed to deleted it completely. I was in favor to keep it for historical reason. But maybe it is better, indeed, to remove it completely. The installation guide you find for release 36 is actually already completely outdated for that release, as well as for even older releases.

And regarding the Workstation docs: It is the decision of Workstation WG to keep it that way. If I remember the discussion correctly, the idea is that this is quite sufficient for a graphical OS. I don’t know if anyone is working on extending the doc. You should ask Workstation WG on their channel and maybe suggest what you think is missing.

“only”, nicely put. There is a lot to do and even more to know. And the idea with edition-specific ISOs is to make the process as quick and straightforward as possible for the system administrator. In this respect, you can technically install anything with the server ISO, but that is exactly not the objective at all. And in this sense it is “wrong”

Maybe we need to do “counter-marketing.” One of our “stories” is to make the installation process as safe, easy, and straightforward as possible for the admin. It doesn’t need more flexibility than is available to achieve a perfect result. And this distinguishes Fedora pleasantly from some other distributions.