
EFI ブートローダーには特定の名前はないのでしょうか?
例えばウィンドウズ BIOS MBR、ナタリーブートローダーであり、Linux MBRそれはグラブLINUX EFIの場合はGRUB 2です
UEFI モードでプロセスはどこから始まるのでしょうか? 最初に ESP が EFI ブートローダーを実行し、その後さらに進むのでしょうか? 間に GPT の役割はありますか?
答え1
EFI ブートローダーには特定の名前はありません。そのようなブートローダーは実際には存在しないためです。
EFIでのブートストラップにはブートマネージャが関与し、ファームウェアに組み込まれているEFI システムは、ブート レコード (VBR または MBR) に格納されているブートストラップ プログラムにはまったく依存しません。ファームウェアはパーティション テーブルの読み取り方法を認識し、FAT ファイルシステム形式を理解しますが、IBM PC 互換ファームウェアではこれができないため、そのためのプログラムをロードする必要があります。
FAT ファイルシステム形式でフォーマットされ、特定の既知のパーティション タイプで識別される指定されたパーティションは、EFI システム パーティションと呼ばれ、ファームウェアはそれを見つける方法を知っています。
EFI システム パーティションは、パーティション テーブル内のタイプ コードによって識別される真のシステム ボリュームであり、Microsoft のシステム予約済みパーティションのように推測する必要はありません。EFI システム パーティションには、EFI ブート マネージャーによって読み込まれ実行される EFI 実行可能プログラムである特定のブート ローダー プログラムが含まれています。
EFI 実行可能プログラムはスタンドアロン プログラムであり、マシン ファームウェア サービスのみを使用し、実行するために基盤となるオペレーティング システムを必要としません。オペレーティング システムのブート ローダーまたは「プリブート」メンテナンス/診断プログラムのいずれかになります。慣例により、すべてのオペレーティング システムのブート ローダーはすべて、ディレクトリのベンダー固有のサブディレクトリにある EFI システム パーティションに格納されます\EFI\
。
Windows NT 5.x の 64 ビット バージョンの場合、EFI ブート ローダーは
\EFI\Microsoft\WINNT50\IA64LDR.EFI
、または です
\EFI\Microsoft\WINNT50C\IA64LDR.EFI
。これは、Windows ブート ボリューム内のファイルから Windows NT カーネルをロードして実行する Windows NT ブート ローダーである NTLDR で構成されます。
Windows NT 6 の場合、EFI ブート ローダーは\EFI\Microsoft\Boot\Bootmgfw.efi
、Microsoft Boot Manager です。これは、2 番目のブート マネージャーであり、起動するブート ローダー プログラムとそれらに渡すオプションをさらに一覧表示する、2 番目のブート オプション メニューを表示する場合があります。
64 ビット バージョンの Linux の場合、EFI ブート ローダーは または
\EFI\RedHat\elilo.efi
であり\EFI\SuSE\elilo.efi
、これは、システム ボリューム内のファイルから Linux カーネルをロードして実行する Linux ブート ローダーである LILO の修正バージョンです。
ELILO には、Microsoft ブート マネージャーと同様に、elilo.conf
複数のブート オプションのサポートを EFI ブート ローダーと EFI 変数に統合するのではなく、別の構成ファイルに保持される 2 番目のレベルのブート オプションが含まれています。
Apple の場合、ファームウェアは Intel Macintosh の EFI 仕様のほとんどを無視します。EFI システム パーティションは空で未使用であり、EFI ブート マネージャーは、その前に実行される Apple ブート ローダーによって隠されています。
詳細については、以下を参照してください。
答え2
EFI ブートローダーには特定の名前はないのでしょうか?
がある多くのEFI ブートローダーは、BIOS ブートローダーが多数あるのと同じように、多くのものがあります。ただし、それらの名前はまったく同じであることがよくあります。
Windows Vista 以降の場合:
ブート マネージャー (ブート メニューを表示するもの) は、「Windows ブート マネージャー」と呼ばれます。ファイル名は BIOS (
BOOTMGR
) と UEFI (Bootmgfw.efi
) で異なりますが、どちらの場合も Windows ブート マネージャーと呼ばれます。ブート ローダー (ブート メニューから起動され、実際に Windows を起動する) は、「Windows ブート ローダー」または WINLOAD.EXE と呼ばれます。どちらのモードも、最終的には同じブート ローダーに到達します。
Windows XP (UEFI はサポートされていませんが、Itanium EFI はサポートされています) の場合:
- BIOS ブートローダー/ブートマネージャーは「NTLDR」と呼ばれていました。
- EFI ブートローダはファイル「IA64LDR.EFI」に保存されていました。
Linux では、複数のブート マネージャーとブート ローダーが利用可能です。
GRUB 2.x は BIOS と UEFI システムの両方をサポートしており、どちらの場合も「GRUB 2」と呼ばれます。
Syslinux も両方のモードをサポートしています。Syslinux の UEFI バージョンは、引き続き「Syslinux」と呼ばれます。
BIOS 専用のブート マネージャー/ローダー (LILO、GRUB 0.x など) と、UEFI 専用のブート マネージャー/ローダー (systemd-boot、rEFInd、eLILO、efilinux など) があります。
UEFI モードでプロセスはどこから始まるのでしょうか? 最初に ESP が EFI ブートローダーを実行し、その後さらに進むのでしょうか? 間に GPT の役割はありますか?
「MBR」(マスター ブート レコード) には、最初の 440 バイトに BIOS ブート コード、残りの 72 バイトにパーティション テーブルの 2 つのものが同時に保存されていました。
対照的に、ブートコードはGPTに直接保持されるのではなく、GPTはのみパーティション テーブルの代わりに、EFI システムには、ブート コードが通常のファイルとして保存される指定されたシステム パーティション (ESP) があります。
そのため、GPTもESPも、実際には単独で何かを起動することはできません。代わりに、EFIファームウェアが直接起動します。特定のファイルESP から。