Как изменить порядок загрузки UEFI из Windows 10?

Вопрос или проблема

У меня установлено несколько операционных систем, каждая из которых имеет свой собственный файл EFI в ESP (раздел EFI системы).

Например: у меня есть Windows 10 по адресу \EFI\Boot\Microsoft\bootmgr.efi, и у меня есть WinPE по адресу \EFI\WinPE\Boot\bootx64.efi

Когда я запускаю BIOS, я вижу список операционных систем, но мне хотелось бы иметь возможность отдать Windows команду, чтобы изменить порядок загрузки, а затем завершить работу, эффективно сообщая Windows загрузить другую операционную систему.

Это нигде не документировано компанией Microsoft. Тем не менее, я смог изучить исходный код Grub2Win, чтобы увидеть, как они реализовали переключение порядка.

Судя по всему, существует объект bcdedit под названием {fwbootmgr}, если вы измените порядок отображения этого элемента, это эффективно изменит порядок загрузки в UEFI.

bcdedit /set {fwbootmgr} displayorder <ID_OF_NEW_OS> {bootmgr}

Вы можете получить идентификатор других записей UEFI с помощью команды: bcdedit /enum {fwbootmgr} и просмотреть загрузочные записи под displayorder.

Используйте bcdedit /displayorder:

bcdedit /displayorder {802d5e32-0784-11da-bd33-000476eba25f} {cbd971bf-b7b8-4885-951a-fa03044f5d71}

bcdedit /enum выводит список идентификаторов, присутствующих в системе.

Примечание: команды ниже были введены в окне командной строки администратора.

Изменение значения по умолчанию для загрузки в диспетчере загрузки Windows

Это было протестировано с использованием Windows 11 (23H2 v2). Двойная загрузка с Windows 10 была настроена в виртуальной машине VirtualBox, чтобы создать пример для использования в этом ответе. Windows 11 и Windows 10 были установлены на разные диски.

Команда ниже выводит все операционные системы, хранящиеся в BCD, и текущее значение по умолчанию для загрузки.

bcdedit

Пример вывода показан ниже.


Диспетчер загрузки Windows
--------------------
идентификатор          {bootmgr}
устройство             раздел=\Device\HarddiskVolume1
путь                  \EFI\Microsoft\Boot\bootmgfw.efi
описание             Диспетчер загрузки Windows
локаль                  en-US
наследовать           {globalsettings}
по умолчанию          {current}
resumeobject          {b582da06-8fb9-11ef-9705-ab9ecf0bc7c4}
displayorder          {current}
                      {b582da03-8fb9-11ef-9705-ab9ecf0bc7c4}
toolsdisplayorder     {memdiag}
тайм-аут              30

Загрузчик Windows
-------------------
идентификатор          {current}
устройство             раздел=C:
путь                  \Windows\system32\winload.efi
описание             Windows 11
локаль                  en-US
наследовать           {bootloadersettings}
recoverysequence      {b582da08-8fb9-11ef-9705-ab9ecf0bc7c4}
displaymessageoverride  Восстановление
recoveryenabled       Да
isolatedcontext       Да
allowedinmemorysettings 0x15000075
osdevice              раздел=C:
systemroot            \Windows
resumeobject          {b582da06-8fb9-11ef-9705-ab9ecf0bc7c4}
nx                    OptIn
bootmenupolicy        Стандартный

Загрузчик Windows
-------------------
идентификатор          {b582da03-8fb9-11ef-9705-ab9ecf0bc7c4}
устройство             раздел=D:
путь                  \Windows\system32\winload.efi
описание             Windows 10
локаль                  en-US
наследовать           {bootloadersettings}
recoverysequence      {b582da04-8fb9-11ef-9705-ab9ecf0bc7c4}
displaymessageoverride  Восстановление
recoveryenabled       Да
isolatedcontext       Да
allowedinmemorysettings 0x15000075
osdevice              раздел=D:
systemroot            \Windows
resumeobject          {b582da02-8fb9-11ef-9705-ab9ecf0bc7c4}
nx                    OptIn
bootmenupolicy        Стандартный

Вы можете сравнить вывод предыдущей команды с тем, что отображается в диспетчере загрузки Windows на изображении ниже.

Команда для установки Windows 10 в качестве значения по умолчанию для загрузки приведена ниже.

bcdedit /default {b582da03-8fb9-11ef-9705-ab9ecf0bc7c4} 

Изменение можно подтвердить, введя команду ниже.

bcdedit /v | find "default "

Пример вывода показан ниже.

по умолчанию              {b582da03-8fb9-11ef-9705-ab9ecf0bc7c4}

Или вы можете снова ввести команду bcdedit. Пример вывода показан ниже. Обратите внимание, что идентификатор для Windows 10 изменился на {default}.


Диспетчер загрузки Windows
--------------------
идентификатор          {bootmgr}
устройство             раздел=\Device\HarddiskVolume1
путь                  \EFI\Microsoft\Boot\bootmgfw.efi
описание             Диспетчер загрузки Windows
локаль                  en-US
наследовать           {globalsettings}
по умолчанию          {default}
resumeobject          {b582da06-8fb9-11ef-9705-ab9ecf0bc7c4}
displayorder          {current}
                      {default}
toolsdisplayorder     {memdiag}
тайм-аут              30

Загрузчик Windows
-------------------
идентификатор          {current}
устройство             раздел=C:
путь                  \Windows\system32\winload.efi
описание             Windows 11
локаль                  en-US
наследовать           {bootloadersettings}
recoverysequence      {b582da08-8fb9-11ef-9705-ab9ecf0bc7c4}
displaymessageoverride  Восстановление
recoveryenabled       Да
isolatedcontext       Да
allowedinmemorysettings 0x15000075
osdevice              раздел=C:
systemroot            \Windows
resumeobject          {b582da06-8fb9-11ef-9705-ab9ecf0bc7c4}
nx                    OptIn
bootmenupolicy        Стандартный

Загрузчик Windows
-------------------
идентификатор          {default}
устройство             раздел=D:
путь                  \Windows\system32\winload.efi
описание             Windows 10
локаль                  en-US
наследовать           {bootloadersettings}
recoverysequence      {b582da04-8fb9-11ef-9705-ab9ecf0bc7c4}
displaymessageoverride  Восстановление
recoveryenabled       Да
isolatedcontext       Да
allowedinmemorysettings 0x15000075
osdevice              раздел=D:
systemroot            \Windows
resumeobject          {b582da02-8fb9-11ef-9705-ab9ecf0bc7c4}
nx                    OptIn
bootmenupolicy        Стандартный

Изменение порядка загрузки в микропрограмме UEFI

Это было протестировано с использованием Windows 11 (23H2 v2). Двойная загрузка с Ubuntu была настроена в виртуальной машине VirtualBox, чтобы создать пример для использования в этом ответе. Windows 11 и Ubuntu были установлены на разные диски.

Команда ниже выводит все приложения микропрограммы, хранящиеся в UEFI, и текущий порядок загрузки UEFI.

bcdedit /enum firmware

Пример вывода показан ниже.


Диспетчер загрузки микропрограммы
---------------------
идентификатор          {fwbootmgr}
displayorder          {bootmgr}
                      {46e42764-9058-11ef-aca9-806e6f6e6963}
                      {46e42760-9058-11ef-aca9-806e6f6e6963}
                      {46e42761-9058-11ef-aca9-806e6f6e6963}
                      {46e42762-9058-11ef-aca9-806e6f6e6963}
                      {46e42763-9058-11ef-aca9-806e6f6e6963}
                      {46e4275f-9058-11ef-aca9-806e6f6e6963}
                      {b7cd826a-904c-11ef-acaf-806e6f6e6963}
тайм-аут              0

Диспетчер загрузки Windows
--------------------
идентификатор          {bootmgr}
устройство             раздел=\Device\HarddiskVolume5
путь                  \EFI\Microsoft\Boot\bootmgfw.efi
описание             Диспетчер загрузки Windows
локаль                  en-us
наследовать           {globalsettings}
по умолчанию          {current}
resumeobject          {70ace0d4-9026-11ef-aca7-080027990617}
displayorder          {46e42764-9058-11ef-aca9-806e6f6e6963}
                      {bootmgr}
                      {46e42760-9058-11ef-aca9-806e6f6e6963}
                      {46e42761-9058-11ef-aca9-806e6f6e6963}
                      {46e42762-9058-11ef-aca9-806e6f6e6963}
                      {46e42763-9058-11ef-aca9-806e6f6e6963}
                      {46e4275f-9058-11ef-aca9-806e6f6e6963}
                      {b7cd826a-904c-11ef-acaf-806e6f6e6963}
toolsdisplayorder     {memdiag}
тайм-аут              30

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор          {46e4275f-9058-11ef-aca9-806e6f6e6963}
описание             UiApp

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор          {46e42760-9058-11ef-aca9-806e6f6e6963}
описание             UEFI VBOX CD-ROM VB1-1a2b3c4d 

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор          {46e42761-9058-11ef-aca9-806e6f6e6963}
описание             UEFI VBOX HARDDISK VBb8a01863-6eda7721 

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор          {46e42762-9058-11ef-aca9-806e6f6e6963}
описание             EFI Internal Shell

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор          {46e42763-9058-11ef-aca9-806e6f6e6963}
описание             UEFI VBOX HARDDISK VBadc6be13-21cdb45c 

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор          {46e42764-9058-11ef-aca9-806e6f6e6963}
устройство             раздел=\Device\HarddiskVolume1
путь                  \EFI\ubuntu\shimx64.efi
описание             ubuntu

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор          {b7cd826a-904c-11ef-acaf-806e6f6e6963}
описание             UEFI PXEv4 (MAC:080027990617)

Вы можете сравнить вывод предыдущей команды с тем, что отображается в настройках микропрограммы UEFI на изображении ниже.

Команда для переключения Windows с Ubuntu в порядке загрузки приведена ниже.

bcdedit /set {fwbootmgr} displayorder {46e42764-9058-11ef-aca9-806e6f6e6963} {bootmgr} {46e42760-9058-11ef-aca9-806e6f6e6963} {46e42761-9058-11ef-aca9-806e6f6e6963} {46e42762-9058-11ef-aca9-806e6f6e6963} {46e42763-9058-11ef-aca9-806e6f6e6963} {46e4275f-9058-11ef-aca9-806e6f6e6963} {b7cd826a-904c-11ef-acaf-806e6f6e6963}

Изменение можно подтвердить, введя команду ниже.

bcdedit /enum {fwbootmgr}

Пример вывода показан ниже.


Диспетчер загрузки микропрограммы
---------------------
идентификатор          {fwbootmgr}
displayorder          {46e42764-9058-11ef-aca9-806e6f6e6963}
                      {bootmgr}
                      {46e42760-9058-11ef-aca9-806e6f6e6963}
                      {46e42761-9058-11ef-aca9-806e6f6e6963}
                      {46e42762-9058-11ef-aca9-806e6f6e6963}
                      {46e42763-9058-11ef-aca9-806e6f6e6963}
                      {46e4275f-9058-11ef-aca9-806e6f6e6963}
                      {b7cd826a-904c-11ef-acaf-806e6f6e6963}
тайм-аут              0

Ссылки

Ответ или решение

Чтобы изменить порядок загрузки UEFI из Windows 10, следуйте приведенным ниже инструкциям, которые позволят вам управлять загрузочными записями и установить желаемую операционную систему в качестве приоритетной для загрузки.

Шаг 1: Открытие командной строки с повышенными правами

  1. Нажмите правую кнопку мыши на кнопке «Пуск» и выберите «Командная строка (администратор)» или «Windows PowerShell (администратор)».
  2. Если появится запрос контроля учетных записей (UAC), выберите «Да», чтобы продолжить.

Шаг 2: Просмотр текущих загрузочных записей

Чтобы увидеть все доступные загрузочные записи и их идентификаторы, выполните следующую команду:

bcdedit

Шаг 3: Визуализация последовательности загрузки

Чтобы получить информацию о текущем порядке загрузки UEFI, используйте следующую команду:

bcdedit /enum {fwbootmgr}

В выводе вы увидите список идентификаторов, которые представляют различные операционные системы. Запомните идентификатор системы, которую вы хотите сделать первым в порядке загрузки. Например, если вы хотите установить Windows 10 с идентификатором {b582da03-8fb9-11ef-9705-ab9ecf0bc7c4} в качестве приоритетной системы, запишите его.

Шаг 4: Изменение порядка загрузки

Чтобы изменить порядок загрузки, используя bcdedit, выполните следующую команду. Замените <ID_NOVOY_OS> на тот идентификатор, который вы хотите установить на первое место:

bcdedit /set {fwbootmgr} displayorder <ID_NOVOY_OS> {bootmgr}

Если вы хотите установить несколько записей в определенном порядке, команда будет выглядеть следующим образом:

bcdedit /set {fwbootmgr} displayorder <ID_NOVOY_OS> {bootmgr} {ID_OST_VTOROY} {ID_OST_TRETYE}

Шаг 5: Подтверждение изменений

Проверьте, что изменения были применены, с помощью команды:

bcdedit /enum {fwbootmgr}

Убедитесь, что displayorder теперь включает желаемый идентификатор в нужном порядке.

Шаг 6: Перезагрузка системы

После того как вы внесли изменения, перезагрузите компьютер. Система должна загрузиться в установленную вами операционную систему.

Важно

  • Убедитесь, что вы выполняете все действия от имени администратора.
  • Имейте в виду, что неправильное изменение порядка загрузки может привести к тому, что некоторые операционные системы будут недоступны при загрузке.

Следуя этим шагам, вы сможете эффективно управлять порядком загрузки в UEFI из Windows 10 и переключаться между установками, не заходя в BIOS.

Оцените материал
Добавить комментарий

Капча загружается...