A single Fedora installer for all spin and versions that auto-updates itself on a USB key (Fedora Forever framework)

With Anaconda supporting network install, what is preventing Fedora from providing a Spin/Version choice before installation ? This is both a question and an invitation to rethink the way we keep downloading and writing newer/different installation media to USB keys or CD/DVDs.

Anaconda should be able to check if a newer version of itself is available and offer to update before install.

This would solve multiple situations !

You could use a single Fedora installation media to install :

  • A different Spin from the internet.
  • A different version like Silverblue, Server, CentOS or CentOS Stream.
  • A later version when available like F33 or even choose rawhide.
  • Keep the Fedora installer on a USB key and never have to worry about downloading a newer version of the installer as it will just update itself.
  • Download/update a live “recovery” image on the USB disk and reboot to it.

I feel that this is to be expected for an installer in 2020. I suppose it could also help to consolidate all the different families of Fedora products in a more cohesive installation process.

If it where available, I’d buy a Fedora labeled USB key that would only serve that purpose instead of trying to find a empty one in the drawer !

Thanks

Why not just use the net installer if you want a choice?

Can the current netinstall be used to install silverblue/centos ?
Will current netinstall be able to install a future version of Fedora like F32,F33,F34 or an older version like F20 ?
Will Anaconda update itself before proceeding ?

If a user download a Fedora Workstation (Gnome) and wish to reinstall a KDE spin, can he use the same usb key ?

Sure netinstall can do many things, but why can’t any Fedora Spin do the same as the netinstall ?

It would mean that you need to download and write only once a Fedora install media for the next 10-20 years … I can’t remember how many times I downloaded and burned/copied a installation disk in the last 20 years, but it’s over a 100 !

Those are the questions I currently have and believe that it can lead to a reflection on how the whole Fedora ecosystem could be at the finger tip of a single installation media. At the same time, it could still provide offline installation capabilities.

Thanks for your interest.

Why would you want the Fedora installer to install CentOS?

This is a really bad idea for many reasons, including security and hardware compatability.

But they downloaded Fedora Workstation. If they wanted something else, yes they should make a new key.

I don’t think any of the stuff you want is standard practice at all. The only thing I partially agree with is a recovery image, I think Fedora should create a recovery partition.

You are right, it is not standard practice. At least for now.

I didn’t think about the compatibility issues. Newer CPU did require significant patching of the kernel to boot (AMD had quite a few issues). Perhaps a few years at most before needing to upgrade the kernel and modules. I don’t see why a USB key couldn’t update itself once per release without having to do it manually.

I had the impression that Fedora and CentOS are getting closer with the addition of CentOS Stream; I may be wrong. That’s why I would like it included, just a nice feature.

Perhaps you don’t see the need nor the convenience of such an installer. But ask a few of your friends if they would find it useful. I do think that such a evolution of the installer would be for the best.

A recovery partition would be nice, but I was thinking more about a livecd (from usb) boot. One that can be upgraded if needed (in case there is a hw/security issue) by writing to the usb disk a new squashed image and updating grub.

The primary objective would be that downloading and writing to a USB drive should be done only once. After that, just boot the drive and it will take care of itself to be up to date and allow the user to install any Fedora flavor.

So… While this is POSSIBLE, it’d be very difficult to do. Consider than many
of these aren’t actually Fedora. For example, Silverblue is its own weird
little thing, very different install process to Fedora (the distro). CentOS
and CentOS stream are a little bit different, older versions of software for
sure. Every ~2 Fedora proper releases, there are major changes to the way
Fedora is installed, which require changes to Anaconda.

I am drawing a new framework for USB installers, one that could be called Fedora Forever USB . So resuming :

  1. There is a technical challenge
    Pre-Anaconda application has to check network connectivity and get :
A) List of Fedora flavors
B) Version number of Fedora flavors
C) Get list of Anaconda versions 
D) Download the right one depending on : A+B user choice (Could allow Silverblue and CentOS installer by matching the right Anaconda) and start it
  1. Self updating USB drive
A) Check hardware build date and propose to upgrade USB key before install if there is a risk of the drivers being out of date
B) Fetch latest squashed installer and/or livecd
C) Install and update /boot and grub of USB drive
D) Reboot to newer version of the USB drive installer
  1. Rescue and fix partition (as pluto suggested)
A) Having a rescue partition that is self updating and that can be use to reinstall/fix current Fedora install in case of problems 
i) Try to find the /etc partition and read the fstab
ii) Mount the system on loopback and perform updates/rollback or fix config
iii) Test that it boots again by passing qemu the partitions and try to lunch it 
  1. Usefulness/convenience and cost of implementation/risk of breaking things
A) How much benefits does it bring for : 
i) a new users (who must flash a USB key from a windows machine or don't have an already running computer at home, like a new build)
ii) experienced user that only need to have a dedicated fedora usb installer that will update itself on boot (assuming no compatibility breaking new hardware is used)
B) The concept of a Fedora Forever USB key that should live through the ages as a brand promoting item
C) Give a Fedora Forever USB key to a new linux user and you don't have to bother flashing the newest software as it will do it itself.
D) Fix Fedora and backup/restore from the Rescue partition

I understand that it’s not a high priority to get it done, but it could be discussed as what the future of Fedora USB install drives could look like and plan ahead to implement it in a few iterations of Fedora.

Thanks

I’d think that once all the Fedora flavors use rpm-ostree, it would be much easier to package and compress for a single ISO.

New graphics hardware almost always requires new versions of the kernel and graphics libraries.

OSTree doesn’t really help in that aspect, it doesn’t make Fedora use less space, at least on a fresh install.

There’s already the net installer if you want a choice when you install, 99% of what you want is already offered by that.

There is no plan for “all Fedora flavors” to use rpm-ostree.

For me the perfect installer would not only support the newest Fedora versions but ideally it would install all the common linux distros from one stick (loading from the internet of course - maybe with caching on spare stick space). I wonder if downloading the needed netinstall isos and then chain booting into that would work.
For reference: On raspberry pi there is the “noobs” image which helps you installing different distros including Pidora.

@dreua perhaps that’s what would be best for the linux desktop USB installer. I would start with Fedora first.

@pluto The current netinstall should then be the starting point. It only needs to be able to fetch available releases and offer the selection with corresponding Anaconda updates.

The primary features of the new USB installer is that it should be able to update :

  • The Anaconda version
  • The USB kernel and Grub menu
  • The installer squashed image

For starter, could Grub offer a list of netinstall images for multiple versions ? Like F30,F31 and a custom boot image to download latest netinstall, write it to the USB key and update Grub to add it to the list, On next boot, a F32 install option would be available. That could be considered a step in the right direction.

Thanks again for your interest.

A considerable barrier to updating the image, is that it’s read-only. The ISO you download and write to the USB stick is ISO 9660 format, which isn’t a read-write file system. The Fedora ISO compose method uses multiple isohybrid options found in xorriso, this results in a rather non-standard (hybrid) series of partition maps, the purpose of which is to support as much hardware as possible with a single image. Right now no tool exists that can correctly modify all of these partitions after the fact. Next, the main payload of this ISO 9660 file system is a squashfs image which is itself read only.

It’s vaguely possible deltaiso could make it possible, but it’s a high risk update in that there really isn’t a way to make it atomic. Once it starts, the USB stick is effectively broken until the update completes. There’s enough churn in Fedora that I expect in a relatively short amount of time, the delta update would be as big as a new image.

PXE booting could be more minimalist on the USB stick/cient side of things, where kernel and initramfs are kept up to date server side. I’m not sure what the downsides are. Basically this would be an image that has only a bootloader on it.

As @cmurf said, this isn’t impossible but it would be somewhat difficult and probably quite fragile - enough that it doesn’t seem worth the effort given that the return is pretty minor? Rewriting a USB stick is ultimately not that difficult. For this idea to be of use you need a computer, a USB stick and internet access; if you have those things you can probably just reflash the stick with whichever image you like, really pretty easily.