はじめに
Wikiや既存の記事通りにやってハマったのでManjaroでうまくいかない人の参考になりましたら幸いです。
ただ、試行錯誤してたどり着いたものなので、なにか問題が起こるかもしれませんので実行する際は自己責任でお願いします。
私はWindowsとLinux(Manjaro)をデュアルブート環境でしようしているのですが、Windwosを使っている最大にして唯一の理由がほとんどのFPSゲームがLinuxに対応していないからというものになります。
そしてValorantを筆頭にセキュアブートを有効にしていないと起動できないゲームも出てきました。
BF6もそうなるみたいで恐らくこの流れは続くだろうなということで、OSを切り替えるたびに毎回BIOSに入ってセキュアブートを切り替えるのもめんどくさいので、セキュアブートを有効にしたままManjaroを起動出来るようにしましたのでその備忘録です。
やり方
早速やり方ですが基本的にはこちらのWikiに書いてあるとおりです。
sbctlを使用するのですが、私はデフォルトで入っていたので恐らく入っているんじゃないかと思います。なければインストールしてください。
sudoを省いているので、sudoをつけるかsu環境で実行してください。
-
--disable-shim-lockをつけてGRUBをインストールしなおします。grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Manjaro --modules=tpm --disable-shim-lock --recheck -
sbctl statusで現在の状態を確認してください。
Setup ModeがEnabled、Secure BootがDisabledであれば大丈夫だと思います。sbctl status -
鍵を作成します。
sbctl create-keys -
鍵を登録します。
sbctl enroll-keys -m -
署名が必要なファイルを確認します。
sbctl verify私はここで下記2ファイルしか出ませんでした。
/boot/efi/EFI/Manjaro/grubx64.efi /boot/efi/EFI/boot/bootx64.efi -
出てきたファイルに署名します
sbctl sign -s /boot/efi/EFI/Manjaro/grubx64.efi sbctl sign -s /boot/efi/EFI/boot/bootx64.efiそして更に/boot/vmlinuz〜ファイルも署名してください。(バージョン部分は書き換えてください)
私はこれがわからずに詰まりました。sbctl sign -s /boot/vmlinuz-6.12-x86_64 -
あとは再起動して、セキュアブートをオンにして起動できるようになっているはずです。
GRUBがアップデートされたときにshimが有効になってerror: prohibited by secure boot policyのエラーが出てgrub rescueモードになることがあります。
アップデートしたら--disable-shim-lockをつけて再インストールしてください
(shimを無効にしたままアップデートする方法知ってたら教えてください泣)
まとめ
何故かはわかりませんがsbctl verifyでvmlinuzが出てきませんでした。
完璧に理解できたわけではないですけど、とりあえずうまくいったので良しとします。
参考にさせていただいた記事