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

GPT パーティション方式

·1610 文字·4 分· loading · loading · · ·
ICE345
著者
ICE345
CS Student | System | Linux | OCaml
この記事は中国語版の内容をもとに、技術用語と文章表現を日本語向けに整理したものです。より広い視点から起動の流れを理解したい場合は、Linux の起動フロー:ファームウェア、パーティション、GRUB からカーネルまでも参照してください。
UEFI_BIOS

GPT(GUID Partition Table) は、パーティションの数、冗長性、ディスク容量の扱いにおいて、従来の MBR(Master Boot Record) と大きく異なります。ここでは、特に UEFI とデュアルブートとの関係を整理します。

1. GPT と MBR の違い
#

項目MBRGPT
パーティション情報先頭セクタに基本的なパーティション表を置くGUID 付きのエントリを使い、ヘッダーと表を管理する
パーティション数基本パーティションは最大 4 個。拡張パーティションを使えば論理パーティションを追加できる標準的な構成では 128 個程度。実際の上限は実装と設定による
大容量ディスク古いアドレス方式の制限を受ける2 TiB を超えるディスクにも対応しやすい
起動情報BIOS 起動では先頭セクタのコードを利用するUEFI 起動では通常 ESP にある EFI プログラムを利用する
冗長性パーティション表は基本的にディスク先頭だけにある先頭と末尾にヘッダーとパーティション表のバックアップを持つ
整合性確認構造が単純で、破損時の復旧情報が少ないCRC によってヘッダーと表の破損を検出しやすい
互換性Legacy BIOS と相性がよいUEFI と組み合わせるのが一般的。Protective MBR によって古いツールから保護する

2. GPT と UEFI の起動
#

2.1 EFI System Partition(ESP)
#

UEFI と GPT を組み合わせる場合、ディスクには通常 EFI System Partition(ESP) を用意します。ESP は一般に FAT32 でフォーマットされ、各 OS の EFI 起動プログラムを保存します。

EFI/
├── BOOT/BOOTX64.EFI
├── ubuntu/grubx64.efi
└── Microsoft/Boot/bootmgfw.efi

.efi ファイルは通常 PE/COFF 形式の EFI イメージです。ELF ファイルに拡張子を付け替えたものではありません。

2.2 UEFI の起動項目
#

UEFI は NVRAM の BootOrderBoot#### などの起動項目をもとに、どの EFI プログラムを実行するか選びます。複数の OS がある場合、ファームウェアの起動メニューや GRUB のメニューから選択できます。

2.3 GRUB を使う場合
#

GRUB を UEFI モードでインストールすると、GRUB の EFI プログラムは ESP に保存され、設定ファイルやモジュールは通常 /boot/grub/ に置かれます。GRUB は Linux、Windows Boot Manager、複数のカーネルなどを一つのメニューから選択できるようにします。

# /boot は例。実際の ESP のマウントポイントに置き換える
sudo grub-install --target=x86_64-efi --efi-directory=/boot

# GRUB の設定を生成する
sudo grub-mkconfig -o /boot/grub/grub.cfg

grub-mkconfig は設定ファイルを生成するコマンドであり、EFI プログラムのインストールそのものではありません。

3. GPT と Legacy BIOS(CSM)
#

GPT は UEFI と組み合わせるのが一般的ですが、GRUB を使えば GPT ディスクを Legacy BIOS から起動できる場合もあります。その場合、通常はファイルシステムを作成しない小さな BIOS Boot Partition を用意し、GRUB の core.img を埋め込む場所として使います。

GPT ディスクの先頭には、古いツールがディスクを空と誤認して上書きしないよう、Protective MBR が置かれることがあります。これは従来の MBR ブートコードを完全に提供するものではありません。

4. GPT を使ったデュアルブート
#

  • Linux と Windows は、通常それぞれの EFI 起動プログラムを ESP 内の別ディレクトリに保存します。
  • UEFI の起動メニューから Windows Boot Manager や GRUB を選択できます。
  • GRUB を既定の起動項目にすれば、Linux と Windows、複数の Linux カーネルを一つのメニューで選べます。
  • GRUB を使わない場合は、UEFI の既定の起動項目がそのまま実行されます。

5. まとめ
#

  • MBR/GPT はパーティション方式であり、起動方式そのものではありません。
  • GPT では通常 ESP を使って UEFI の EFI プログラムを保存します。
  • GPT にも Protective MBR が存在する場合があります。
  • GPT を Legacy BIOS から起動する場合、GRUB 用の BIOS Boot Partition が必要になることがあります。
  • UEFI、ESP、GRUB、Linux カーネルの関係をまとめて確認したい場合は、全体の起動フローの記事を参照してください。

関連記事


评论