ここから本文です

UEFI(GPT)のブートの仕組みについて詳しく知りたいです。

fre********さん

2014/1/1121:59:24

UEFI(GPT)のブートの仕組みについて詳しく知りたいです。

現在、UEFI(GPT)のブートの仕組みについて
Webで検索し情報収集しているところなのですが、
断片的に情報は入ってくるものの、
なかなか、詳しく、かつ、分かりやすくまとまっているサイトを
見つけられずにいます。

例えば、昔、MBR方式について勉強したときは、
「ブートとハードディスクのすべて」
http://nobumatu.web.fc2.com/boot/boot.html
というサイトがとてもわかりやすく参考になったのですが、
UEFI(GPT)については情報がありません。

UEFI(GPT)についても上記の様なわかりやすくまとまっている
サイトがあればなぁと思うのですが、どこかありますでしょうか?
ご存じであれば、教えてください。

補足英語が苦手なので、できれば日本語のサイトを教えていただければと思います。

閲覧数:
8,436
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

dol********さん

2014/1/1214:42:49

同じく最近GPTに関する情報を集め、なかなか整理されたサイトがないなーと思っている人間です。
質問のような分かりやすい説明をしているサイトは見つかりませんでしたが、複数サイトの説明を繋ぎ合わせるとだいたい以下のような仕組みらしいです。
自分の備忘録も兼ねて書き連ねてみます。自分も全てを理解しているわけではありませんが、参考になれば。

・GPTでフォーマットされたHDDの先頭にはMBRと同じ領域があり、ここには「ディスク全体が丸々ひとつのGPT保護パーティションである」という情報が書き込まれています。これによって、MBRにしか対応していないシステムで想定外の動作をすることを防いでいます。
MBRと同様にブートストラップローダ領域もありますが、通常は何も書き込まれないし、仮に何か書き込まれていても無視されます。

・GPTヘッダはMBRのパーティションテーブルの後ろ(MBRから見たパーティションの先頭)にあり、ディスクの最後尾にはそのバックアップがあります。ここには128パーティション分のパーティションテーブルがあり、MBRでいうブートストラップローダのようなものはありません。

・GPTの場合、起動時にHDDから最初に読み込まれるのはEFIシステムパーティション(容量100MBで、中身は普通のFAT32フォーマット。ドライブレターを割り当てれば普通にアクセス可能)内にあるEFIプログラム(デフォルトでは\EFI\BOOT\BOOTX64.EFI)。MBRではブートストラップローダ、ブートセクタ、カーネルローダと多段階構造になっていましたが、GPTではこのEFIプログラム1つだけで済みます。
MBRの感覚でいうとEFIシステムパーティションのファイルシステムを理解するためのコードがどこかに必要そうな気がしますが、マザーボードのEFIにその機能があるのでHDD側にはコードは必要ないようです(だからEFI機能のないマザーボードではGPT形式のHDDから起動できない)。つまり起動に必要なプログラムを全てファイルシステムに収める(MBRでいうブートストラップローダやブートセクタのような「ファイルではないプログラム」を極力使わない)という設計思想の模様。
(疑問)1つのHDDに複数のOSをインストールした場合、EFIシステムパーティションには複数のEFIプログラムが並ぶことになるが、どうやって選択するのか?(ここが一番知りたいけどいくら調べてもよく分からない…おそらくEFIの機能?少なくとも可能ではあるらしい)
(疑問)手元の環境では確かに\EFI\BOOT\BOOTX64.EFIがあったが、解説サイトによっては\EFI\Microsoft\Boot\bootmgfw.efiとするものもあり、これも存在した。この違いは?

・Linuxの場合、MBRのブートストラップローダ(前述した、仮に何か書き込まれていても無視される部分)からEFIシステムパーティションのファイルシステムを理解するローダへ処理を移し、それがEFIプログラムを呼び出すという変則的な手順で、EFI非対応のマザーボードでもGPTディスクから起動できるようにする方法があるようです。

(疑問)となっている部分は今後の課題。

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる