EFI システム パーティションで複数のブート ローダーがどのように動作するか

EFI システム パーティションで複数のブート ローダーがどのように動作するか

私のESPはこんな感じです

Boot Dell fedora Microsoft

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

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

答え1

bootx64.efiまず始められません。ほとんどの場合、まったく始められません。

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

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

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

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

私のシステムでは、Microsoftbootx64.efiEFI シェルそうすれば、何らかの理由で NVRAM ブート エントリがなく、フォールバック ブートローダに実際に依存していることに気付いた場合、システムが自動的に Windows を起動するのではなく、状況を調べて他のブート プログラムの 1 つを手動で実行できるシェルに切り替わります。(システムが正常に動作している場合でも EFI シェルを起動するオプションが利用できるように、GRUB メニューにエントリも追加しました。)

関連情報