Grub doesn't boot Windows 11 anymore after a maintenance

I was using a “maintenance” app in Windows to clean up my computer and that app changed something to the boot process.

Now when I select the “Windows Boot Manager” entry in GRUB, the Dell logo appears and it stays there indefinitely:

It looks like GRUB is pointing to a wrong path of the bootmgfw.efi file which is located in the /EFI/Microsoft/Boot/ path of the EFI partition but I don’t know how to check if it’s correct or not.

When I press F12 to bring the UEFI boot menu of my laptop, I can manually select the Windows one and it boots correctly.

Any help is appreciated.

Thanks.

I know there was some commotion recently about grub not being able to load windows when the windows partition is encrypted by bitlocker. If that’s the problem, I don’t think there is a good known solution at the moment. There is some talk of having the grub boot entry do a reboot into windows rather than trying to chainload it directly, but I don’t think that has been implemented yet. In the meanwhile, you may have to make do with the F12 method you’ve been using.

FWIW, here is a link to that recent discussion on the devel list:

https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/47SPDF3X6L6NPS5PXZVBSCD2MZRRUOOE/

I’m not sure that that’s your problem, but it seems likely.

Hello, I actually removed the bitlocker encryption so that’s not the problem, however, I think I know what the problem is, it’s just that I don’t know how to check if GRUB is actually pointing to the correct path.

I think what caused this issue is that Windows is not installed in disk zero but in disk one so this software I was using to clean up the computer (it’s called Advanced Systemcare if you wonder) detected something in the boot environment I guess and made a supposed correction which lead to the problem.

I will need to reinstall windows in disk zero to avoid this problem in the future but for now I just want to make GRUB to boot it correctly.

I’m actually not sure how to configure the UEFI version of grub (I was still using BIOS when I last did anything with grub).

However, If the “variables” in the firmware are correct for booting windows, you should at least be able to see what those are pointing at by running the following command.

efibootmgr -v

It will show the partition UUID instead of the partition number, but you can see what partition number the UUID’s are associated with with the following command.

ls -al /dev/disk/by-partuuid

But I don’t know how to get grub to find the “right” partition these days. It used to be something like “root (hd0,1)” in a “grub.cfg” file somewhere, but that was in the BIOS days and I’m pretty sure that wouldn’t work for your system.

Edit: Oh, one other thing, I think with UEFI, the bootloader (grubx64.efi) has to be on the same partition as any other bootloaders that it is trying to “chainload”. So if your windows repair tool created a new and separate EFI partition just for windows and then updated the firmware to point to that, then grub will not be able to boot windows anymore. Both grub and windows must be on the same ESP (I’m not 100% certain on that, but I’m pretty sure). All the paths in the grub config files will be relative to the partition that grub itself is on. If the grub bootloader and the windows bootloader are on separate partitions, that should show up in the output of the efibootmgr -v command (their entries will have different partition UUIDs).

It may need nothing more than a grub update with sudo grub2-mkconfig -o /boot/grub2/grub.cfg which should run os-prober and find windows again.

This is what it shows:
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,0004,0001,0002,0003,0005,0006
Boot0000* Fedora HD(3,GPT,f8d5e739-dac2-4a18-bb43-8b956caf6b93,0xe8e6800,0x32000)/File(\EFI\fedora\shimx64.efi)WINDOWS…x…B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}…l…
Boot0001* Windows HD(3,GPT,f8d5e739-dac2-4a18-bb43-8b956caf6b93,0xe8e6800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)
Boot0002* ONBOARD NIC (IPV4) PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/MAC(60189563070c,0)/IPv4(0.0.0.00.0.0.0,0,0)N…YM…R,Y.
Boot0003* ONBOARD NIC (IPV6) PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/MAC(60189563070c,0)/IPv6([::]:<->[::]:,0,0)N…YM…R,Y.
Boot0004* Fedora HD(3,GPT,f8d5e739-dac2-4a18-bb43-8b956caf6b93,0xe8e6800,0x32000)/File(\EFI\fedora\shimx64.efi)
Boot0005* UEFI ADATA SX6700NP 2L2329C9S9XD 1 PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-E0-4C-6E-10-F0-19-D9)/HD(2,GPT,a0395858-50b8-4c34-85bc-4390df7939c8,0x8800,0xe8de000)/File(\EFI\Boot\BootX64.efi)N…YM…R,Y.
Boot0006* UEFI ADATA SX6700NP 2L2329C9S9XD 1 2 PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-E0-4C-6E-10-F0-19-D9)/HD(3,GPT,f8d5e739-dac2-4a18-bb43-8b956caf6b93,0xe8e6800,0x32000)/File(\EFI\Boot\BootX64.efi)N…YM…R,Y.

And this is what it shows:

total 0
drwxr-xr-x. 2 root root 140 ago 5 10:47 .
drwxr-xr-x. 8 root root 160 ago 5 05:47 …
lrwxrwxrwx. 1 root root 10 ago 5 10:47 0109ecd7-01 → …/…/sda1
lrwxrwxrwx. 1 root root 15 ago 5 10:47 a0395858-50b8-4c34-85bc-4390df7939c8 → …/…/nvme0n1p2
lrwxrwxrwx. 1 root root 15 ago 5 10:47 a6f6e8cd-3581-42b1-85c7-a0325bb7b21c → …/…/nvme0n1p4
lrwxrwxrwx. 1 root root 15 ago 5 10:47 f8d5e739-dac2-4a18-bb43-8b956caf6b93 → …/…/nvme0n1p3
lrwxrwxrwx. 1 root root 15 ago 5 10:47 fb8175cc-046c-45c6-be35-62dee39a9ded → …/…/nvme0n1p1

Me neither, that’s what I need to find out.

Yes, they are in the same partition, nothing has been modified except that this clean up software changed something I still don’t know.

It seems to find it but it still doesn’t boot when I select the entry.

I am lost here.
I do know that windows with their updates has always been trying to lock out other OSes and it may be that that particular “clean up” software is one of the tools they used to block linux + windows dual boot. Personally I never use windows tools on my systems and stick with what is provided by the OS only (even on my dual boot laptop). I do not plan to install windows 11 ever and will go out kicking and screaming if forced to update from windows 10.

Maybe you should try a windows repair using a windows boot media disk/usb and see if that problem can be fixed that way.

What it’s odd is that I’ve been using it since forever and never had any problems with the dual boot until I used it recently, I guess they added something to it in a recent update I got that created the problem.

I did that but it didn’t help, the thing is Windows is booting correctly when I select the entry when pressing F12 at the moment I turn on the laptop but it doesn’t boot when I select it inside GRUB, it also boots when I change the boot priority in the UEFI settings by putting the windows entry at the beginning of the list.

If you watch this forum regularly you will see posts about problems with windows 11 and fedora. Yours is one of those. I see very few posts about issues with windows 10 that are windows related; Almost all are user error.

I checked a few but I didn’t find any solution about this little issue, I’ll keep checking and waiting for someone with the same problem.

I also have seen no posted solutions. All the ones I have seen require booting windows 11 from the bios boot menu and not from grub.

This is a very good reason that most of us are satisfied with keeping windows at windows 10 in spite of their encouragement for updates to 11. Windows 10 so far seems to not exhibit the same issues.

I think the problem is not Windows 11 directly but the fact that I didn’t install it on disk 0, I’ve heard that it’s always recommended to install any Windows version on that disk to avoid issues like the one I have, lesson learnt :face_with_hand_over_mouth:

I will need to reinstall everything but I can’t do it yet, hence the help I need to fix the situation.

If it works for your setup, what I did was change the boot order of windows so that its number 1, and my fedora is the secondary option in the boot menu in UEFI. This is obviously inconvenient, but its my little temporary fix for the meantime until the recent grub problems are smoothed out.

Here is another thread with similar problem and possible solution

1 Like

It works.

2 Likes

That actually works but it would be the same as I’m doing now, instead of booting the linux entry where grub boots, it’s going to be windows the one to boot first and I will need to press F12 to select the linux one when I needed.

Did you try the fix noted by @bdconnolly just above?

I’m on it!, I was actually writing this from windows :face_with_hand_over_mouth:

I knew the problem was going to be GRUB and not windows, gonna try now!.