1. GRUB の役割#
GRUB(GRand Unified Bootloader)は、Linux カーネルや他の OS の起動プログラムを読み込むブートローダーです。起動メニューを表示するため、ブートマネージャーとしての役割も持っています。
GRUB の配置と読み込み方は、次の二つの軸で変わります。
- 起動方式:Legacy BIOS または UEFI
- パーティション方式:MBR または GPT
2. BIOS モードの GRUB#
2.1 boot.img#
BIOS モードでは、GRUB の小さな最初のコードがディスク先頭の MBR に配置されます。MBR のブートコード領域は約 446 バイトしかないため、ファイルシステムを理解する完全な GRUB を保存することはできません。
2.2 core.img#
最初のコードは、次の段階の core.img を読み込みます。core.img には、GRUB の基本機能、必要なファイルシステムモジュール、次のファイルを探すための情報などが含まれます。
- MBR ディスクでは、MBR と最初のパーティションの間にある埋め込み領域が利用されることがあります。
- GPT ディスクでは、通常、ファイルシステムを持たない BIOS Boot Partition が必要です。
「Stage 1.5」という呼び方は、この中間段階を説明するための歴史的・教育的な表現です。すべての GRUB 2 インストールに、固定された Stage 1.5 ファイルが存在するという意味ではありません。
2.3 GRUB のモジュールと設定#
core.img が必要なモジュールを読み込めるようになると、GRUB はファイルシステム上のファイルを扱えるようになります。通常、次のようなファイルを読み込みます。
/boot/grub/grub.cfg
/boot/grub/*.mod
/boot/vmlinuz-*
/boot/initramfs-*その後、GRUB はメニューを表示し、選択された Linux カーネルと initramfs をメモリへ配置して、Linux の起動プロトコルに従って制御を渡します。
3. UEFI モードの GRUB#
UEFI では、ファームウェアが ESP から EFI プログラムを読み込みます。GRUB の EFI プログラムは、例えば次の場所に保存されます。
/EFI/ubuntu/grubx64.efi
/EFI/BOOT/BOOTX64.EFI.efi は通常 PE/COFF 形式であり、ELF ではありません。UEFI が grubx64.efi を実行すると、GRUB は設定ファイル、モジュール、Linux カーネル、initramfs を読み込みます。
UEFI モードでは、GRUB の EFI プログラムを MBR に埋め込む必要はありません。ESP のファイルと UEFI の起動項目が重要になります。
4. Stage という説明の注意点#
古い GRUB の説明では、次のように表現されます。
Stage 1 → MBR の小さな起動コード
Stage 1.5 → ファイルシステムを扱う中間コード
Stage 2 → /boot/grub の完全な GRUB学習用の流れとしては便利ですが、現代の GRUB 2 では boot.img、core.img、モジュール、設定ファイル、EFI プログラムという構成で説明した方が正確です。
5. まとめ#
- BIOS モードでは、MBR の小さなコードから
core.imgへ処理が進みます。 - MBR ディスクでは埋め込み領域、GPT ディスクでは BIOS Boot Partition が使われることがあります。
- UEFI モードでは、UEFI が ESP の
.efiプログラムを直接実行します。 - GRUB は設定を読み、カーネル、initramfs、カーネルコマンドラインを準備します。
- GRUB は Linux カーネルそのものではなく、カーネルへ制御を渡すための起動プログラムです。


