Dual Boot – Fix ‘Error: file ‘/EFI/Microsoft/Boot/bootmgfw.efi’ Not Found’ in Ubuntu/Windows Dual Boot

bootdual-bootgrub2uefiwindows

I have a dualboot system with Ubuntu 20.04 and Windows 10 on one harddrive. Everything worked well for the last 4 weeks until an hour ago:

All of the sudden I got this error when trying to start Windows from GRUB:

error: file '/EFI/Microsoft/Boot/bootmgfw.efi' not found

What can I do about this problem?

What I tried and checked so far:

  • Updated grub
  • Checked the given file: it does exist! And it got a size of 1558328 bytes so it's not empty
  • Followed this answer and tried boot-repair as well as Rescatux (Reinstall Mictrosoft Windows UEFI)

Here is a report of my current boot setup as analyzed by boot-repair.

None of those trys fixed it so far. Has anyone got a solution or at least something to try?

[EDIT]

So what I achieved so far is that I'm able to boot into both OS again using UEFI. When pressing DEL on startup I can use the UEFI's boot menu to boot into grub (and into ubuntu from there) or into windows. But when starting into grub and trying to start windows from there I still get the same error message. Here is another boot report as analyzed by boot-repair. As you can see on line 97

Boot0011* (Rescapp) bootmgfw.efi    HD(1,GPT,84e08278-2d18-4a4c-9885-fde204e033e6,0x800,0x32000)/File(\EFI_PRE_RESCATUX_2020-09-01-20-46-59\Microsoft\Boot\bootmgfw.efi)

there is an entry on UEFI to boot into windows. But this entry uses a backup of the EFI to boot into windows. GRUB instead uses a more recent file to try to boot windows as you can see here in the grub.cfg file:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-92CE-E05A' {
    insmod part_gpt
    insmod fat
    set root='hd0,gpt1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  92CE-E05A
    else
      search --no-floppy --fs-uuid --set=root 92CE-E05A
    fi
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  set timeout=10
fi
### END /etc/grub.d/30_os-prober ###

I though about simply changing line

/EFI/Microsoft/Boot/bootmgfw.efi

to

/EFI_PRE_RESCATUX_2020-09-01-20-46-59/Microsoft/Boot/bootmgfw.efi

but on top of the file it says that you shouldn't edit this config file so I dont dare to do so. Could it break anything? And why does only the backed up version works and not the recent one? My whole boot setup looks a little messed to me.

Best Answer

It is work for me.

  1. Create a bootable windows 10 USB.
  2. Select USB from boot menu.
  3. "Repair your computer" > Troubleshoot > Startup Repair.
  4. Done

It take few seconds. :)

Related Question