Обновить

Загрузочное меню UEFI 101

При загрузке UEFI могут использоваться два boot-menu:

  • меню firmware, хранящееся в NVRAM. Можно вызвать при включении компьютера по hotkey (F8/Esc/etc). Отображается в настройках Gen 2 VM Hyper-V (при этом можно менять порядок загрузки, но не сами записи).

  • меню загрузчика (опционально). В Linux это меню GRUB, в Windows - bootmgr (отображается, если содержит больше одной записи). Современное ядро Linux может загружаться напрямую без GRUB.

В firmware загрузка настраивается через текстовые переменные:

Boot#### - загрузочная запись
BootOrder - упорядоченный список записей Boot####
BootCurrent - запись, с которой загружена система
BootNext - запись, с которой однократно будет загружена система после перезагрузки

Первоначально firmware добавляет записи Boot#### для подключенных поддерживающих загрузку устройств (DVD, HDD, USB, Network).

При загрузке с диска происходит поиск на нем GPT раздела типа EFI system partition (ESP), с которого запускается загрузчик EFI\Boot\bootx64.efi (имя файла зависит от аппаратной платформы). Обычно этот раздел отформатирован в FAT32, так как большинство прошивок UEFI не поддерживают чтение других файловых систем (хотя и могли бы).

Созданные Rufus загрузочные UEFI-флешки с Windows содержат основной NTFS раздел с дистрибутивом (FAT32 не поддерживает файлы размером больше 4Gb) и скрытый FAT32 ESP раздел с фирменным EFI загрузчиком, поддерживающим чтение NTFS.

Загрузчик ОС может добавить (и обычно добавляет) в firmware новую запись Boot####:
Windows: HD(1,GPT,E935CDDD-9506-45D3-A96B-9354674BA581,0x800,0x32000)/\EFI\Microsoft\Boot\bootmgfw.efi
Linux: HD(1,GPT,F3275A6A-A4B2-4AD4-A8C1-D74B9C4E9691,0x800,0x12C000)/\EFI\redos\shimx64.efi

Загрузчик shimx64.efi может быть подписан цифровой подписью для работы с Secure boot, его единственная функция - запустить grubx64.efi из текущей директории. grubx64.efi не подписан, так как его содержимое может изменяться.

В некоторых случаях при переносе диска между ПК или VM в новой системе ОС не загружается. Например, если в NVRAM старой системы была настроенная запись Boot####, а стандартный раздел EFI boot поврежден или не содержит загрузчик в стандартном расположении. В этом случае необходимо или восстановить запись утилитами bcdedit/efibootmgr, или, в случае VM, переносить ее через export/import вместе с nvram.

Посмотреть загрузочные записи firmware
Windows

bcdedit /enum firmware
bcdedit /enum "{fwbootmgr}"
###(displayorder = BootOrder)###

Linux
efibootmgr -v

Однократно загрузиться с конкретной записи
Windows

bcdedit /set {fwbootmgr} bootsequence {GUID}
bcdedit /set {fwbootmgr} bootsequence {bootmgr}
###(bootsequence = BootNext)###

Linux
efibootmgr --bootnext 0003

Изменить порядок загрузки
Windows

bcdedit /set {fwbootmgr} displayorder {98b6343e-bc5c-11ef-8148-00155d518900}
bcdedit /set {fwbootmgr} displayorder {bootmgr} /addfirst

Linux
efibootmgr --bootorder 0003,0000,0001

Почитать:
https://uefi.org/specs/UEFI/2.10/03_Boot_Manager.html
https://www.rodsbooks.com/refind/

Если в чем-то ошибаюсь, буду признателен вашим комментариям.

Теги:
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

Oracle показала, что у технологической ИИ-революции могут закончиться деньги

Искусственный интеллект обещал изменить мировую экономику. Но пока компании рассказывают о революции производительности, инвесторы начинают задавать значительно более приземлённый вопрос:

Кто заплатит за сотни миллиардов долларов, уже потраченных на эту революцию? История Oracle показывает, что проблема может возникнуть задолго до того, как закончится спрос на ИИ.

Прошу обратить внимание на событие, которое произошло в сентябре 2026 года. Оно осталось практически незамеченным за пределами финансового и технологического сообщества.

Oracle показала, что у технологической ИИ-революции могут закончиться деньги

Публикации