メインコンテンツへスキップ
  1. ノート/
  2. システム底层/

MBR と GPT パーティションの簡単なまとめ

·1294 文字·3 分· loading · loading · · ·
ICE345
著者
ICE345
CS Student | System | Linux | OCaml

この記事は比較用の短いまとめです。起動チェーン、GRUB、ELF、カーネル、initramfs については、Linux の起動フロー:ファームウェア、パーティション、GRUB からカーネルまで を参照してください。

パーティション方式と起動方式は別の概念です。MBR/GPT はディスク上のパーティション配置を表し、Legacy BIOS/UEFI はファームウェアが起動プログラムを探して実行する方法を表します。

現代の Linux を新規インストールする場合は、通常 UEFI + GPT が扱いやすい組み合わせです。ただし、ほかの組み合わせが必ず使えないという意味ではありません。

よくある四つの組み合わせ
#

起動方式パーティション方式起動時の動作主な場所
Legacy BIOSMBRBIOS がディスク先頭セクタを読み、そこにあるコードを実行するMBR、必要に応じて post-MBR gap
UEFIGPTUEFI が起動項目に従って ESP 内の .efi を実行するFAT32 の ESP
Legacy BIOSGPTGRUB が BIOS から起動できるが、通常は BIOS Boot Partition が必要ファイルシステムを持たない BIOS Boot Partition
UEFIMBR一部の環境では動作するが、互換性はファームウェアに依存するUEFI 用の ESP

BIOS + MBR
#

MBR の先頭セクタは、一般に次の構造を持ちます。

446 バイト:ブートコード
 64 バイト:4 個のパーティションエントリ
  2 バイト:起動シグネチャ 0x55AA

446 バイトだけでは 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 インストールを代替するものではありません。

関連記事


评论