vmlinuz-4.18.12-041812-generic має недійсний підпис


15

Сьогодні я оновив своє ядро ​​на ukuu, і з тих пір не можу завантажитися, тому що я отримую ці помилки:

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

У мене є подвійне завантаження з Windows 10 та ubuntu 18.10 (оновлено сьогодні)

Оновлення: мені вдалося завантажитися на більш старе ядро, яке я вибрав із "Додаткові параметри для Ubuntu" в grub

Але мені потрібно оновити своє ядро, і якщо це зробити, я все-таки отримаю ту ж проблему ...


З цією ж проблемою я відчуваю зараз після оновлення прошивки мого Lenovo T480, і я не розумію, чому старі ядра все ще працюють.
користувач205301

Відповіді:


5

Замість того, щоб підписувати це ядро, я просто вимкнув безпечне завантаження в меню BIOS / UEFI свого ноутбука.

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


Дякую! Я щойно оновив свій BIOS і забув відключити це!
Лукас Бустаманте

Це працює для мене!
Джонатан

5

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

Підписання спеціального ядра для безпечного завантаження

Інструкції призначені для ubuntu, але повинні працювати аналогічно для інших дистрибутивів, якщо вони використовують shim і grub як завантажувач. Якщо ваш дистрибутив не використовує shim (наприклад, Linux Foundation Preloader), слід виконати подібні кроки для завершення підписання (наприклад, HashTool замість MokUtil для LF Preloader) або ви можете встановити shim для використання. Пакет ubuntu для shim називається shim-signed, але повідомте про те, як його правильно встановити, щоб ви не зіпсували завантажувач.

Оскільки найновіше оновлення 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, підписка потребує PEM):
openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem
  1. Зареєструйте ключ до вашої інсталяції shim:
sudo mokutil --import MOK.der

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

  1. Перезавантажте систему. Ви побачите синій екран інструменту під назвою MOKManager. Виберіть "Зареєструвати MOK", а потім "Переглянути клавішу". Переконайтеся, що це ваш ключ, який ви створили на кроці 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 працює знову. Якщо ви хочете оновити користувальницьке ядро, ви можете легко підписати нову версію, виконуючи вищезазначені кроки ще з кроку сьомого. Таким чином, РЕКЛАМУЙТЕ клавіші MOK (MOK.der, MOK.pem, MOK.priv).


Ecxellent відповідь, я не міг потрапити туди тільки з інструкціями ubuntu
User632716

Відмінний ярлик для перейменування та перезаписування файлів з поштовими корекціями.
Том

1

Я вирішив свою проблему, виконуючи цей підручник, щоб підписати / boot / vmlinuz файл для безпечного завантаження, просто зауважте останню частину підручника


6
Чи можете ви надати будь-яку детальну інформацію про вирішення цієї проблеми? У мене абсолютно однакова помилка, але я не розумію, що мені робити відповідно до згаданого підручника.
Слон

Я зараз не пам'ятаю, я спробую допомогти вам пізніше цього дня, якщо це все ще актуально
Надав Шабтай

Це актуально і для мене. У мене те саме питання
Віталій Діравка

Щойно знайшов це, мені це теж потрібно
Мітч Талмадж

1
Здається, це "відповідь лише для посилань". Відредагуйте питання та вкажіть кілька деталей, щоб допомогти іншим користувачам, які мають таку ж проблему. Дякую!
mchid
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.