web-dev-qa-db-ja.com

EFIシステムパーティションで複数のブートローダーが機能する方法

私のESPはこのように見えます

Boot Dell Fedora Microsoft

ブートディレクトリでは、それらはbootx64.efiという名前のブートローダーです。これは、最初に起動するデフォルトのブートローダーであることを理解しています。しかし、Fedoraディレクトリには、grubx64.efiという名前の別のブートローダー(grub2)があります。

これらの各ブートローダーの機能は何ですか?どちらがboot-menuを提供しますか?

14
user3247608

bootx64.efiは最初に開始されません。ほとんどの場合、それはまったく始まりません。

EFIファームウェアには、独自の「ブートメニュー」があります。これは、GRUBによって提示されるメニューに似ていますが、ブートプロセスの初期段階にあります。GRUB実行するLinuxカーネルを選択すると、EFIブートメニューで実行するEFIブートプログラムを選択できます。選択肢はGRUB自体、またはWindowsブートローダーのようなものです(GRUBのメニューと同様に、 EFIブートメニューは通常、デフォルトでは表示されません。これを表示するには、起動中にホットキーを押す必要があります。)

EFIブートメニューのエントリは、マザーボードのNVRAM(「BIOS設定」メモリ)に保存されている構成データによって定義されます。この設定はファイルに保存されませんが、Fedoraではefibootmgrプログラムを使用して確認できます。各エントリには、人間が読める名前(メニューに表示)とEFIシステムパーティションのブートプログラムへのパス、およびホットキーを押さない場合にデフォルトでブートされるエントリを決定する優先順位番号が含まれますメニューを表示します。

これらのNVRAMブートエントリは、(通常)オペレーティングシステムのインストーラーによって作成されます。 OSをインストールし、ブートローダーファイルをEFIシステムパーティションに配置すると、NVRAM構成にエントリが追加され、新しいブートローダーがEFIブートメニューで使用できるようになります。 (多くの場合、その新しいエントリがデフォルトになるため、EFIブートメニューを開いて手動で選択する必要なく、インストールしたOSが自動的に起動します。)

Boot/bootx64.efiプログラムは、ディスク上の他のブートプログラムを参照するNVRAMブートエントリでEFIが構成されていない場合のフォールバックです。ブータブルCDやUSBドライブなどのリムーバブルメディアでは重要ですが、ハードドライブでは、通常は使用されません。 WindowsインストーラーはBoot/bootx64.efiをフェイルセーフとして作成します。これはMicrosoft/Boot/bootmgfw.efiの単なるコピーです(少なくともWindows 7では。他のバージョンについてはわかりません)。

私のシステムでは、Microsoft bootx64.efiEFI Shell のコピーに置き換えたので、NVRAMブートエントリがなく、フォールバックブートローダーに依存しているとしたらシステムにWindowsを自動的にブートさせるのではなく、状況を調査して他のブートプログラムの1つを手動で実行できるシェルにドロップしました。 (GRUBメニューにエントリを追加したので、システムが正常に動作している場合でもEFIシェルを起動することができます。)

17
Wyzard