私は、2つのLinuxディストリビューション、Windows、および複数のISOを含む最高のUSBスティックを作成しようとしています。
これまで、Windows、Ubuntu、Fedora Silverblueをディスクにインストールしました(インストールを高速化するために仮想マシンでテストしてきました)。マシンのUEFIブートメニューからすべてのオプションを表示し、そのうちの1つを正常に起動できます。
FedoraまたはUbuntu GRUBメニューからWindowsを起動できますが、どちらも他のメニューから起動しません。
最終的にISOファイルを起動したいので、GRUBから別のLinuxインストールをロードできるはずです。
私が試したこと:
セキュアブートを無効にする:
これはうまくいきますが、他の人のコンピュータで利用できるようにしたいので、セキュアブートを無効にするのが気に入らない可能性があるため、使用したくありません。
チェーンローディング:
GRUBはチェーンローダを介してWindowsをロードするので、Linuxでも同じことができると思いました。
FedoraのGRUBメニューでこれを実行すると、chainloader /EFI/ubuntu/grubx64.efi
同じシムエラーが発生します。
これによりchainloader /EFI/ubuntu/shimx64.efi
(FedoraのGRUBメニューから)UbuntuのGRUBメニューに移動できます。しかし、実際にUbuntuを起動しようとすると、まだshimエラーが発生します。
正しく理解したら
私が正しく理解したなら、これはshimx64.efi
UEFI BIOSが実際にロードされることです。このファイルには、単一コアのセキュアブート情報のみが含まれていますか?
shimx64.efi
別のGRUBメニューにロードするリンクを選択したときにUEFIを再ロードする方法はありますか?
shimx64.efi
長すぎます。セキュアブートが有効になっている同じGRUBメニューから2つのLinuxディストリビューションをダブルブートできるかどうかを説明できますか?
ありがとう、ウィル
答え1
私が正しく理解した場合、shimx64.efiはUEFI BIOSが実際にロードすることです。このファイルには、単一コアのセキュアブート情報のみが含まれていますか?
ほとんど正しいですが、正確ではありません。マイクロソフトは各リリースのshimバージョンに署名し、shimにはそのリリースのセキュアブート公開鍵が含まれています。 shimを使用すると、システムの起動に許可されているキーのリストに、ディストリビューションのセキュアブートキーが一時的に(非永続的に)追加されます。 ShimにはMOK(マシン所有者キー)を追加することもできます。
したがって、Fedoraをロードすると、セキュアshimx64.efi
ブートがFedora署名コンテンツを受け入れることができます。その後、ロードされ、grubx64.efi
Fedoraで署名され、セキュアブートファームウェアで許可されるようになりました。 Fedoraのカーネルがロードされると、カーネルファイルはgrubx64.efi
Fedoraによって署名され、セキュアブートを介してカーネルコードを実行できます。
カスタムカーネルを構築するには、MOKを生成し、それを使用してカスタムカーネルに署名する必要があります。また、カスタムまたはサードパーティのカーネルモジュールを構築するには、セキュアブート「契約」の一部が署名されていないカーネルコードを受け入れないため、MOKで署名する必要があります。したがって、ブートローダはカーネルの署名を確認し、セキュアブートが有効になっている場合は、カーネルは各モジュールの署名を確認する必要があります。
あなたディストリビューションのセキュアブートキーでは何も署名できません。プライベートディストリビューションセキュリティブートキーの一部 - このキーは、ディストリビューションセキュリティ担当者が非常に安全に保管できます。
インストールしてあなたの他の人のコンピュータでMOKを使用することは、セキュアブートを無効にするのと同じくらい悪いです。何もない彼らのシステムで。
明らかに1つのshimをロードした後、理論的にはshimの他のコピーをチェーンロードすることは可能であるべきですが、shimのソースコードの説明によると、これは完全にマイナーではありません。