この記事は比較用の短いまとめです。起動チェーン、GRUB、ELF、カーネル、initramfs については、Linux の起動フロー:ファームウェア、パーティション、GRUB からカーネルまで を参照してください。
現代の Linux を新規インストールする場合は、通常 UEFI + GPT が扱いやすい組み合わせです。ただし、ほかの組み合わせが必ず使えないという意味ではありません。
よくある四つの組み合わせ#
| 起動方式 | パーティション方式 | 起動時の動作 | 主な場所 |
|---|---|---|---|
| Legacy BIOS | MBR | BIOS がディスク先頭セクタを読み、そこにあるコードを実行する | MBR、必要に応じて post-MBR gap |
| UEFI | GPT | UEFI が起動項目に従って ESP 内の .efi を実行する | FAT32 の ESP |
| Legacy BIOS | GPT | GRUB が BIOS から起動できるが、通常は BIOS Boot Partition が必要 | ファイルシステムを持たない BIOS Boot Partition |
| UEFI | MBR | 一部の環境では動作するが、互換性はファームウェアに依存する | UEFI 用の ESP |
BIOS + MBR#
MBR の先頭セクタは、一般に次の構造を持ちます。
446 バイト:ブートコード
64 バイト:4 個のパーティションエントリ
2 バイト:起動シグネチャ 0x55AA446 バイトだけでは GRUB 全体を保存できません。そのため、GRUB は MBR 後の空き領域やファイルシステム上の core.img、モジュールを利用して処理を続けます。「Stage 1 / Stage 1.5 / Stage 2」は理解しやすい歴史的な説明であり、すべての GRUB 2 インストールに固定された三つのファイルがあるという意味ではありません。
UEFI + GPT#
UEFI は MBR にすべてのコードを詰め込む代わりに、ESP から EFI アプリケーションを読み込みます。
EFI/
├── BOOT/BOOTX64.EFI
├── ubuntu/grubx64.efi
└── Microsoft/Boot/bootmgfw.efi.efi は通常 PE/COFF 形式であり、ELF ではありません。ESP は通常 FAT32 で、複数の OS が共同利用できます。
# ESP の実際のマウントポイントに置き換える
sudo grub-install --target=x86_64-efi --efi-directory=/boot
# GRUB の設定を生成する。EFI プログラムのインストールとは別の処理
sudo grub-mkconfig -o /boot/grub/grub.cfgコマンドはディストリビューションによって異なるため、実行前に ESP のマウントポイントを確認してください。
BIOS + GPT#
GPT ディスクには、古いツールがディスクを空だと誤認して上書きしないよう、Protective MBR が置かれることがあります。ただし、これは完全な BIOS 用の起動領域ではありません。
GRUB を Legacy BIOS から GPT ディスクで起動する場合、通常はファイルシステムを作成しない小さな BIOS Boot Partition が必要です。これは GRUB の core.img を埋め込むための領域で、ESP とは別物です。
GPT ディスク
├── Protective MBR
├── BIOS Boot Partition(BIOS + GPT で使用)
├── ESP(UEFI で使用)
└── Linux のルート、swap、データパーティション現在の起動方式を確認する#
test -d /sys/firmware/efi && echo UEFI || echo "Legacy BIOS"
lsblk -o NAME,SIZE,FSTYPE,FSVER,PARTTYPENAME,MOUNTPOINTS
sudo fdisk -l
sudo gdisk -l /dev/nvme0n1覚えておきたい点は次のとおりです。
- MBR/GPT はパーティション方式であり、起動方式ではありません。
- UEFI は GPT とよく組み合わせますが、完全な一対一対応ではありません。
- GPT に Protective MBR が存在することがあります。
- ESP は UEFI 用、BIOS Boot Partition は BIOS + GPT の GRUB 用です。
grub-mkconfigは設定生成コマンドであり、すべての bootloader インストールを代替するものではありません。


