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のデュアルブートがあります(本日アップグレード済み)

更新:grubの「Ubuntuの詳細オプション」から選択した古いカーネルで起動できました

しかし、カーネルをアップグレードする必要がありますが、それを行っても同じ問題が発生します...


私のLenovo T480のファームウェアを更新した後、同じ問題が発生しました。古いカーネルがまだ機能する理由がわかりません。
user205301

回答:


5

問題のカーネルに署名する代わりに、ラップトップのBIOS / UEFIメニューでセキュアブートをオフにしました。

通常、起動中に特別なキーを押すことでメニューに入ることができます。デバイスに固有のキーをグーグルできます。または、起動中に画面に表示される場合もあります。


ありがとう!BIOSを更新しましたが、無効にするのを忘れました!
ルーカスブスタマンテ

5

https://github.com/jakeday/linux-surface/blob/master/SIGNING.mdには、カーネル署名に関するより具体的な手順があります(承認された回答にリンクされている同じチュートリアルから適応されています)。手順は次のように完全に再現されています。

セキュアブート用のカスタムカーネルへの署名

手順はubuntu用ですが、shimとgrubをブートローダーとして使用している場合は、他のディストリビューションでも同様に機能するはずです。ディストリビューションがシム(例:Linux Foundation Preloader)を使用していない場合は、署名を完了するために同様の手順(例:LFプリローダーのMokUtilの代わりにHashTool)を使用するか、代わりに使用するシムをインストールできます。shimのubuntuパッケージはと呼ばれshim-signedますが、正しくインストールする方法を自分に知らせて、ブートローダーを台無しにしないようにしてください。

Ubuntuの最新のGRUB2更新(2.02 + dfsg1-5ubuntu1)以降、セキュアブートが有効になっている限り、GRUB2は署名されていないカーネルをロードしなくなりました。Ubuntu 18.04のユーザーは、grub-efiパッケージのアップグレード中に、このカーネルが署名されておらず、アップグレードが中止されることを通知されます。

したがって、この問題を解決するには3つのオプションがあります。

  1. 自分でカーネルに署名します。
  2. ディストリビューションの署名済みの汎用カーネルを使用します。
  3. セキュアブートを無効にします。

オプション2と3は実際に実行可能ではないため、これらは自分でカーネルに署名する手順です。

Ubuntuブログから変更され手順。以下の前に、すべてを復元できるように、/ boot / EFIディレクトリをバックアップしてください。自己の責任においてこれらの手順に従ってください。

  1. configを作成して署名鍵を作成し、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というツールのブルースクリーンが表示されます。「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のアップグレードが再び機能するようになります。カスタムカーネルをアップグレードする場合は、上記の手順7から再度実行することで、新しいバージョンに簡単に署名できます。したがって、MOKキー(MOK.der、MOK.pem、MOK.priv)をバックアップします。


Ecxellent応答、ubuntu命令だけでは
到達

ファイルの名前を変更して後置ファイルで上書きするための優れたショートカット。
Tom

1

このチュートリアルに従って問題を解決し、/ boot / vmlinuzファイルに署名してセキュアブートしました。チュートリアルの最後の部分に注意してください


6
この問題の解決に関する詳細情報を教えていただけますか?私はまったく同じエラーを抱えていますが、言及されているチュートリアルに従って何をしなければならないのかわかりません。
スロン

今は覚えていませんが、それでも関連がある場合は、この日遅くにお手伝いします
Nadav Shabtai

私にも関係があります。同じ問題があります
Vitalii Diravka

これを見つけただけで、私も必要です
ミッチタル

1
これは「リンクのみの回答」のようです。質問を編集し、いくつかの詳細を入力して、同じ問題を抱えている他のユーザーを支援してください。ありがとう!
mchid
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.