RHEL8.2 および8.3 betaでSecure Bootが有効だとインストールができない

（2020/7/29追記）
RHEL8.3 betaが公開されました。
[Red Hat Enterprise Linux 8.3 beta now available, delivers production stability plus enterprise innovation
](https://www.redhat.com/en/blog/red-hat-enterprise-linux-83-beta-now-available-delivers-production-stability-plus-enterprise-innovation)
RHEL8.3 betaも同様にSecure Bootが有効だとインストーラーが起動しないことを確認しました。
そのため、タイトルも一部変更しました。

----

トラブルの内容はタイトルの通り

# 状況

2020年1月22日に出たRHEL8.2 Betaをインストールしようとして問題に遭遇

[8.2 Release Notes Red Hat Enterprise Linux 8-beta | Red Hat Customer Portal](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-beta/html-single/8.2_release_notes/index)

インストーラーを起動して実行すると下記のようなエラーが表示されて進まない
![Screen Shot 2020-01-23 at 0.49.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526320/f406d318-7c1a-ad3d-c774-4fca65cf3e8b.png)


# 環境

- ESXi: 6.7.0 U2
- 仮想マシン設定
 - 起動モード: EFI
 - Secure Boot: **有効**
- RHEL8.2 Beta
 - ISO: rhel-8.2-beta-1-x86_64-dvd.iso

その後確認すると、RHEL8.0 Betaでも同様の問題が発生。以前から既知の問題の模様。


# 原因

RHEL8のベータリリースでは、UEFIセキュアブート用の公開キーを追加する必要があるため

[第7章 UEFI セキュアブートを使用したベータシステムの起動 Red Hat Enterprise Linux 8 | Red Hat Customer Portal](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/performing_a_standard_rhel_installation/booting-a-beta-system-with-uefi-secure-boot_installing-rhel)

>UEFI セキュアブートでは、オペレーティングシステムカーネルが、認識された秘密キーで署名されている必要があります。Red Hat Enterprise Linux 8 のベータリリースの場合、カーネルは Red Hat ベータ固有の秘密キーで署名されます。UEFI セキュアブートは、対応する公開キーを使用して署名を検証します。
>
>Red Hat Enterprise Linux 8 のベータリリースは、ハードウェアがベータの秘密鍵を認識しないと起動できません。ベータリリースで UEFI セキュアブートを使用するには、MOK (Machine Owner Key) 機能を使用して Red Hat ベータ公開キーをシステムに追加します。



# 対処

セキュアブートを無効にしてインストールする。

[7.2. UEFI セキュアブート用のカスタム公開キーの追加 Red Hat Enterprise Linux 8 | Red Hat Customer Portal](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/performing_a_standard_rhel_installation/adding-a-custom-private-key-for-uefi-secure-boot_booting-a-beta-system-with-uefi-secure-boot)

>前提条件
>
> - システムで UEFI セキュアブートを無効にします。
> - ベータ版の Red Hat Enterprise Linux 8 リリースをインストールします。インストールプロセスが完了すると、システムが再起動します。セキュアブートは引き続き無効にする必要があります。システムを再起動してログインし、該当する場合は 初期セットアップ ウィンドウでタスクを完了します。

インストール後、無効にしたセキュアブートを有効化したい場合は、上記のリンクの手順に則ってセキュアブート用の公開キーを追加する必要がある。


# まとめ

セキュアブートが有効な環境でRHEL8.2をインストールする場合は、無効にしてインストールする必要が分かった。以前、RHEL8.0 Betaをインストールしていたがその時はあまり深く考えずに対処していた可能性があるので、今回あらためて内容を整理してみた。
ベータリリースなので長期運用する必要がない場合は無効のままでもよいと思うが、セキュリティ面でのテストなどを行う場合は有効化することが望ましい。

# 参考リンク

- [Installation of RHEL8 on UEFI system with Secure Boot enabled fails with error 'invalid signature' on vmlinuz. - Red Hat Customer Portal](https://access.redhat.com/solutions/3771941) 
 ベータリリースとは書いていないが、エラー内容はほぼ同じ

- [5.9. UEFI セキュアブートによるベータリリースの使用 Red Hat Enterprise Linux 7 | Red Hat Customer Portal](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/installation_guide/sect-installation-planning-beta-secure-boot) 
 セキュアブートに対応したRHEL7ベータリリースから同様の内容がドキュメントに記載有り


- [25.11. Unified Extensible Firmware Interface (UEFI) セキュアブート Red Hat Enterprise Linux 7 | Red Hat Customer Portal](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/sec-uefi_secure_boot) 
 セキュアブートの説明（RHEL7）

- [UEFI セキュアブートによる制約 - Red Hat Customer Portal](https://access.redhat.com/ja/articles/3190092) 
 セキュアブートに関するナレッジベース（RHEL7）