コンテンツにスキップ
このページの情報は古くなっています。/configuration/secure_boot_setup/ から最新のドキュメントを参照してください。

セキュアブートの設定

GRUB を使用している場合は、以下のコマンドを実行して CA キーを使った GRUB のセキュアブートサポートを有効にしてください。

Terminal window
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=cachyos --modules="tpm" --disable-shim-lock

UEFI でセットアップモードを有効化

Section titled “UEFI でセットアップモードを有効化”

まず、ファームウェア設定に移動してセキュアブートモードを「セットアップモード」に設定する必要があります。起動中のシステムから以下のコマンドでファームウェア設定に再起動できます。

Terminal window
systemctl reboot --firmware-setup

これは Lenovo Ideapad 5 Pro の BIOS の画面です。セットアップモードにリセットするかファクトリーキーを復元し、システムに再起動してください。

一部の MSI 製マザーボードにはセットアップモードがありません。同様の操作を行うには、以下の手順にしたがってください。


また、一部の ASUS 製マザーボードも同様に独立したセットアップモードが実装されていません。

Boot → Secure Boot に移動し、セキュアブートモードを Custom にしてから、Key Management を開き “Delete all Secure Boot Variables” をクリックしてください。

sbctl のインストールとキーの登録

Section titled “sbctl のインストールとキーの登録”

作業を始める前に、sbctl がインストールされているかどうかを確認してください。

sbctl は使いやすさを重視したセキュアブートキーマネージャーです。セキュアブートの設定やキー管理、ブートチェーンで署名が必要なファイルの追跡ができます。

sbctl のインストール方法
ターミナルを開き以下のコマンドを実行
sudo pacman -S sbctl

sbctl のインストールが完了したら、sbctl のセットアップとファームウェアへのキー登録を行います。以下の手順にしたがってください。

  1. セットアップモードが有効かどうかを確認してください。

    Terminal window
    sudo sbctl status
    正しい出力の例
    Terminal window
    Installed: sbctl is not installed
    Setup Mode: Enabled
    Secure Boot Disabled
  2. カスタムのセキュアブートキーを作成してください。

    Terminal window
    sudo sbctl create-keys
    キー作成成功時の出力例
    Terminal window
    Created Owner UUID a9fbbdb7-a05f-48d5-b63a-08c5df45ee70
    Creating secure boot keys...✔
    Secure boot keys created!
  3. Microsoft および OEM ファームウェアの組み込みキーとともにキーを登録してください。

    Terminal window
    sudo sbctl enroll-keys --microsoft --firmware-builtin
    成功時の出力例
    Terminal window
    Enrolling keys to EFI variables...✔
    Enrolled keys to the EFI variables!
  4. キーが登録され、セットアップモードが無効になっていることを確認するために、sbctl のステータスをもう一度確認してください。

    Terminal window
    sudo sbctl status
    成功時の出力例
    Terminal window
    Installed: sbctl is installed
    Owner GUID: a9fbbdb7-a05f-48d5-b63a-08c5df45ee70
    Setup Mode: Disabled
    Secure Boot Disabled
    Vendor Keys: microsoft

カーネルイメージとブートマネージャーへの署名

Section titled “カーネルイメージとブートマネージャーへの署名”

CachyOS は sbctl-batch-sign を提供しています。これは sudo sbctl verify から署名が必要なファイルの一覧を取得し、一括で署名するスクリプトです。

Terminal window
sudo sbctl verify
Verifying file database and EFI images in /boot...
/boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn4.0.fc40.x86_64/linux is not signed
/boot/EFI/BOOT/BOOTX64.EFI is not signed
/boot/EFI/systemd/systemd-bootx64.efi is not signed
/boot/1c4b5246eef05ac3bc87339323cd5101/0-rescue/linux is not signed
/boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn3.0.fc40.x86_64/linux is not signed
sudo sbctl-batch-sign
sudo sbctl verify
Verifying file database and EFI images in /boot...
/boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn4.0.fc40.x86_64/linux is signed
/boot/EFI/BOOT/BOOTX64.EFI is signed
/boot/EFI/systemd/systemd-bootx64.efi is signed
/boot/1c4b5246eef05ac3bc87339323cd5101/0-rescue/linux is signed
/boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn3.0.fc40.x86_64/linux is signed

これにてすべてのファイルへの署名が完了しました。システムを再起動して UEFI 設定でセキュアブートを有効にしてください。

参考としてこちらも確認してください。

-s フラグで署名されたファイルは sbctl のデータベースに保存されるため、これ以降同じ手順を行う必要はありません。

CachyOS は systemd の systemd-boot-update.service を使って再起動時にブートマネージャーを更新します。そのため sbctl の pacman フックは更新された EFI バイナリに署名しません。回避策として、ブートマネージャーに直接署名することができます。

Terminal window
sudo sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efi

セキュアブート状態の確認方法

Section titled “セキュアブート状態の確認方法”

セキュアブートが有効かどうかを確認するには、以下のいずれかのコマンドを実行してください。

Terminal window
sudo sbctl status
Installed: sbctl is installed
Owner GUID: a9fbbdb7-a05f-48d5-b63a-08c5df45ee70
Setup Mode: Disabled
Secure Boot: Enabled
Vendor Keys: microsoft
bootctl
System:
Firmware: UEFI 2.80 (INSYDE Corp. 28724.16435)
Firmware Arch: x64
Secure Boot: enabled (user)
TPM2 Support: yes
Measured UKI: no
Boot into FW: supported