Я использую Fedora 26, но чтобы приостановить работу и возобновить работу, мне нужно использовать ядро Rawhide (4.13.rc-1 или новее) (см. Проблему с ядром).

Я успешно установил ядро Rawhide (4.13.rc-4), используя эти инструкции. К сожалению, как отмечают на этой странице, эти ядра не будут работать без сбоев SecureBoot.

К сожалению, из-за ошибки BIOS я не могу отключить SecureBoot (см. Форум Dell).

Когда я пытаюсь загрузиться, загрузчик говорит что-то вроде:

... имеет неверную подпись. Сначала вам нужно будет загрузить ядро.

Как использовать ядро Rawhide / pre-release с включенной SecureBoot?

2 ответа2

2

На этот вопрос ответили на сайте вопросов и ответов Fedora:

https://ask.fedoraproject.org/en/question/109564/how-to-get-rawhide-kernel-to-work-with-secureboot-in-f26/?answer=109840#post-id-109840

В принципе:

  • От имени пользователя root запустите mokutil --disable-validation и установите пароль.
  • Перезагрузитесь, и когда загрузчик grub спросит, хотите ли вы запустить утилиту MOK. Мне пришлось нажать клавишу в течение 10 секунд, чтобы убедиться, что я вошел в утилиту.
  • Попав в утилиту, я выбрал "изменить конфигурацию MOK", ввел пароль и решил отключить SecureBoot. Обратите внимание, что это не отключило BIOS SecureBoot - оно просто позволяет GRUB загружать неподписанное ядро. (GRUB все еще подписан, я думаю).
1

Я понимаю, что вы нашли решение, которое включает отключение безопасной загрузки через Shim/mokutil ; Однако есть и другой способ: вы можете подписать ядро самостоятельно.

В общих чертах, процедура:

  1. Создайте свой собственный ключ безопасной загрузки. Вы бы сделали это с помощью программы openssl . Вам необходимо скопировать файл DER открытого ключа в системный раздел EFI (ESP), который обычно монтируется в /boot/efi .
  2. Подпишите ваш файл ядра. Я использую инструмент под названием sbsign чтобы сделать это. IIRC, Fedora, предпочитает другую программу, которую, как я проверял в последний раз, использовать было сложнее. Вам нужно будет либо переименовать текущее ядро и поставить его подписанную версию на место, либо создать новую запись GRUB для вашего нового ядра.
  3. Перезагрузитесь в EFI и запустите MokManager. Некоторые загрузчики, такие как мой собственный rEFInd, предлагают способ входа в MokManager вручную. Если у вас нет, вам может понадобиться прыгнуть через несколько обручей, чтобы заставить его работать. Попав в MokManager, вам нужно найти файл DER, который вы скопировали в ESP, и добавить его в список MOK.
  4. В этот момент, когда вы перезагрузитесь, вы сможете запустить только что подписанное ядро даже при активной безопасной загрузке.

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

Также обратите внимание, что если вы установите rEFInd, он может сгенерировать набор ключей безопасной загрузки и сохранить их как /etc/refind.d/keys/refind_local.* (Сценарий refind-install делает это, если необходимые утилиты доступны, но не делает, если они недоступны.) Таким образом, если вы когда-либо устанавливали rEFInd, шаг № 1 уже может быть выполнен. Затем вы можете использовать локальный ключ rEFInd для подписи вашего ядра.

Есть вариант этой процедуры тоже. Последние версии Shim и MokManager позволяют зарегистрировать хэш двоичного файла как способ его аутентификации. Это работает даже с неподписанными двоичными файлами. Таким образом, вы можете зарегистрировать хеш вашего ядра, чтобы включить его загрузку. Проблема в том, что вам нужно зарегистрировать хеш каждого неподписанного ядра, которое вы хотите запустить. Это может не иметь большого значения, если у вас есть только одно работающее ядро, и вы не планируете его обновлять; но если вы будете обновлять ядро каждые пару недель, вы будете вечно регистрировать новые хэши, которые будут хлопотом и будут занимать все больше ограниченного пространства NVRAM. Таким образом, этот подход немного проще в некоторых случаях, но гораздо хуже в других.

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