Linux на UEFI - как перезагрузиться на экран настройки UEFI, как Windows 8?

33

makeuseof.com объясняет, что в сертифицированном Windows 8 оборудовании появился новый способ входа в экран настройки UEFI (аналог BIOS). С Как получить доступ к BIOS на A Windows 8 Компьютер :

Мы больше не нажимаем определенную клавишу во время процесса загрузки, чтобы открыть BIOS - вместо этого опция для доступа к BIOS находится в меню параметров загрузки Windows 8 ... Если вы находитесь здесь, чтобы получить доступ к UEFI BIOS вашего компьютера, нажмите Устранение неполадок

Главный разработчик Secure Boot для Linux говорит, что альтернативные ОС не могут предполагать, что старый способ продолжит работать . Так есть ли в Linux новый способ входа в настройку UEFI?

У меня есть материнская плата ASUS. Предполагается, что обновленная версия прошивки содержит опцию быстрой загрузки . Обратная сторона в том, что эта опция может усложнить «раскрытие BIOS», чем она есть.

Я не против возиться. Просто, если известно, что это плохая идея, я не хочу ни с чем сталкиваться с риском обновления прошивки (и, возможно, придется отключить дело, сбросить настройки и заново настроить их все).


В качестве альтернативы, как это обрабатывается для пользователей Windows 7? Если они оптимистично выбирают опцию быстрой загрузки, как они снова получают доступ к настройке «BIOS», когда им это нужно?

sourcejedi
источник
Черт возьми. Теперь я хотел бы, чтобы я не выбрал Asus
вместо
Используйте любые настройки для Windows 7, которые будут настройками по умолчанию, и все будет хорошо :). Должен быть стандартный способ сделать это в UEFI, я просто нигде не нашел его. Даже оригинальная прошивка без опции быстрой загрузки вообще довольно быстрая, поэтому я не жалею об этом. Мы смотрим на особенность UEFI; Я бы не стал полагаться на Gigabyte, чтобы получить EFI правильно. Я работаю над проблемами, связанными с 1) портами USB3 и 2) клавиатурой USB, которые в целом немного разочаровывают. OTOH индикатор тестирования памяти был полезен для меня, когда моя новая RAM потерпела неудачу через неделю.
sourcejedi
1
Одна из проблем с UEFI заключается в том, что, несмотря на документацию на 2000 страниц, НЕТ стандартизации проблем пользовательского интерфейса. Разработчики прошивки могут предоставить пользователям доступ к своим установочным утилитам любым способом, который они сочтут нужным.
Род Смит
В статье говорится, что Windows 8 наконец-то предоставляет пользователям доступ к обычной утилите установки стандартным способом. Таким образом, в сертификации Windows должен быть указан метод для поддержки этого. Надеюсь, это часть UEFI, а не недокументированное расширение MS. Обратите внимание, что это не вопрос о «безопасной загрузке». Вопрос предполагает, что мне уже удалось установить и загрузить Linux.
sourcejedi
Я лично использую Windows 8 на моей материнской плате ASRock Z77 Pro3, только недавно внедрив эту опцию «Сверхбыстрая загрузка» в настройке UEFI. ASRock предоставляет мне утилиту, которая находится на панели задач, и я могу нажать ее, чтобы получить доступ к настройке UEFI. Очистка CMOS сбросит параметр быстрой загрузки, поэтому вы всегда можете попробовать. Мой vBIOS не поддерживает этот параметр, потому что он не поддерживает GOP, поэтому у меня не было возможности опробовать его. Мне не предоставляют подобное программное обеспечение для Linux, только для Windows 8.
Стин Шютт,

Ответы:

39

В современных дистрибутивах Linux, использующих systemd, вы можете перейти прямо в меню настройки прошивки, используя

systemctl reboot --firmware-setup

Документация: https://www.freedesktop.org/software/systemd/man/systemctl.html#--firmware-setup

Lekensteyn
источник
1
Ха, этот документ немного лаконичен. Выглядит хорошо - это не характерно для данного менеджера загрузки. Жаль, что нет отдельного инструмента, но я ничего не имею против systemd. github.com/systemd/systemd/blob/...
sourcejedi
1
Смотрите также этот Unix.SE ответ. Будьте очень осторожны с использованием efivar, мне как-то удалось удалить 8be4df61-93ca-11d2-aa0d-00e098032b8c-OsIndicationsпеременную, возможно, передав пустые данные в efivarпрограмму. Теперь мне нужно найти способ воссоздать этот файл, без него systemctl reboot --firmware-setupпрограмма больше не работает.
Лекенштейн
Жаль слышать ваши неприятности. У меня сложилось впечатление, что переменная в 0 будет в порядке (из этого комментария github.com/systemd/systemd/blob/… ), хотя тот же код предполагает, что systemd не волнует, будет ли переменная удалена.
sourcejedi
1
Кажется, что это создает переменную заново, но после перезагрузки она как-то теряется: printf '\7\0\0\0''\0\0\0\0\0\0\0\0' > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c(на основе firmware.intel.com/blog/accessing-uefi-variables-linux и предыдущего содержимого, которое я сбросил). Обратите внимание, что rm ...необходимо, chattr -i ...прежде чем вы можете удалить его (меры безопасности о rm -rf /).
Лекенштейн
1
@sourcejedi Arch Linux поставляется с systemd 230. Мне наконец-то удалось вернуть свою переменную. По какой-то причине создание переменной через efivars привело к тому, OsIndications-89efde67-ffcd-12de-ab01-01efff012389что у него другой GUID. После загрузки в оболочку UEFI я вызвал команду setvar OsIndications -nv -bs -rt =0000000000000000для установки переменной OsIndications в энергонезависимом хранилище для bootservice и доступа во время выполнения к шестнадцатеричной последовательности, представляющей 64-битное число (0).
Лекенштейн
4

Я не уверен, как именно Windows 8 делает это, но я могу предположить, что он использует переменные UEFI, используемые для параметров загрузки.

Вы можете использовать efibootmgr, чтобы определить значения различных загрузочных переменных. В моей системе Boot0000 - это программа установки, поэтому использование efibootmgr -n 0должно привести к загрузке системы при следующей загрузке.

Тим Хоппен
источник
Спасибо. Я сейчас попробовал загрузку UEFI на моем текущем BIOS. Кажется, Boot0000 занят одной из нормальных загрузочных записей. (Я также понял, что неправильно прочитал примечания к выпуску, и нет никаких оснований ожидать, что новая версия будет быстрее. Ну и хорошо :).
sourcejedi
@sourcejedi Микропрограмма, ее вариант быстрой загрузки может на самом деле загружаться быстрее на 1 или 2 секунды, сверхбыстрая загрузка может сбежать
Pro Backup
3

Я попробовал загрузку EFI с Ubuntu 12.04 и нашел ответ на свой вопрос.

(Я не обновлял свою прошивку. Первоначально я неправильно прочитал примечания к выпуску - скорее всего, это будет не так быстро).

Вход в настройки прошивки из загрузочного меню grub-efi

efibootmgrКажется, не поддерживает перезагрузку для установки прошивки для меня. Но Граб-Эфи делает. В меню загрузки GRUB можно создать запись для настройки прошивки.

Вы можете войти в меню загрузки GRUB, удерживая нажатой клавишу Shift "в начале процесса загрузки". Я нажимаю на нее сразу же после включения подсветки NumLock на клавиатуре, и это работает для меня.

Если вам интересно, я тоже посмотрел на команду: это "fwsetup". Т.е. вы можете войти в меню GRUB, следовать инструкциям на экране, чтобы переключиться на командную строку, затем набрать "fwsetup" и нажать клавишу возврата.

Если вы делаете установку EFI с нуля, я считаю, что пункт меню будет создан автоматически. Я не установил как EFI, что означало, что я должен был пнуть его (см. Ниже, шаг 4).

Переход от загрузки BIOS-GPT к загрузке UEFI-GPT без записи загрузочного компакт-диска EFI?

РЕДАКТИРОВАТЬ: этот раздел может работать на некоторых системах. Однако теперь я считаю, что это зависит от дополнительного поведения, которое не является частью стандарта UEFI. Когда-нибудь я выясню, что здесь происходит.

Я конвертировал существующую установку в EFI без загрузочного CD с поддержкой EFI. Некоторые люди думают, что это невозможно. По общему признанию, есть несколько смущающих предупреждающих сообщений. Я посмотрел на то, что происходит. Если вы в настоящее время можете войти в настройки прошивки, то это не так уж и плохо.

Сложность в том, что вы, вероятно, все еще используете таблицу разделов MBR, и вам почти наверняка потребуется преобразовать ее в GPT. Я не собираюсь рассказывать о переходе с MBR на GPT. Разбиение всегда немного опасно. gdiskможно конвертировать, но есть довольно много неудобных битов. Я не перечислил их всех здесь. Но, например, вам, вероятно, нужно сжать последний раздел, чтобы освободить место для GPT на конце диска. Вы не можете сделать это, если раздел смонтирован, поэтому вы захотите использовать загрузочный CD. (Я также организовал преобразование, убедившись, что могу загружаться с BIOS-GPT до того, как попробую UEFI-GPT, что потребовало создания еще одного типа загрузочного раздела.).

Предполагая, что вы установили GPT:

  1. Установите grub-efi. Это удалило grub-pc и остановило его работу. (grub-efi фактически все еще работал после того, как я удалил это!). Fedora кажется немного другой; Я только попробовал это на Ubuntu. Во время установки вы увидите ошибки, связанные с невозможностью доступа к переменным EFI, потому что вы не загрузились с помощью EFI.
  2. Неисправность.
  3. Включить. Убедитесь, что вы загружаетесь через EFI! Это системно-зависимая и тревожная часть. Моя система по умолчанию работала с загрузкой MBR, поэтому я увидел страшную ошибку от GRUB - но это было от старого grub-pc. В моей системе было легко войти в экран настройки прошивки на этом этапе (см. Ниже) и изменить приоритет загрузки на «ubuntu» (который был записан для загрузки моей ОС через EFI).
  4. Теперь вы можете повторить установку grub ( grub-installили grub2-installв Fedora), и она не выдаст никаких ошибок. И теперь при запуске update-grub(или grub2-mkconfig -o /boot/grub/grub.cfgна Fedora) будет создан пункт меню для входа в настройки прошивки.

Вход в меню настройки / загрузки прошивки в моей системе ASUS

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: это не самая последняя прошивка / плата. Ваша система ASUS может работать не так, как моя.

Моя текущая прошивка ASUS замечает, когда «загрузочная конфигурация» изменилась - например, когда я установил grub-efi. Там есть текст, говорящий, что он изменился, если вы посмотрите на начальный экран «EZ setup». И, когда он обнаруживает такое изменение, он облегчает доступ к экрану настройки. Что он делает, это показывает заставку с «нажмите DEL, чтобы войти в настройку» в течение нескольких секунд. (Если вы включили опцию «быстрой загрузки», она обычно пропускает заставку).

Я думаю, что также возможно вызвать заставку, выключив систему и отключив ее на минуту или около того, перед перезагрузкой.

На моей текущей прошивке я могу войти в настройку прошивки, мигая клавишей DEL во время загрузки, даже без заставки. Однако это зависит от включения поддержки клавиатуры в прошивке.

Возможно переключить прошивку, чтобы не проверять клавиатуры во время загрузки, что должно ускорить процесс. Я думаю, что это следующий эксперимент, который я попробую, теперь я более уверен в этом EFI! (Вполне вероятно, что это может убить поддержку клавиатуры в загрузочном меню GRUB. Но я все еще должен иметь возможность использовать grub-set-default, чтобы GRUB загрузил запись fwsetup и восстановил таким образом).

sourcejedi
источник
0

Основываясь на ответе @ Lekensteyn, я создал ярлык пользовательского интерфейса (в меню «Администрирование», если в вашей среде такой еще есть). Полезно, если ваша клавиатура никогда не работает до окончания POST.

/usr/share/applications/uefi-reboot.desktop

[Desktop Entry]
Name=UEFI Firmware Setup (Reboot)
Comment=Access the motherboard configuration utility
Exec=systemctl reboot --firmware-setup
Icon=system-restart
Terminal=false
Type=Application
Categories=System;Settings;
Криспи
источник