Bug 1777989 - RFE: support multiple bootable installations of Fedora on the same system
Summary: RFE: support multiple bootable installations of Fedora on the same system
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: anaconda
Version: 31
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Anaconda Maintenance Team
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-11-28 22:04 UTC by Fred J. Tydeman
Modified: 2020-07-21 18:37 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-07-21 18:37:23 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Fred J. Tydeman 2019-11-28 22:04:10 UTC
UEFI system has Windows 10, Fedora 25, 26, 27, 28, 29, 30 (each in own partition).  All the Fedora systems are LXDE spins.
I installed Fedora 31 into the Fedora 27 partition.
Fedora 25, 26, 28, 29, and 31 boot.  Have not tried Windows yet.

But, when I try to boot 30, I get:

Failed to mount /boot/efi

In the log, I see:
Unknown filesystem type 'vfat'

/boot/efi is a fat32 filesystem.

Comment 1 Chris Murphy 2020-02-04 00:44:32 UTC
This is assigned to the wrong component. efibootmgr provides a way to read/write EFI variables (to NVRAM) and doesn't have anything to do with mounting /boot/efi. Is it a custom kernel that doesn't have vfat module built? Please reopen if you can still reproduce the problem.

Comment 2 Fred J. Tydeman 2020-02-07 13:16:24 UTC
Fedora 30 was a working system (along with the other Fedoras and Windows).
I installed Fedora 31 over the existing Fedora 27 partition.
Now, Fedora 30 will not boot as it fails to mount /boot/efi
The other Fedoras (and Windows) boot OK.
So, the install of Fedora 31 somehow killed a working Fedora 30.

Looking at Fedora 30: /var/log/boot.log   I also see:
Failed to start Load Kernel Modules

Comment 3 Fred J. Tydeman 2020-02-07 13:31:16 UTC
The older Fedora (FC) systems 25 thru 29 had been modified along the lines of bug 1488204 so that each system had their multiple kernels in their own partition (instead of in /boot/efi).  That is, powering the computer on gets me a boot menu with just one item for each of those older Fedoras.  Picking any of them, then gets me a second boot menu with the latest three kernels to choose from to boot.  This might be why the older Fedoras still boot.

However, I could not do those modifications to FC 30 (something changed so the ideas of bug 1488204 no longer worked).  So, the latest three FC 30 kernels were on the initial boot menu (before I installed FC 31).

My guess is the install of FC 31 changed things of FC 30 in /boot/efi to make FC 30 unusable.

Comment 4 Chris Murphy 2020-02-07 18:41:49 UTC
The installer always replaces everything in /boot/efi/fedora. That's intentional. Fedora hasn't ever supported multiple versions of Fedora on the same system.

Fedora 30 is the first to support a variant of the bootloader specification.
https://systemd.io/BOOT_LOADER_SPECIFICATION/
https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault

In the UEFI case, with default partitioning, Fedora 30 has GRUB binaries and configuration in /boot/efi/fedora (shared location), and its BLS snippets are on the ext4 boot volume in /boot/loader/entries (not shared). A default Fedora 31 installation will wipe out /boot/efi/fedora in favor of searching for BLS snippets in its own boot volume, also /boot/loader/entries (but this is a different volume entirely, at least by default). So by default it's expected that Fedora 30 becomes unbootable after installing Fedora 31, and this is the explanation why it happens.

To call this a bug or feature request to change it, the installer will have to a) populate the Fedora $n grub.cfg with a search path for the other boot volumes, so it can find the Fedora $n-1 and $n-2 BLS files and kernels; b) move to a shared boot scenario.

See also:
https://bugzilla.redhat.com/show_bug.cgi?id=825236#c38

As for /boot/efi not mounting on Fedora 30, no idea. It doesn't seem related but at a minimum needs a Fedora 30  'journalctl -b -o short-monotonic > journal.log' attached, as well as its /etc/fstab, and also 'sudo blkid' output. There's only about 1000+ different ways this could plausibly fail.

Since this definitely is not efibootmgr related, moving it to anaconda.

Comment 5 Fred J. Tydeman 2020-05-18 05:15:36 UTC
I installed Fedora 32 into the partition that had Fedora 25.  Fedora 32 boots fine; also 26, 28 and 29 and Windows 10.  However, now both Fedora 30 and 31 no longer boot.

But, I have discovered that if I pick the Advanced Options line on the first boot menu for either
Fedora 30 or 31, I get a second boot menu with just four items on it.

If I pick the top entry of the four, they still do not boot (same failure).

But, if I pick the next to top entry, they both boot and run.

So, I do have means of booting six versions of Fedora and Windows 10.

Comment 6 Chris Murphy 2020-07-21 18:37:23 UTC
This work is happening in Rawhide. It should be possible to install multiple fedora's side by side starting with Fedora 33.


It is also possible to do F32 first, followed by F33 but requires some work. First back up grubenv and the /boot/loader/entries snippets - and restoring them following the installation of Fedora 33. When installing F33, use the same volumes for /boot/efi and /boot - but *do not reformat* them.


Note You need to log in before you can comment on or make changes to this bug.