vmlinuz-4.18.12-041812-generic имеет недопустимую подпись

Я обновил свое ядро сегодня с ukuu, и с тех пор я не могу загрузиться, потому что я получаю это ошибки:

error: /boot/vmlinuz-4.18.12-041812-generic has invalid signature
error: you need to load the kernel first

У меня есть двойная загрузка с окнами 10 и человечность 18.10 (Обновленный сегодня)

Обновление: Мне удалось загрузиться к более старому ядру, которое я выбрал из "Расширенных настроек для Ubuntu" в личинке

Но я должен обновить свое ядро и если я делаю это, я все еще получаю ту же проблему...

24
задан 6 October 2018 в 09:23

4 ответа

Saya menyelesaikan masalah saya berikutan tutorial ini untuk menandatangani / boot / vmlinuz untuk boot selamat, Perhatikan bahagian terakhir tutorial

0
ответ дан 23 November 2019 в 04:10

Вместо того, чтобы подписывать рассматриваемое ядро, я просто отключил безопасную загрузку в меню BIOS / UEFI своего ноутбука.

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

11
ответ дан 23 November 2019 в 04:10

https://github.com/jakeday/linux-surface/blob/master/SIGNING.md содержит более конкретные инструкции по подписанию ядра (адаптированные из того же учебного курса, ссылка на который приведена в принят ответ). Инструкции полностью воспроизводятся следующим образом:

Подписание пользовательского ядра для безопасной загрузки

Инструкции предназначены для ubuntu, но должны работать аналогично для других дистрибутивов, если они используют прокладку оболочки и grub в качестве загрузчика. Если ваш дистрибутив не использует оболочку оболочки (например, Linux Foundation Preloader), там должны быть аналогичные шаги для завершения подписи (например, HashTool вместо MokUtil для LF Preloader) или вы можете использовать прокладку. Пакет ubuntu для прокладки называется подписанный оболочкой , но пожалуйста, узнайте, как правильно установить его, чтобы не испортить загрузчик.

Начиная с последнего обновления GRUB2 (2.02 + dfsg1-5ubuntu1) в Ubuntu, GRUB2 не загружает неподписанные ядер больше, пока включена безопасная загрузка. Пользователи Ubuntu 18.04 будут уведомлены во время при обновлении пакета grub-efi это ядро ​​не подписано, и обновление будет прервано.

Таким образом, у вас есть три варианта решения этой проблемы:

  1. Вы подписываете ядро ​​самостоятельно.
  2. Вы используете подписанный, общее ядро ​​вашего дистрибутива.
  3. Вы отключаете безопасную загрузку.

Поскольку второй и третий варианты на самом деле нецелесообразны, это шаги, чтобы подписать ядро ​​самостоятельно.

Инструкции адаптированы из блога Ubuntu . Перед тем, как продолжить, сделайте резервную копию каталога / boot / EFI, чтобы вы могли все восстановить. следить эти шаги на ваш страх и риск.

  1. Создайте конфигурацию для создания ключа подписи, сохраните как mokconfig.cnf:
# This definition stops the following lines failing if HOME isn't
# defined.
HOME                    = .
RANDFILE                = $ENV::HOME/.rnd 
[ req ]
distinguished_name      = req_distinguished_name
x509_extensions         = v3
string_mask             = utf8only
prompt                  = no

[ req_distinguished_name ]
countryName             = <YOURcountrycode>
stateOrProvinceName     = <YOURstate>
localityName            = <YOURcity>
0.organizationName      = <YOURorganization>
commonName              = Secure Boot Signing Key
emailAddress            = <YOURemail>

[ v3 ]
subjectKeyIdentifier    = hash
authorityKeyIdentifier  = keyid:always,issuer
basicConstraints        = critical,CA:FALSE
extendedKeyUsage        = codeSigning,1.3.6.1.4.1.311.10.3.6
nsComment               = "OpenSSL Generated Certificate"

Настройте все части с вашими данными.

  1. Создайте открытый и закрытый ключи для подписи ядра:
openssl req -config ./mokconfig.cnf \
        -new -x509 -newkey rsa:2048 \
        -nodes -days 36500 -outform DER \
        -keyout "MOK.priv" \
        -out "MOK.der"
  1. Преобразование ключа также в формат PEM (для mokutil требуется DER, для sbsign требуется PEM):
openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem
  1. Зарегистрируйте ключ для установки оболочки прокладки:
sudo mokutil --import MOK.der

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

  1. Перезагрузите систему. Вы увидите синий экран инструмента под названием MOKManager. Выберите «Enroll MOK», а затем «View key». Убедитесь, что это ваш ключ, который вы создали на шаге 2. После этого продолжите процесс, и вы должны ввести пароль, который вы ввели в Шаг 4. Продолжите загрузку системы.

  2. Убедитесь, что ваш ключ зарегистрирован с помощью:

sudo mokutil --list-enrolled
  1. Подпишите установленное ядро ​​(оно должно быть в / boot / vmlinuz- [KERNEL-VERSION] -surface-linux-surface):
sudo sbsign --key MOK.priv --cert MOK.pem /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface --output /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface.signed
  1. Скопируйте initram неподписанного ядра, так что у нас также есть initram для подписанного ядра.
sudo cp /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{,.signed}
  1. Обновите ваш grub-config
sudo update-grub
  1. Перезагрузите систему и выберите подписанное ядро. Если загрузка прошла успешно, вы можете удалить неподписанное ядро:
sudo mv /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo mv /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo update-grub

Теперь ваша система должна работать под подписанным ядром, и обновление GRUB2 снова работает. Если хочешь Чтобы обновить собственное ядро, вы можете легко подписать новую версию, выполнив указанные выше действия. снова, начиная с седьмого шага. Таким образом, РЕЗЕРВНОЕ КОПИРОВАНИЕ МОК-ключей (МОК.дер, МОК.пем, МОК.прив).

13
ответ дан 23 November 2019 в 04:10

У меня возникла эта проблема после сегодняшнего обновления. Замена системного загрузчика на shimx64.efi, похоже, исправила его.

0
ответ дан 5 January 2021 в 22:05

Другие вопросы по тегам:

Похожие вопросы: