Вопрос или проблема
Когда я пытался загрузить 2,5-дюймовый жесткий диск с несколькими операционными системами, загруженными на нем через адаптер SATA-USB, загрузочная запись существующей установки Arch Linux на моей системе (MSI Modern 14 C7M) была стерта.
Внешний HDD:
- 100Mi общий EFI-раздел между Arch Linux и загрузчиком Windows
- 250Gi экземпляр Windows 11, экземпляр 1
- 500Gi экземпляр Windows 11, экземпляр 2
- 181Gi экземпляр Arch Linux
Внутренний SSD:
- 512Mi EFI системный раздел
- 472Gi экземпляр Arch Linux
Похоже, что вместо того, чтобы распознавать внешний HDD как USB-накопитель, как это делает другой SATA-адаптер, этот сообщает системе, что это жесткий диск.
После загрузки в Windows и перезагрузки также казалось, что загрузочная запись для экземпляра Arch Linux на внешнем HDD была стерта, и система загружалась только в загрузчик Windows.
Как мне остановить Windows от перезаписи загрузочных записей моего внутреннего SSD?
Это довольно сложно, так как вам нужно и то, и другое:
- Сделать grub EFI исполняемым на ESP (внешнего диска) “портативным”, то есть “автообнаруживаемым”
- Избегать использования записи “Загрузчик Windows” (в которой, как минимум с некоторыми UEFI прошивками, может быть только одна такая запись, что приведет к её перезаписи другой экземпляром/набором WBM, даже если это на ESP другого диска) и позволить UEFI прошивке автоматически обнаружить исполняемую копию Windows Boot Manager в
EFI/Boot/bootx64.efi
По сути, единственный способ достичь #2 – это “постоянно” удалять EFI/Microsoft/Boot/bootmgfw.efi
, так как его копия будет находиться в EFI/Boot/bootx64.efi
(Постоянно здесь по сути означает каждый раз после применения Кумулятивного обновления, так что это как бы ежемесячно.) Также, вероятно, вам нужно делать это как для внутреннего, так и для внешнего диска.
Дело в том, чтобы достичь #1, вам нужно, чтобы grub EFI исполняемый файл находился в EFI/Boot/bootx64.efi
(либо переместите файл из EFI/arch/grubx64.efi
, либо выполните grub-install
с --removable
.)
И единственное решение для достижения обоих целей – это, вероятно, иметь отдельный ESP для grub и Windows Boot Manager соответственно. (И если ваша UEFI прошивка смотрит только на первый ESP / FAT-форматированный раздел каждого диска для EFI исполняемых файлов в EFI/Boot/bootx64.efi
, используйте grub для цепной загрузки с ESP загрузчика Windows.)
П.С. Если у вас также есть grub на внутреннем диске (в посвященном ESP) и вы используете его для цепной загрузки WBM, вам, возможно, не придется удалять копии EFI/Microsoft/Boot/bootmgfw.efi
, в зависимости от того, переместится ли запись WBM на верхнюю позицию при каждом обновлении (если это так, удаление будет держать её “недействительной”).
Ответ или решение
Для решения проблемы с перезаписью записей UEFI Windows на внешнем жестком диске, необходимо подойти к вопросу систематически. Данная задача заключается в предотвращении конфликта между загрузочными записями разных операционных систем, что важно для стабильной работы мультизагрузочных систем. Рассмотрим основные шаги, чтобы достичь этой цели.
1. Обособление загрузочных разделов
Рекомендуется создать отдельный раздел EFI для GRUB и Windows Boot Manager на внешнем жестком диске. Это позволит обеспечить независимое функционирование загрузчиков, что минимизирует риск перезаписи загрузочных записей UEFI.
Действия:
- Создайте новый раздел EFI на внешнем диске, если это еще не сделано. Убедитесь, что он отформатирован в FAT32 и доступен для чтения на всех установленных операционных системах.
- При установке GRUB укажите путь установки в этот новый раздел.
2. Настройка GRUB для портабельности
Убедитесь, что исполняемый файл GRUB находится в доступном для UEFI местоположении. Это может быть достигнуто путем перемещения файла grubx64.efi
в директорию EFI/Boot/
.
Действия:
- Выполните команду
grub-install --removable
, которая установит GRUB в стандартное место, распознаваемое UEFI при загрузке. - Проверьте, что файл
bootx64.efi
ссылается на GRUB, и что он доступен на обоих ESP.
3. Избегайте использования Windows Boot Manager
Для обеспечения максимальной устойчивости системы, постарайтесь избегать использования записи Windows Boot Manager в UEFI. Вместо этого используйте GRUB для загрузки Windows.
Действия:
- При каждой установке обновлений Windows удаляйте
EFI/Microsoft/Boot/bootmgfw.efi
, чтобы предотвратить его перезапись. Это необходимо делать после каждого крупного обновления. - Можно использовать скрипт, который будет автоматически выполнять эту задачу при загрузке системы, облегчая управление.
4. Конфигурация загрузочного порядка
Проверьте настройки UEFI/BIOS вашего устройства и убедитесь, что ваш GRUB установился выше Windows Boot Manager в списке приоритетов загрузки.
Действия:
- Перейдите в настройки UEFI/BIOS и настройте порядок загрузки так, чтобы GRUB был на первом месте.
- После настройки, перезагрузите систему, чтобы изменения вступили в силу.
Заключение
Следуя предложенным шагам, вы сможете обеспечить стабильное функционирование мультизагрузочной системы без риска перезаписи загрузочных записей UEFI. Это уменьшит количество проблем, связанных с запуском вашей системы, и обеспечит удобную и безопасную работу с различными операционными системами на внешнем жестком диске. Важно уделять этому процессу должное внимание, особенно после обновлений Windows, чтобы поддерживать работоспособность всех установленных ОС.