Windows equivalent to efibootmgr?

11,584

Solution 1

On Windows you can use "bcdedit /enum firmware" to list all firmware applications, then "bcdedit /set {fwbootmgr} bootsequence {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" to set BootNext option.

Solution 2

Don't you have to create UBuntu loader similar to {9b4692db-d6e1-11e6-8040-f733056555ec}?

Basically the ubuntu node should be changed from boot manager to boot loader app. Then have a boot manager at EFI\Boot\bootx64.efi.
Create a {bootmgr} node for boot manager. Set its displayorder to include both the guids above. Then set the default value for {bootmgr} to ubuntu guid. That should make ubuntu item sticky across reboots.

Share:
11,584
Naveen Unnikrishnan
Author by

Naveen Unnikrishnan

Updated on June 11, 2022

Comments

  • Naveen Unnikrishnan
    Naveen Unnikrishnan almost 2 years

    Windows keeps overriding the UEFI boot order even if I change it with efibootmgr from Ubuntu. However BootNext option is not overridden, that is, I can set BootNext to Ubuntu and it boots into Ubuntu upon rebooting. I, therefore wrote the following script to run every time I boot into Ubuntu :

    efibootmgr > file.txt
    CURR="$(grep "BootCurrent" file.txt | grep -Eo "[0-9]{4}")"
    efibootmgr -n $CURR
    rm file.txt
    exit 0
    

    This ensures that I can boot into grub when I reboot from Ubuntu. Is there a way to do the same from Windows so that I can boot into grub when rebooting from Windows?

    EDIT :

    Running bcdedit /v gives (No Ubuntu entry):

    Windows Boot Manager
    --------------------
    identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
    device                  partition=\Device\HarddiskVolume1
    path                    \EFI\ubuntu\shimx64.efi
    description             Windows Boot Manager
    locale                  en-US
    inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
    default                 {9b4692db-d6e1-11e6-8040-f733056555ec}
    resumeobject            {9b4692da-d6e1-11e6-8040-f733056555ec}
    displayorder            {9b4692db-d6e1-11e6-8040-f733056555ec}
    toolsdisplayorder       {b2721d73-1db4-4c62-bf78-c548a880142d}
    timeout                 0
    
    Windows Boot Loader
    -------------------
    identifier              {9b4692db-d6e1-11e6-8040-f733056555ec}
    device                  partition=C:
    path                    \WINDOWS\system32\winload.efi
    description             Windows 10
    locale                  en-US
    inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
    recoverysequence        {9b4692dc-d6e1-11e6-8040-f733056555ec}
    displaymessageoverride  Recovery
    recoveryenabled         Yes
    isolatedcontext         Yes
    allowedinmemorysettings 0x15000075
    osdevice                partition=C:
    systemroot              \WINDOWS
    resumeobject            {9b4692da-d6e1-11e6-8040-f733056555ec}
    nx                      OptIn
    bootmenupolicy          Standard
    
  • facetus
    facetus almost 4 years
    bcdedit changes the Windows loader, while efibootmgr in fact modifies UEFI. Windows loader may refuse to load what UEFI will happily do.