Ubuntu – Windows 10 changes UEFI boot order every time

dual-bootuefi

I have an HP 500-413nl (a desktop) and Windows 10 keeps changing the boot order in UEFI/BIOS every time, so that if I want to boot Ubuntu 16.10 (64-bit) I always have to press F10, thus entering the BIOS setup and changing boot order…

Is there a workaround for my PC? What should I do? I'm a little desperate.

P.S.: I have already disabled "Secure boot" and "Fast/quick boot" in the BIOS and "Fast startup" in Windows options / Control panel.

Best Answer

I also faced the same issue that Windows 10 (Education) automatically, on startup, moves the Windows Boot Manager EFI entry to the top again. If I changed it, after restarting with Windows, the next boot skipped Grub and directly booted into Windows. This is how I sovled it:

I would recommend the tool EasyUEFI http://www.easyuefi.com/ to view and change some EFI related settings.

  1. Open the tool and select Manage EFI Boot Option

  2. Take a loot at the exiting entries. The two important ones for me are:

    Description:Windows Boot Manager
    GPT partition GUID:{505E666C-00CD-4654-BB80-FBD2C6F9F191}
    Partition number:2
    Partition starting sector:923648
    Partition ending sector:1128447
    File path:\EFI\Microsoft\Boot\bootmgfw.efi
    

    And:

    Description:Ubuntu 16.04
    GPT partition GUID:{505E666C-00CD-4654-BB80-FBD2C6F9F191}
    Partition number:2
    Partition starting sector:923648
    Partition ending sector:1128447
    File path:\EFI\ubuntu\grubx64.efi
    
  3. The next step is to make sure that Windows does not use its own bootmgfw.efi file again, but rather grubx64.efi. To do so, don't move an Ubuntu EFI entry to the top again (i.e. that's the problem we have), but just set the file path for the Windows Boot Manager to \EFI\ubuntu\grubx64.efi. You can also do this from the administrator command line:

    Bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
    

    Now, Windows should not change the EFI settings anymore and on every boot, GRUB is the default. As GRUB ideally already identified your Windows OS, it also contains its value in the grub settings.