1

Мой Toshiba Tecra R950 поддерживает UEFI, в основном. Он имеет хорошую старомодную текстовую синюю систему настроек прошивки, которую он называет "BIOS", а не причудливую графическую настройку, которую имеют большинство правильных систем UEFI. Меню порядка загрузки (либо в настройках, либо когда я вызываю его во время загрузки нажатием клавиши F12) не позволяет выбирать операционные системы, только устройства. Похоже, что система не может загрузиться, если раздел efi не содержит аварийный загрузчик по адресу /efi/boot/bootx64.efi - хотя, согласно тому, что я прочитал, это должно быть необходимо только для съемных томов.

Средство Linux efibootmgr можно использовать для доступа или изменения фактического приоритета загрузки efi (в зависимости от того, какую операционную систему загружать в первую очередь), но микропрограмма игнорирует все, что вы задали здесь при загрузке, и вместо этого полагается на аппаратный приоритет, установленный в BIOS/. Установка прошивки и использует запасной загрузчик, найденный на первом доступном томе. Единственное исключение - при выходе из S4 (спящий режим), он внезапно просматривает этот список и загружает туда верхний загрузчик, а не резервный загрузчик.

Это просто случай плохой реализации UEFI? Возможно ли иметь гибридный BIOS/UEFI с ограниченной поддержкой функций UEFI? Поскольку моя система, кажется, знает, как справиться с приоритетом загрузки при возобновлении с S4, есть ли способ заставить ее работать в целом?

1 ответ1

1

Краткий ответ: на основании вашего описания, я думаю, что ваша прошивка неисправна.

Длинный ответ: во-первых, спецификация EFI (или UEFI, который является просто EFI 2.x) ничего не говорит о пользовательских интерфейсах. Таким образом, вы можете создать пользовательский интерфейс EFI в текстовом режиме, который на 100% соответствует спецификации EFI/UEFI. У BIOS нет официальной спецификации, но были попытки использовать утилиты графической настройки для BIOS. Таким образом, вы не должны использовать утилиту графической настройки или ее отсутствие в качестве индикатора того, является ли что-то EFI или BIOS или насколько "завершена" реализация. Конфета для глаз совершенно не имеет отношения к делу и к вашему вопросу.

В качестве примечания, многие производители называют свои EFI как BIOS. ИМХО, это плохая практика, потому что это создает путаницу в умах пользователей по поводу различия между традиционным 16-битным BIOS и современными 32- или 64-битными EFI, которые сильно различаются по наиболее важным деталям.

Тем не менее, в спецификации EFI довольно ясно, что переменные порядка загрузки (которые устанавливаются через efibootmgr в Linux) должны соблюдаться. Если ваша прошивка игнорирует эти переменные, значит, это нарушение спецификации. К сожалению, такие нарушения до сих пор печально распространены, хотя они были более частыми несколько лет назад. Быстрый Google предполагает, что ваша модель, возможно, была представлена в 2012 году, поэтому не удивительно, что у нее старая и испорченная EFI. Возможно, вы захотите проверить веб-сайт Toshiba, чтобы узнать, доступно ли обновление прошивки. Это может или не может исправить что-либо, но это определенно стоит проверить.

Вы также можете попробовать использовать инструмент, отличный от efibootmgr , например EasyUEFI в Windows или bcfg в оболочке EFI. Теоретически, любой из этих инструментов должен делать свою работу. На практике я заметил, что efibootmgr иногда дает сбой, когда работают другие инструменты.

Что касается «гибридного BIOS/UEFI», такие вещи существуют. Я знаю две широкие категории:

  • EFI поверх BIOS - спецификация EFI не охватывает некоторые функции инициализации оборудования самого низкого уровня. Чтобы справиться с этой задачей, некоторые ранние EFI для x86/x86-64, такие как Hybrid EFI от Gigabyte, использовали традиционный BIOS, что ставило EFI "выше" этого. Мой единственный опыт с этим (описанный в ссылке) был болезненным, но, возможно, это было больше связано с реализацией, чем с общим подходом. AFAIK, этот подход был заброшен в пользу другого кода инициализации оборудования, который лучше взаимодействует с EFI над ним.
  • EFI заблокирован в CSM . Модуль поддержки совместимости (CSM) - это дополнительная функция EFI, которая позволяет EFI загружать старые загрузчики в режиме BIOS. Я слышал заявления о том, что некоторые "BIOS" в последние годы компьютеров на базе BIOS фактически использовали EFI с постоянно включенными CSM. Такие компьютеры не могли загружаться обычным способом EFI, и они выглядели бы как обычные компьютеры на базе BIOS. Я не знаю, насколько распространенной была эта практика, и на самом деле я никогда не проверял, верно ли это утверждение - это может быть городская легенда. Такая установка, безусловно, теоретически возможна независимо от того, была ли когда-либо написана такая прошивка.

Ни один из этих подходов не объяснил бы вашу проблему, которая, по-видимому, лучше описана как сильно нарушенный EFI.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .