Эквивалент Windows efibootmgr?

Windows продолжает переопределять порядок загрузки UEFI, даже если я изменю его с помощью efibootmgr из Ubuntu. Однако параметр BootNext не отменяется, то есть я могу установить для BootNext значение Ubuntu, и он загружается в Ubuntu после перезагрузки. Поэтому я написал следующий сценарий, который будет запускаться каждый раз при загрузке Ubuntu:

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

Это гарантирует, что я могу загрузиться в grub при перезагрузке из Ubuntu. Есть ли способ сделать то же самое в Windows, чтобы я мог загрузиться в grub при перезагрузке из Windows?

РЕДАКТИРОВАТЬ :

Запуск bcdedit / v дает (Нет записи в Ubuntu):

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

person Naveen Unnikrishnan    schedule 05.07.2017    source источник
comment
Кажется, я не могу найти запись Ubuntu в BCDedit. @wOxxOm, пожалуйста, взгляните на РЕДАКТИРОВАТЬ.   -  person Naveen Unnikrishnan    schedule 05.07.2017
comment
Я был неправ: менеджер загрузки Windows, конечно же, запускается после UEFI.   -  person wOxxOm    schedule 05.07.2017
comment
EasyUEFI поддерживает одноразовую последовательность загрузки и интерфейс командной строки. Может быть, вам удастся найти чистые утилиты CLI.   -  person wOxxOm    schedule 05.07.2017
comment
Спасибо за ввод @wOxxOm. Однако интерфейс командной строки доступен только в платной версии. Я бы предпочел не тратить 30 долларов на то, чтобы это исправить.   -  person Naveen Unnikrishnan    schedule 06.07.2017
comment
Я тоже это ищу.   -  person Mike Wise    schedule 04.02.2018


Ответы (2)


В Windows вы можете использовать «bcdedit /enum firmware», чтобы перечислить все приложения микропрограмм, затем «bcdedit /set {fwbootmgr} bootsequence {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}», чтобы установить параметр BootNext.

person Douglas S.    schedule 10.09.2019
comment
bcdedit изменяет загрузчик Windows, а efibootmgr фактически изменяет UEFI. Загрузчик Windows может отказаться загружать то, что с радостью сделает UEFI. - person facetus; 19.05.2020

Разве вам не нужно создавать загрузчик UBuntu, аналогичный {9b4692db-d6e1-11e6-8040-f733056555ec}?

В основном узел ubuntu должен быть изменен с диспетчера загрузки на приложение загрузчика. Затем создайте диспетчер загрузки в EFI \ Boot \ bootx64.efi.
Создайте узел {bootmgr} для диспетчера загрузки. Установите его displayorder, чтобы включить оба указанных выше руководства. Затем установите значение по умолчанию для {bootmgr} на ubuntu guid. Это должно сделать элемент ubuntu липким при перезагрузке.

person videoguy    schedule 10.10.2017