GRUB doesn’t show Windows boot option after installing Fedora Workstation 40

Hi, i installed fedora 40 using default settings. I installed fedora on another disk then windows, so windows should be ok but grub can’t find it. When I run os-prober I don’t get any output.

output of sudo efibootmgr:

BootCurrent: 0007
Timeout: 1 seconds
BootOrder: 0000,0007,0008,0009
Boot0000* Fedora	HD(1,GPT,3b7306f2-8b50-4fe5-bc19-d6ed576bbc99,0x800,0x12c000)/\EFI\FEDORA\shimx64.efi
Boot0007* UEFI OS	HD(1,GPT,3b7306f2-8b50-4fe5-bc19-d6ed576bbc99,0x800,0x12c000)/\EFI\BOOT\BOOTX64.EFI
Boot0008* Samsung SSD 970 EVO 250GB	BBS(HD,,0x0)AMBO
Boot0009* Samsung SSD 970 EVO 1TB	BBS(HD,,0x0)AMBO

output of lsblk -f:

NAME        FSTYPE FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
zram0                                                                               [SWAP]
nvme1n1                                                                             
├─nvme1n1p1 vfat   FAT32        F451-4D64                             579.8M     3% /boot/efi
├─nvme1n1p2 ext4   1.0          2972513c-f52b-4c89-b7e5-cc9b45f4817f  636.3M    28% /boot
└─nvme1n1p3 btrfs        fedora b3e4292e-bdca-4071-b164-d2e7d1134f67  215.8G     5% /home
                                                                                    /
nvme0n1                                                                             
├─nvme0n1p1 ntfs                B4FC7F32FC7EEE4C                                    
└─nvme0n1p2 ntfs                0020256D20256B3C       

output of sudo fdisk -l:

Disk /dev/nvme1n1: 232.89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: Samsung SSD 970 EVO 250GB               
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 353B86D7-91C3-4FEA-B7EE-38E091F29738

Device           Start       End   Sectors   Size Type
/dev/nvme1n1p1    2048   1230847   1228800   600M EFI System
/dev/nvme1n1p2 1230848   3327999   2097152     1G Linux extended boot
/dev/nvme1n1p3 3328000 488396799 485068800 231.3G Linux filesystem


Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 970 EVO 1TB                 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc4a570f5

Device         Boot   Start        End    Sectors  Size Id Type
/dev/nvme0n1p1 *       2048    1026047    1024000  500M  7 HPFS/NTFS/exFAT
/dev/nvme0n1p2      1026048 1953519615 1952493568  931G  7 HPFS/NTFS/exFAT


Disk /dev/zram0: 8 GiB, 8589934592 bytes, 2097152 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

I don’t know where the issue is, thanks in advance.

Why does the Windows disk not have an EFI partition on it?

Here is the reports fo my 2 disk Windows 11/Fedora setup.
I installed Windows 11 first then installed Fedora.

$ lsblk -f
NAME                     FSTYPE      FSVER LABEL         UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
zram0                                                                                                        [SWAP]
nvme1n1
├─nvme1n1p1              vfat        FAT32               4F61-1BD9                             579.8M     3% /boot/efi
├─nvme1n1p2              ext4        1.0                 80bb40c6-8d79-4a27-929f-009a3c7aa129  572.6M    34% /boot
└─nvme1n1p3              crypto_LUKS 2                   904db66b-db23-4719-bbf6-fb596c23d831
  └─luks-904db66b-db23-4719-bbf6-fb596c23d831
                         btrfs             fedora_worthy f160dd82-834b-4cfa-8ee7-9c159b2a1b7b    1.1T    39% /home
                                                                                                             /
nvme0n1
├─nvme0n1p1              vfat        FAT32 BOOT          EA24-6547                             466.5M     6% /mnt
├─nvme0n1p2
├─nvme0n1p3              ntfs              Windows       FEE82531E824EA1B
└─nvme0n1p4              ntfs              Recovery      02C82581C8257457

$ mount -o ro /dev/nvme0n1p1 /mnt
$ ls /mnt/EFI
Boot/  Microsoft/

It seems that the Windows EFI entry is missing from the UEFI BIOS.

This is what I see:

 $ efibootmgr
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0000,0001
Boot0000* Windows Boot Manager	HD(1,GPT,abebd141-102a-43ab-8f52-7f5ee408b138,0x800,0xf9800)/\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000000000100000010000000040000007fff0400
Boot0001* UEFI: PXE IPv4 Realtek PCIe 2.5GBE Family Controller	PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)/MAC(50ebf676d236,0)/IPv4(0.0.0.0,0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)0000424f
Boot0003* Fedora	HD(1,GPT,299f9047-6557-4cd0-8281-1838152ee161,0x800,0x12c000)/\EFI\FEDORA\SHIMX64.EFI0000424f

And

$ os-prober
/dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi

I think that you need to fix Windows boot then I expect os-prober will report where windows can be booted from.

2 Likes

This seems to imply that windows was installed in legacy (MBR) mode and fedora was installed in UEFI mode. Fedora cannot boot or even see windows with that difference.

Fedora is installed on a disk with GPT partitioning and can be installed and boot in either mode in that way. Windows is installed on a disk that is “dos” partitioned and can only boot in MBR mode on that drive.

When you expect to dual boot with fedora you must install both OSes in the same boot mode.

1 Like

Thank you, that’s what I did wrong. To fix it I went into bios/uefi settings and chanched it to legacy, reinstalled fedora and everything works right out of the box!

2 Likes