TL;DR
SecureBootは有効だけど,検証はしないよ!(???)とかいう意味不明な構成にする(頻繁に破壊して𝑰𝑵𝑺𝑻𝑨𝑳𝑳 𝑩𝑨𝑻𝑻𝑳𝑬をするから真面目に構成するのめんどくなった).
あくまでSecureBoot必須のWin11と共存する目的であって,セキュリティ的には破綻しているので非推奨.
真面目な人はMOKの鍵を生成して署名するかハッシュをenrollするかして,ちゃんと検証するようにしてね.
そもSeucure Bootって?いるの?
ggrks
手順
前提
- ArchLinuxの初期インストールが終わって,GRUB導入済み・起動済み.
- WinとArchは別ストレージにいて,ESPも個別に持ってる想定(壊したくないので).
- ESPは
/boot
想定 - AURの使えるpacmanラッパーを入れておく(ここでは
yay
で進める)
GRUBのバイナリにsbatセクションを付加
- バイナリに内包するmoduleをexportしておく
ここを参考に必要なmoduleを選ぶ.片っ端から入れとくと失敗はしない.以下は全部含めた例. - sbatを付加してGRUBを再インストール
- sbatが付いてるか確認
Secure Boot有効化と検証無効化
shim-signed
とmokutil
を入れるshim
とMOK Managermm
を/boot/efi/<bootloader-id>
以下に移動
shim
,mm
,grub
は同一ディレクトリにいないといけない- ブートエントリの編集
efivarsに保存されてるブートエントリを編集し,shimx64.efi
が初めに起動するように変更.
shimx64.efi
を/boot/efi/boot/bootx64.efi
(fallback) としてる場合,勝手にUEFI Firmwareが見つけてくれるので変更不要
マザーボードによってはefibootmgrでの変更を認識しない場合がある (MSI MPG Z690 FORCE Wi-Fi はNGだった). shim
以降のVerification Chainを無効化
なんでこんな設定ができるんですかね…意味ねぇな…🤔mokutil --disable-verification # 再起動時に入力するパスワードを設定
- Reboot
- MOK ManagerでSecure Boot Stateを変更
MOK Managerが勝手に起動するので,Change Secure Boot Stateを選択. - 設定したパスワードのx文字目を何個か聞かれる
- disable secure bootを確認して
yes
- 再起動
- 晴れて無効化完了.起動時に Booting insecure modeと表示される.
本来はGRUBとカーネルに署名をして,鍵のenrollをしないといけないが,これで省ける.
本来のセキュリティを保ちたいのであればこの方法は愚行なのでやめた方が良い.メリット・デメリットが完全に理解できる人のみやるべき.