UEFIセキュアブートを有効にするには、GRUB2ブートローダに署名してください。

UEFIセキュアブートを有効にするには、GRUB2ブートローダに署名してください。

事前準備作業は次のとおりです。

  • Linux 4.2.3-Gentoo
  • GRUB2
  • UEFI、セキュアブートオフ

今、あなたはセキュアブートを台無しにしてアクティブにしたいと思います。多少の関心このガイド、私は持っています:

  1. MSのバックアップ主キー:

    #efi-readvar -v PK -o old_PK.esl
    #efi-readvar -v KEK -o old_KEK.esl
    #efi-readvar -v db -o old_db.esl
    #efi-readvar -v dbx -o old_dbx.esl
    
  2. 独自のキー生成:

    #openssl req -new -x509 -newkey rsa:2048 -subj "/CN=my platform key/" -keyout PK.key -out PK.crt -days 3650 -nodes -sha256
    #openssl req -new -x509 -newkey rsa:2048 -subj "/CN=my key exchange key/" -keyout KEK.key -out KEK.crt -days 3650 -nodes -sha256
    #openssl req -new -x509 -newkey rsa:2048 -subj "/CN=my kernel signing key/" -keyout db.key -out db.crt -days 3650 -nodes -sha256
    #cert-to-efi-sig-list -g "$(uuidgen)" PK.crt PK.esl
    #sign-efi-sig-list -k PK.key -c PK.crt PK PK.esl PK.auth
    
  3. efi-readvar再起動時にキーストロークが出力されないように、BIOSでキーストロークを消去します。

  4. バックアップされたキーをリセットし、マイキーを追加します。

    #efi-updatevar -e -f old_KEK.esl KEK
    #efi-updatevar -e -f old_db.esl db
    #efi-updatevar -e -f old_dbx.esl dbx
    #efi-updatevar -a -c KEK.crt KEK
    #efi-updatevar -a -c db.crt db
    #efi-updatevar -f PK.auth PK
    
  5. ブートローダに署名します。

    #cp /boot/EFI/grub/grubx64.efi /boot/EFI/grub/grubx64.efi.old
    #sbsign --key db.key --cert db.crt --output /boot/EFI/grub/grubx64.efi /boot/EFI/grub/grubx64.efi
    

確認プロセスは次のとおりです。

#sbverify --cert db.crt /boot/EFI/grub/grubx64.efi
 Signature verification OK.

それにもかかわらず、BIOSでセキュアブートをオンにして再起動すると、一般的なエラーメッセージが表示され、署名されていないかのようにGRUBは呼び出されません。私は何を見逃していますか?

ベストアンサー1

おすすめ記事