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.
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.
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
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.
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.
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.
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.