Fedora 44 missing from boot menu after dual booting windows 11

Hello guys, I need some help here.
So I had fedora 44 and decided to add windows 11 but after installation the boot menu for fedora is gone… It’s not in the one time boot setup the computer powers on then goes to windows boot manager. I have tried adding it in bios setup but it’s not in the file systems given…also manually adding the path as /EFI/fedora/shimx64.efi and moving it to the top of the sequence but I get a ‘no bootable devices found’
I manually booted fedora it using a live USB with supergrub… and my data is there but I after restarting it goes back to windows.
I have also tried to reinstall the grub.cfg for grub2 but that didn’t work. Any suggestions?

For many years it has been suggested to always install windows first then add linux for dual booting.

This is because windows wipes out any linux booting with grub and takes over the booting entirely. When linux is installed second grub plays nicely with the already existing windows boot loader and allows dual booting.

Alternatively a user may have 2 efi partitions so neither overwrites the other and then bios can be told which to use for booting.

Recovery usually involves a complete reconfigure of the boot loader within linux before the bios is able to see grub and thus provide the dual boot option. I have never needed to do so and cannot provide the full details.

Quite some time back there was a topic here where another user had a similar issue and managed to work through the process and recover booting fedora.

Yeah I saw that topic and I have tried everything there but it didn’t work. Also I have my data in fedora since it was my primary OS

You should be able to fire up a Live ISO, see the Linux partition and copy all important data elsewhere before re-installing Fedora alongside Windows, where it’ll co-exist quite happily.

Of course, if you already have a fully tested backup then you’re good to go.

I’ve been installing Fedora and other distros on Windows PC’s for years by shrinking the Windows filesystem, disabling Windows “fastboot” and doing a normal install. Around the time Windows 11 appeared, updates to both Windows 10 and 11 altered the Fedora entries in the UEFI boot system. I think grub2 supports a couple entry formats, and appeared to replace the (HD ...) entry with the same data in the other format. I was able to delete the bad entries and use UEFI GUI tools to re-enter previously saved Linux efibootmgr output, but found that annoying so got rid of Windows.

Here are my current entries:

% efibootmgr
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0001
Boot0000* fedora	HD(1,GPT,2a6796ea-08cd-4400-abbc-1a6d6e454368,0x800,0x12c000)/\EFI\fedora\grubx64.efi
Boot0001* Linux Firmware Updater	HD(1,GPT,2a6796ea-08cd-4400-abbc-1a6d6e454368,0x800,0x12c000)/\EFI\fedora\fwupdx64.efi

The only part that changes is the UUID, which you can get from:

% sudo fdisk -lx /dev/nvme0n1
[...]
Device           Start       End   Sectors Type-UUID                            UUID                                 Name                 Attrs
/dev/nvme0n1p1    2048   1230847   1228800 C12A7328-F81F-11D2-BA4B-00A0C93EC93B 2A6796EA-08CD-4400-ABBC-1A6D6E454368 EFI System Partition 
[...]

If your UEFI supports a way to manage the entries this might be an easy fix.

if i remove windows will the boot option for fedora come back or do i need to run some other commands to solve the missing options

Nope - it’s effectively been overwritten by the Windows installer. You’d need to boot from a Live ISO, chroot into the existing filesystem with your F44 installation, bind all of the required mount-points and then re-install grub.

It’ll find the existing F44 installation and attempt to detect Windows and build and entry for it too, so you can then dual-boot.

See Repair/Reinstall GRUB after Windows 11 Update (Dual Boot Fedora F39) - #7 by computersavvy for instructions.

I’ve only removed Windows from systems that were able to boot Linux.

On my system that dual boots I see this

$ efibootmgr
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0000
Boot0000* Windows Boot Manager	HD(1,GPT,c9b4766b-ad9c-4b44-acfb-15e68c24b587,0x800,0x32000)/\EFI\Microsoft\Boot\bootmgfw.efi57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d0000000e000100000010000000040000007fff0400
Boot0001* Fedora	HD(1,GPT,0d1df6e8-b43c-4e75-b7b7-e95725a35169,0x800,0x12c000)/\EFI\fedora\shimx64.efi

this helped me get back fedora to the boot menu

I had changed the order and set fedora to be the first but my /etc/fstab was missing an entry for the EFI system Partition. The /boot/efi was never mounted making command grub2-mkconfig writing to an empty local folder instead of the real boot partition that’s why the fixes never worked. This had been that way and was not caused by windows installation.

When booting with uefi that directory is not required for the initial boot, only for updates.

However, the command grub2-mkconfig does NOT write into the efi partition. The grub.cfg file that fedora uses for booting is /boot/grub2/grub.cfg so updates write there and not into the efi partition.

This should be what you see with the efi partition mounted (trimmed)

$ sudo tree -lR /boot 
/boot
-------
├── efi
│   ├── EFI
│   │   └── fedora
│   │       ├── BOOTIA32.CSV
│   │       ├── BOOTX64.CSV
│   │       ├── gcdia32.efi
│   │       ├── gcdx64.efi
│   │       ├── grub.cfg
│   │       ├── grubia32.efi
│   │       ├── grubx64.efi
│   │       ├── mmia32.efi
│   │       ├── mmx64.efi
│   │       ├── shim.efi
│   │       ├── shimia32.efi
│   │       └── shimx64.efi
----------
├── grub2
│   ├── fonts
│   │   └── unicode.pf2
│   ├── grub.cfg
│   └── grubenv
├── loader
│   └── entries
│       ├── 594ece762a4b48678f35f7be2ddf7410-0-rescue.conf
│       ├── 594ece762a4b48678f35f7be2ddf7410-7.1.6-201.fc44.x86_64.conf
│       ├── 594ece762a4b48678f35f7be2ddf7410-7.1.7-200.fc44.x86_64.conf
│       └── 594ece762a4b48678f35f7be2ddf7410-7.1.8-200.fc44.x86_64.conf

The /boot/efi/EFI/fedora/grub.cfg file is a static pointer file that redirects grub to the actual boot file that is at /boot/grub2/grub.cfg.
The .conf files under /boot/loader/entries are the actual conf files for each installed kernel.

Not having /boot/efi mounted will definitely impact updates, but that partition as well as /boot are both accessed by grub before the file systems are mounted

I have to wonder why fstab did not contain the entry to mount /boot/efi. Those entries in /etc/fstab are created when the system is installed with efi boot.

Right, and it would definitely impact a GRUB reinstall if you needed to do that.

I seemed to have installed fedora back then in legacy mode

That is fine, but there is a problem now
Win11 requires uefi boot and fedora in legacy mode requires MBR boot.
You cannot boot both from grub when that is the case.

You may be able to use the bios boot menu (usually F10, F11, F12 or Del) and select which to boot but grub cannot do that for you.

A reinstall of fedora in uefi mode should solve the issue with dual booting from grub.