How to add Windows 10 to Fedora boot loader list?

After installing Fedora 34 KDE I have no access to the Windows 10 installation. (I also have no access to a previous Solus installation, but that problem had preceded the installation of Fedora. I have posted a separate topic on that here).

Here I am interested in restoring access from Fedora boot loader to my Windows 10 installation. (I had a Linux Mint in place of Fedora, and Mint had access to Windows but not to Solus. I have thought that replacing Mint with Fedora would fix the problem: it did not, it added a new one.)

Updating grub Windows is not seen:

$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
[sudo] password for cip: 
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/Stylish/theme.txt
Found Solus (4.2) on /dev/nvme0n1p3
Adding boot menu entry for UEFI Firmware Settings ...
done

Partition manager shows this:

and lsblk:

lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme0n1     259:0    0 465.8G  0 disk 
├─nvme0n1p1 259:1    0   600M  0 part /boot/efi
├─nvme0n1p2 259:2    0     1G  0 part /boot
├─nvme0n1p3 259:3    0   100G  0 part 
├─nvme0n1p4 259:4    0    16M  0 part 
├─nvme0n1p5 259:5    0 215.7G  0 part 
└─nvme0n1p6 259:6    0 148.4G  0 part /home

The Windows 10 partitions are nvme0n1p4 (reserved) and nvme0n1p5 (main). The efi partition was created by Fedora during its automatic installation: nvme0n1p1.

I would like to be able to keep Fedora (remove other Linux, namely Solus) but I want a dual-boot with Windows 10. I think a solution would be to install Kubuntu in place of Fedora - I think that would provide access to at least Windows. But I want to give it a try here.

1 Like

I have the same problem, after installing Fedora 34 I cannot start Windows 10. Even after adding the path to the boot loader in the BIOS it doesn’t start. On Youtube I saw that you are able to update grub and then it tries to Fix the bootloader but it was not on Fedora.

Please be noted that the path of the grub.cfg is change on EFI systems.

It is /boot/grub2/grub.cfg

Hello,
I have been successful installing Fedora 34 using Anaconda installer and maintaining dual boot with Windows 10 Pro that was pre-installed. The key is to maintain the ESP (EFI System Partition) unchanged from how Windows 10 configured it. The only change to ESP is to add the Fedora linux mount point designation “?boot/efi” to the partion identification. then for fedora adding another ext4 formated partition named /boot. It does NOT need to be wihtin the first few cylinders of the disk.

For UEFI booting there can be one and only one ESP partition upon a disk. Consult a WIndows 10 expert to learn if it is possible to ‘slot in’ just the ESP partition and preserving other information on the disk. My personal action would be to simply completely wipe the disk and start over installing Windows 10 then adding fedora using Anaconda installer. If you added an mbr, obliterate it. It is not needed for UEFI booting.

Sincerely,
Showmestate

What’s the output from sudo parted --list? And are there .efi files in /boot/efi/EFI/Microsoft/Boot?

Thanks, Johnathan! There are not efi files in Microsoft/Boot only in Windows. It’s strange because at some point I was able to dualboot but made a fresh reinstall of Fedora which caused Windows to disappear. The files are all still on my drive so probably the efi files are deleted during the reinstallation?

The way you wrote that, it sounds like you’re saying that there are .efi files directly in /boot/efi/EFI/Windows, just not in the /boot/efi/EFI/Microsoft/Boot subdirectory? Is that correct, or does /boot/efi/EFI/Windows not exist or not contain .efi files under it at all?

Seeing the output from sudo parted --list would be very helpful before speculating on what happened.

Kinda. It’s still /boot/efi/EFI/fedora/grub.cfg on EFI systems, it’s just that since Fedora 34 that file now defers to /boot/grub2/grub.cfg.

The Microsoft subfolder doesn’t include any efi files but the windows subdirectory contains bootmgfw.efi and bootmgr.efi

What does tho output of the following command say?
efibootmgr

It should list all found boot entries, adding an Asterisk * to all enabled ones.

looks right:

BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0002,0000
Boot0000* Windows 10
Boot0001* Fedora
Boot0002* Fedora

deleted

Do you have two Fedora installations?
Usually there should be one instead of two.

Mine looks like this:

BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,0000,0003,000F,0010,0009
Boot0000* Windows Boot Manager
Boot0002* Fedora
Boot0003* UEFI: Built-in EFI Shell 
Boot0009  Hard Drive 
Boot000F  UEFI OS
Boot0010  Network Card

I reinstalled Fedora (Wifi and Audio weren’t working and I thought a reinstall would help) and maybe this fucked up everything. There should be only one Fedora. Is there a way to see which one is the active I use?

Look up fix master boot record MBR for windows 10 or repair EFI bootloader. You will need a usb drive with Windows 10. You could also try the auto repair in advanced options.
https://www.partitionwizard.com/partitionmanager/windows-mbr-fix.html

for EFI bootloader and GPT - https://www.dell.com/support/kbdoc/en-ca/000124331/how-to-repair-the-efi-bootloader-on-a-gpt-hdd-for-windows-7-8-8-1-and-10-on-your-dell-pc

1 Like

it worked thanks a lot!! Now I need to find a way to get grub started again so I can dual boot again wihtout using BIOS

1 Like

Boot into fedora and in the terminal type “sudo os-prober” , “sudo nano /etc/default/grub” to change timeout from 5 to 10 save and exit. Then to apply changes type “sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg”. Restart and grub menu should come up.

2 Likes

thanks a lot! getting closer and closer :laughing: The Grub menu appears when I boot Fedora in Bios but if I turn on the laptop it will start windows directly. Is it something I need to configure in Windows so it recognizes a dual boot?

1 Like

In your bios change the boot order to fedora first then windows second, that might help.

2 Likes

thank you this is it! Everything working well for me now!