Two Fedora installations on the same SSD

Hi everyone,
I have two Fedora installations on the same SSD. We’ll refer to them as Fedora A and Fedora B. Fedora A was installed first on a 220 GB partition, and Fedora B was installed afterwards on a 260 GB partition.

/dev/nvme0n1p3 - Fedora A
/dev/nvme0n1p5 - Fedora B

Both partitions are LUKS encrypted. I used Fedora A as an offline vault for passwords and confidential documents. I intended to use Fedora B for personal matters.

Unfortunately, after Fedora B installation, I’m being directly booted into Fedora B. Pressing the ESC key gives me access to a different kernel version of Fedora B, but that’s it. I can’t boot into Fedora A.

I confirmed the presence of Fedora A by decrypting the partition and chrooting into it.

What can I do to boot into Fedora A?

Keynote: Both partitions are encrypted individually and system is UEFI

If both used the same efi partition it seems one may be out of luck. Both use the same structure for the file system on /boot/efi so the last installed overwrites the first installed.

One would need to either use different efi partitions and use the bios boot menu to select the proper one, or do some playing with the file structures used to enable dual boot in that arrangement.

Specifically, I suspect you used 2 different /boot partitions, and the file /boot/efi/EFI/fedora/grub.cfg is a pointer that directs grub to boot from /boot/grub2/grub.cfg. That pointer is likely different in fedora B than it would be for fedora A thus one cannot boot fedora A.

It seems possible to fix by creating a custom grub menu entry using /etc/grub.d/40_custom to boot the other fedora install, but I have never needed to do so myself so cannot give meaningful directions.

It can be something like /etc/grub.d/40_custom

#!/usr/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry 'SecondDisc' --class gnu-linux --class gnu --class os $menuentry_id_option 'Second-Disk' {
    search --no-floppy --fs-uuid --set root be7e5f09-c8fc-4e64-addd-ddda9478b5f2
    configfile ($root)/grub2/grub.cfg
}

where be7e5f09-c8fc-4e64-addd-ddda9478b5f2 should represent the other /boot file system. You can get the exact uuid by running lsblk -fp

Oops! the typo has been fixed. :slightly_frowning_face: