I want to install Fedora 34 on a drive behind another Linux distro. I created a root and swap partition after it. Whenever I click done back to the main install page the continue install button is not available.
The advanced installer page gives me the same error from the bottom of the page:
“Failed to find a suitable stage1 device. EI System Partition must be mounted on one of /boot/efi.; EFI System Partition cannot be of type f2fs.; EFI System Partition must be mounted on one of /boot/efi.; EFI System Partition cannot be of type swap.; EFI System Partition cannot be of type exfat.; EFI System Partition must be mounted on one of /boot/efi.; EFI System Partition cannot be of type xfs.; EFI System Partition must be mounted on one of /boot/efi.; EFI System Partition cannot be of type swap.”
Thanks for the help.
You need to tell it to mount your EFI partition on
If you have an efi partition you must tell it where to mount as noted by @dalto. If the other linux is not efi booting then you must install this version in legacy mode the same as the other distro.
2 possible causes that you have to identify and fix.
Just out of curiosity, why an additional swap partition? If the other distro has a swap partition then fedora will use that automatically so another is not needed. In any case fedora uses zram for swap so in most cases a swap partition is not needed.
I’m a little confused on how to go forward from here. Let me further clarify: I’ve 2 hard drives installed. One, the nvme, is the Windows install. The second is my Linux sata ssd drive.
The linux drive is setup with sda1: efi format, sda2: f2fs format (root for 1st linux install), sda3: swap for 1st linux install.
I pre-setup 2 partitions as sda5 for the anticipated root of a 2nd Linux distro as sda5 and formatted it also as f2fs which Fedora apparently doesn’t support (and sda6 as swap which apparently I didn’t need).
Now, going forward, to fix this, do I mark the sda1 as mountpoint /boot/efi?
Yes. Also, make sure that partition has an appropriate type or the installer won’t recognize it. In
gdisk that would be
EF00, in parted, set the
Thanks, dalto, that worked. I it allowed be to proceed.
However, during the install I was never asked about Grub which I had used to toggle between the OSs. After the install I went into the first distro that had installed Grub2 and did a update-grub command but I can’t get it’s menu to boot up.
The problem, now, at boot, I have a instead a black text screen with the bootable entries with Fedora being first. If the selection is left on it, it boots automatically. However, if I hit enter on any of the Linux selections I get boot errors. 2 of the entries are working, the Windows Boot Manager and UEFI Firmware settings from which I can select any but that’s an extra few steps. Notably, if I’m in there and select the first Linux OS it shows the Grub2 boot menu that is missing.
Error when pressing Enter on Fedora selection:
error : …/…/grub-core/kern/fs.c:120:unknown filesystem
error: …/…/grub/grub-core/loader/i386/efi/linux.c:208: you need to load the kernel first.
Error when pressing Enter on any the first installed Linux selections (different kernels):
error: …/…/grub-core/fs/fshelp.c:257:file ‘boot/grub2/x86_64-efi/f2fs.mod’ not found.
error: …/…/grub-core/commands/search.c:296:no such device: cda9dde6…
error: …/…/grub-core/kern/fs.c:120: unknown filesystem.
error: …/…/grub-core/loader/i386/efi/linux.c:208: you need to load the kernel first.
I can also type C on the black boot screen to get to the grub command line then type exit which then it boots me to the Grub2 menu I had lost where Fedora is now listed. I’d like to clean this process up a bit.
I am not familiar with f2fs file systems and thus have no idea which linux distro you may have installed. I suspect that the reason it won’t boot is because fedora does not support that file system and thus grub cannot read and boot the kernel. Maybe if you told us what OS that actually is someone may be familiar and be able to provide a fix.
A default install of fedora on a clean drive with efi creates a GPT partition table, sda1 as esp (vfat) which mounts as /boot/efi, sda2 as ext4 which mounts as /boot, and sda3 as btrfs which creates subvolumes mounted at / and /home. I personally prefer to continue using ext4 for / and /home so I do a custom install.
Note that the uefi boot normally uses an ext4 file system for the location of the kernel image and initrd (seen in fedora as initramfs & vmlinuz) since grub has to be able to read those files to load the kernel. If grub cannot read the kernel and initrd it cannot finish the boot and I suspect that is why you cannot load the other OS.
/boot is not required to be separate if / is an ext4 file system. Grub can read that.
Grub2 was first installed by Gnome Manjaro which is using the f2fs file system. I’m just guessing here but it looks as if Fedora installed it’s own version of Grub on top of and superseding the first one. Once I can get to the Manjaro Grub2 screen, everything works well. I am wondering if there a way to remove it?
The wiki has removing grub by using the following:
But I want to leave the first Grub2 intact. I’m unsure if that would do the trick.
I executed “rm /boot/efi/EFI/fedora/grub.cfg” which removed the second grub boot menu. In starting the PC it brought me to the grub command prompt. I then exited and entered the original grub menu, entered Manjaro, reinstalled and updated grub. Everything seems fine now.
I am guessing, but it seems likely that every time you update fedora where there is a kernel or grub update it is probable that you will have the same issue. Each kernel or grub update seems to update the grub.cfg file and thus may present an issue with access to manjaro.
Hmmm…do you know of any alternative way, that is, to have just one instance of grub on one drive with more than one OS?
AFAIK that is the way most of us do it when dual booting. Only one efi partition is required, and grub is capable of adding multiple OSes to the boot menu and managing boot for all. Even with legacy boot grub is able to handle at least 2 OSes and I have no clue how many more.
The issue still exists though for conflicts if more than one OS manages to update grub. You need to be sure only one OS is actually updating grub, or manually make certain that OS does the last update. Kernel updates in the other OSes (which basically force a boot loader update) can present a problem if you are not really careful.
To avoid such conflicts with multiple OSes I only have one or 2 OSes (one of which is windows) on a machine. Any additional ones I use are in a VM so they do not mess up the booting.