Windows 11 удаляет загрузочную запись Linux из UEFI.

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

Я использую двойную загрузку Arch Linux и Windows 11. После обновления Windows 11 до 24H2 у меня возникли проблемы с тем, что Windows удаляет загрузочную запись Arch из UEFI Boot Manager (не уверен в правильной терминологии), когда я выключаю Windows.

Я использую разные физические (NVMe) диски для Arch и Windows, каждый диск имеет свой собственный EFI раздел. Раздел EFI, где хранится Grub (т.е. на диске Arch), остается нетронутым Windows (насколько я могу судить). Следовательно, мне не нужно запускать grub-install, чтобы иметь возможность загрузиться обратно в Arch, достаточно добавить загрузочную запись обратно, используя efibootmgr (загружаясь с USB live системы).

Это вывод efibootmgr, когда у меня есть загрузочная запись Arch:

$ efibootmgr  
BootCurrent: 0000  
Timeout: 1 seconds  
BootOrder: 0000,0003,0004,0005  
Boot0000* arch  HD(2,GPT,173e8e08-39d0-4ef2-a001-925a28e5f67a,0x800,0x100000)/\EFI\arch\grubx64.efi  
Boot0003* Windows Boot Manager  HD(3,GPT,8c14e3de-9af4-481a-8b4c-3501d59e5ee7,0x746d4800,0x32000)/\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI57494e444f575300010  
0000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300  
630031002d006600330032006200330034003400640034003700390035007d0000006c000100000010000000040000007fff0400  
Boot0004* UEFI:  USB    PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/USB(2,0)/CDROM(1,0x1f9000,0x5a040)0000424f  
Boot0005* UEFI:  USB, Partition 2       PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/USB(2,0)/HD(2,MBR,0x6c692b18,0x1f9000,0x5a000)0000424f

При загрузке в Windows это вывод bcdedit /enum firmware:

Firmware Boot Manager
---------------------
identifier              {fwbootmgr}
displayorder            {6430a111-f9e3-11ef-9def-806e6f6e6963}
                        {bootmgr}
                        {6430a10f-f9e3-11ef-9def-806e6f6e6963}
                        {6430a110-f9e3-11ef-9def-806e6f6e6963}
timeout                 1

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume3
path                    \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {f4a86340-d3e4-11ee-b6d4-b2830b3bf22d}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Firmware Application (101fffff)
-------------------------------
identifier              {6430a10f-f9e3-11ef-9def-806e6f6e6963}
description             UEFI:  USB

Firmware Application (101fffff)
-------------------------------
identifier              {6430a110-f9e3-11ef-9def-806e6f6e6963}
description             UEFI:  USB, Partition 2

Firmware Application (101fffff)
-------------------------------
identifier              {6430a111-f9e3-11ef-9def-806e6f6e6963}
device                  partition=\Device\HarddiskVolume6
path                    \EFI\arch\grubx64.efi
description             arch

Загрузочная запись для Arch все еще там. Но после перезагрузки:

Firmware Boot Manager
---------------------
identifier              {fwbootmgr}
displayorder            {bootmgr}
                        {6430a10f-f9e3-11ef-9def-806e6f6e6963}
                        {6430a110-f9e3-11ef-9def-806e6f6e6963}
timeout                 1

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume3
path                    \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {f4a86340-d3e4-11ee-b6d4-b2830b3bf22d}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Firmware Application (101fffff)
-------------------------------
identifier              {6430a10f-f9e3-11ef-9def-806e6f6e6963}
description             UEFI:  USB

Firmware Application (101fffff)
-------------------------------
identifier              {6430a110-f9e3-11ef-9def-806e6f6e6963}
description             UEFI:  USB, Partition 2

Теперь Arch исчез.

Я отключил Turn on fast startup в параметрах питания.

Я немного растерян, что делать. Как мне остановить Windows от удаления загрузочной записи для Arch?

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

Ваше описание проблемы указывает на то, что Windows 11, а точнее его обновление до версии 24H2, стирает загрузочную запись Arch Linux из UEFI Boot Manager. Несмотря на то, что система хранения загрузочной информации Arch Linux остаётся нетронутой, запись исчезает, и вам приходится восстанавливать её при помощи efibootmgr при загрузке с USB-накопителя. Рассмотрим возможные причины и способы решения этой проблемы.

Теория

Современные системы используют Unified Extensible Firmware Interface (UEFI), чтобы управлять загрузкой операционных систем. Загрузочная информация хранится в области, называемой Boot Manager. Windows, особенно более современные версии, такие как Windows 11, могут вмешиваться в этот Boot Manager для управления загрузочным порядком. Иногда это приводит к исчезновению или перезаписи существующих записей других систем, таких как Linux. Это может быть связано с политиками безопасности Windows, которые изменяются с новыми обновлениями, политиками управления питанием, такими как Быстрый старт (Fast Startup), или стандартными установками загрузчика Windows.

Пример

Ваш случай показывает, что несмотря на отдельные физические диски и разделы EFI, Windows периодически обновляет или перезаписывает UEFI-совместимые загрузочные записи, удаляя Arch Linux из списка загрузок. Сначала запись существует, но после определенных операций в Windows запись отсутствует. Перезагрузка и восстановление с помощью efibootmgr, как вы и делаете, временно восстанавливают работоспособность, но это не является желаемым долгосрочным решением.

Применение

Для решения вашей проблемы рассмотрим несколько возможных шагов и рекомендаций:

  1. Проверка и изменение конфигураций UEFI:

    • Убедитесь, что вы используете последнюю версию микропрограммы для вашей материнской платы. Иногда обновления UEFI могут исправлять несовместимости или улучшать поддержку многоосевых конфигураций.
    • Войдите в BIOS/UEFI и убедитесь, что Secure Boot отключен, если это допустимо встроенной политикой безопасности. Secure Boot препятствует изменениям в загрузочной конфигурации, если ключи безопасности не удовлетворяют требованиям одной из систем.
  2. Конфигурация загрузчика:

    • Рассмотрите возможность использования более устойчивой конфигурации загрузчика, например, rEFInd, который может быть более устойчивым к изменениям, вносимым Windows.
    • Проверьте, правильно ли настроены пути к файлам .efi в загрузочных конфигурациях. Возможно, Windows изменяет конфигурацию из-за ошибки в путях или назвать ELF-файлов.
  3. Настрока системы Windows:

    • Обратите внимание на дополнительные параметры управления энергопотреблением. Проверка и отключение всех функций быстрого запуска может быть недостаточно, – убедитесь, что все настройки энергопотребления и управления дисками не влияют на вторичный диск, где находится Linux.
    • Используйте административные инструменты Windows, такие как bcdedit, для контроля загрузочной конфигурации с Windows. Убедитесь, что конфигурация правильно отображает наличие других ОС.
  4. Автоматизация восстановления:

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

Заключение: часть проблем связана с тем, как некоторые системы пытаются обслуживать начально-загрузочную конфигурацию только для себя. Ваша задача – управлять этим с обоих концов: настройкой Windows так, чтобы минимизировать вмешательство, и защитой системы Linux с помощью устойчивых инструментов и практик.

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

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