ほとんどのディストリビューションは、UEFIシステムに追加のブートローダーをインストールします。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-efi
UEFIとgrubを連鎖させたい人向けのパッケージefistub-boot
と、上記のスクリプトを含むパッケージを提供できます。