- Вопрос или проблема
- Изменение значения по умолчанию для загрузки в диспетчере загрузки Windows
- Изменение порядка загрузки в микропрограмме UEFI
- Ответ или решение
- Шаг 1: Открытие командной строки с повышенными правами
- Шаг 2: Просмотр текущих загрузочных записей
- Шаг 3: Визуализация последовательности загрузки
- Шаг 4: Изменение порядка загрузки
- Шаг 5: Подтверждение изменений
- Шаг 6: Перезагрузка системы
- Важно
Вопрос или проблема
У меня установлено несколько операционных систем, каждая из которых имеет свой собственный файл 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: Открытие командной строки с повышенными правами
- Нажмите правую кнопку мыши на кнопке «Пуск» и выберите «Командная строка (администратор)» или «Windows PowerShell (администратор)».
- Если появится запрос контроля учетных записей (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.