ほとんどのディストリビューションがUEFIとgrubを接続するのはなぜですか?

ほとんどのディストリビューションがUEFIとgrubを接続するのはなぜですか?

ほとんどのディストリビューションはUEFIシステムに追加のブートローダをインストールします。 UEFI自体は、さまざまなオペレーティングシステムまたは個々のカーネルを選択できるメニューを提供するブートローダです。またefibootmgr

3.3以降のカーネルはEFI_STUBをサポートします。つまり、UEFIからカーネルを直接ロードできます。ディストリビューションが追加のブートローダを使用することにしたのはなぜですか? Linux / UEFIのほとんどのチュートリアルでは、EFI_STUBを使用してLinuxを起動するのではなく、追加のブートローダ(rEFInd、grub2、ELILOなど)を設定することに焦点を当てています。

ディストリビューションに欠けている唯一のものはサポートです。ほとんどのディストリビューションは2番目のブートローダに接続されているため、カーネルはUEFIブートメニューに追加されず、EFIシステムパーティションにコピーされません。

3つのスクリプトだけですべての魔法を実現できます。 initramfsをESPにコピーする方法です。 2番目はカーネルをESPにコピーし、UEFIブートメニューに新しいエントリを作成します。 3番目のスクリプトは、ESPから古いカーネルとinitramfsを削除し、UEFIブートメニュー項目を削除します。これにより、ユーザーとの対話なしで完全に自動化されたカーネル/initramfsの更新/クリーンアップが可能になります。私はこの方法を1年以上使用しており、完璧に動作します。

ほとんどのディストリビューションで EFI_STUB の代わりに grub を使用するのはなぜですか?

リンク:

編集:私はgrubサポートを完全に削除することについて話すのではなく、さまざまな理由でgrubサポートを使用したい人にオプションを提供することについて話しています。ディストリビューションでは、grub-efiUEFIとGrubを接続したい人のためのパッケージだけでなく、efistub-boot上記のスクリプトを含むパッケージも提供できます。

ベストアンサー1

UEFIのみが適用される点を考慮すると2005年の定義この仕様をサポートしていない古いデバイスがたくさんあります。標準ディストリビューションにUEFIを追加するには、1つではなく2つのコードパスをテストする必要があります。

おすすめ記事