vmlinuz-4.18.12-041812-generic a une signature invalide

15

J'ai mis à jour mon noyau aujourd'hui avec ukuu, et depuis lors, je ne peux pas démarrer parce que je reçois ces erreurs:

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

J'ai un double démarrage avec Windows 10 et Ubuntu 18.10 (mis à jour aujourd'hui)

Mise à jour: j'ai réussi à démarrer sur un noyau plus ancien que j'ai choisi dans "Options avancées pour Ubuntu" dans grub

Mais j'ai besoin de mettre à jour mon noyau et si je le fais, je reçois toujours le même problème ...

Nadav Shabtai
la source
Je rencontre ce même problème maintenant après la mise à jour du firmware de mon Lenovo T480 et je ne comprends pas pourquoi les noyaux plus anciens fonctionnent toujours.
user205301

Réponses:

5

Au lieu de signer le noyau en question, je viens de désactiver Secure Boot dans le menu BIOS / UEFI de mon ordinateur portable.

Vous pouvez généralement accéder au menu en appuyant sur une touche spéciale lors du démarrage , vous pouvez rechercher sur Google celle spécifique à votre appareil ou elle peut même s'afficher à l'écran pendant le démarrage.

xjcl
la source
Merci! Je viens de mettre à jour mon BIOS et j'ai oublié de le désactiver!
Lucas Bustamante
Cela fonctionne pour moi!
Jonathan Il y a
5

https://github.com/jakeday/linux-surface/blob/master/SIGNING.md a des instructions plus spécifiques sur la signature du noyau (adapté du même tutoriel lié dans la réponse acceptée). Les instructions sont reproduites intégralement comme suit:

Signature d'un noyau personnalisé pour Secure Boot

Les instructions sont pour ubuntu, mais devraient fonctionner de la même manière pour les autres distributions, si elles utilisent shim et grub comme chargeur de démarrage. Si votre distribution n'utilise pas shim (par exemple Linux Foundation Preloader), il devrait y avoir des étapes similaires pour terminer la signature (par exemple HashTool au lieu de MokUtil pour LF Preloader) ou vous pouvez installer shim à utiliser à la place. Le paquet ubuntu pour shim est appelé shim-signed, mais veuillez vous informer sur la façon de l'installer correctement, afin de ne pas gâcher votre chargeur de démarrage.

Depuis la dernière mise à jour de GRUB2 (2.02 + dfsg1-5ubuntu1) dans Ubuntu, GRUB2 ne charge plus les noyaux non signés, tant que Secure Boot est activé. Les utilisateurs d'Ubuntu 18.04 seront informés lors de la mise à niveau du paquet grub-efi, que ce noyau n'est pas signé et que la mise à niveau sera abandonnée.

Ainsi, vous avez trois options pour résoudre ce problème:

  1. Vous signez le noyau vous-même.
  2. Vous utilisez un noyau générique signé de votre distribution.
  3. Vous désactivez le démarrage sécurisé.

Étant donné que les options deux et trois ne sont pas vraiment viables, ce sont les étapes pour signer le noyau vous-même.

Instructions adaptées du blog Ubuntu . Avant de suivre, veuillez sauvegarder votre répertoire / boot / EFI, afin que vous puissiez tout restaurer. Suivez ces étapes à vos risques et périls.

  1. Créez la configuration pour créer la clé de signature, enregistrez-la sous 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"

Ajustez toutes les pièces avec vos détails.

  1. Créez la clé publique et privée pour signer le noyau:
openssl req -config ./mokconfig.cnf \
        -new -x509 -newkey rsa:2048 \
        -nodes -days 36500 -outform DER \
        -keyout "MOK.priv" \
        -out "MOK.der"
  1. Convertissez également la clé au format PEM (mokutil a besoin de DER, sbsign a besoin de PEM):
openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem
  1. Enregistrez la clé de votre installation de shim:
sudo mokutil --import MOK.der

Un mot de passe vous sera demandé, il vous suffira de l'utiliser pour confirmer votre sélection de clé à l'étape suivante, alors choisissez-en un.

  1. Redémarrez votre système. Vous rencontrerez un écran bleu d'un outil appelé MOKManager. Sélectionnez "Inscrire MOK" puis "Afficher la clé". Assurez-vous que c'est votre clé que vous avez créée à l'étape 2. Ensuite, continuez le processus et vous devez entrer le mot de passe que vous avez fourni à l'étape 4. Continuez avec le démarrage de votre système.

  2. Vérifiez que votre clé est enregistrée via:

sudo mokutil --list-enrolled
  1. Signez votre noyau installé (il devrait être dans / 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. Copiez l'initram du noyau non signé, nous avons donc aussi un initram pour le signé.
sudo cp /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{,.signed}
  1. Mettez à jour votre grub-config
sudo update-grub
  1. Redémarrez votre système et sélectionnez le noyau signé. Si le démarrage fonctionne, vous pouvez supprimer le noyau non signé:
sudo mv /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo mv /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo update-grub

Maintenant, votre système devrait fonctionner sous un noyau signé et la mise à niveau de GRUB2 fonctionne à nouveau. Si vous souhaitez mettre à niveau le noyau personnalisé, vous pouvez signer la nouvelle version facilement en suivant à nouveau les étapes ci-dessus à partir de l'étape sept. Ainsi, SAUVEGARDEZ les touches MOK (MOK.der, MOK.pem, MOK.priv).

prusswan
la source
Réponse Ecxellent, je n'aurais pas pu y arriver avec les instructions ubuntu seules
User632716
Excellent raccourci pour renommer et écraser des fichiers avec des suffixes.
Tom
1

J'ai résolu mon problème en suivant ce tutoriel pour signer le fichier / boot / vmlinuz pour un démarrage sécurisé, remarquez juste la dernière partie du tutoriel

Nadav Shabtai
la source
6
Pourriez-vous fournir des informations détaillées sur la résolution de ce problème? J'ai absolument la même erreur, mais je ne comprends pas ce que je dois faire selon le tutoriel mentionné.
Slon
Je ne me souviens pas pour le moment, j'essaierai de vous aider plus tard dans la journée si cela est toujours d'actualité
Nadav Shabtai
C'est aussi pertinent pour moi. J'ai le même problème
Vitalii Diravka
Je viens de le trouver, j'en ai aussi besoin
Mitch Talmadge
1
Cela semble être une "réponse de lien uniquement". Veuillez modifier la question et fournir quelques détails pour aider les autres utilisateurs qui ont le même problème. Merci!
mchid