「プライマリパーティション」と「拡張パーティション」の違い

あと「論理ドライブ」も

パーティションにも種類があり、
「プライマリパーティション」「拡張パーティション」に分けられます。

基本は、プライマリパーティションです。
ほとんどのパーティションは、プライマリパーティションです。
拡張パーティションが特殊なのです。

なぜ、拡張パーティションのような特殊なパーティションが存在するかというと、
MBRパーティションテーブルに制限があるからです。
従って、拡張パーティションは、旧来のMBRディスクでのみ必要なものです。

ディスクの管理

これは「ディスクの管理」の画像ですが、
3つの「プライマリパーティション」と、1つの「拡張パーティション」、
さらに、「拡張パーティション」の中に「論理ドライブ」が1つある状態です。

なぜこうなっているのか、何が違うのか、個別に説明します。

「プライマリパーティション」とは何か

「プライマリパーティション」とは、最もシンプルなパーティションです。
何も意識せずに使っているなら、多分それはプライマリパーティションです。

MBRのパーティションテーブルには、パーティションの情報を4つまで格納できます
従って、1つのディスクに対して、4つまでプライマリパーティションを作成できます。
※ちなみに、「Windows 9x」系のOSでは、プライマリパーティションは1つしか作成できませんでした。

プライマリパーティションは、起動ドライブとして指定できます
逆に、起動ドライブに設定できるのも、プライマリパーティションだけです。
起動ドライブとして指定されたパーティションを、アクティブパーティションと言います。

なお、GPTにはこの制限はありません
パーティションテーブルに保存できる情報量が大幅に増えたからです。
作成可能なパーティションは最大128と、上限を気にしなくていいほどになっています。

「拡張パーティション」とは何か

「拡張パーティション」とは、「論理ドライブ」を格納するためのパーティションです。
箱を入れるための箱みたいなもので、
それ単体では存在価値のない、特殊なパーティションです。
プライマリパーティションとは違い、ちょっと複雑な構造をしています。
拡張パーティション自体に直接ファイルを保存することはできません。

また、拡張パーティションは、ディスクに1つしか作成できません
仮に複数の拡張パーティションを作成できたとしても、意味がありません。

先に、1つのディスクに対して、パーティションは4つまでしか作成できないと書きました。
このルールには、拡張パーティションも従います。
つまり、1つのディスクに対して、
プライマリパーティションと拡張パーティションは、合計4つまでしか作成できません

ただし、拡張パーティション内に作成できる「論理ドライブ」を用いると、
4つを超えた領域を確保することが可能となります。

「論理ドライブ」とは何か

「論理ドライブ」は、「拡張パーティション」の中に作成できるドライブです。
パーティションのようにふるまいますが、厳密には他のパーティションとは異なります。

論理ドライブは、数に制限なく作成できます
そんなに細切れにする必要があるかどうかは別として、
ドライブレターが枯渇するほど領域を作ることも可能です。

ただし、論理ドライブは、拡張パーティションの中にしか作成できません
それは、拡張パーティションという特別区域があるおかげだからです。

1つのディスクにつきパーティションを4つまでしか作成できないのは、
パーティションテーブルのデータサイズがパーティション4つ分しかないからです。
では、論理ドライブに関する情報はどこに保存されているのでしょうか?
もちろん、MBRのパーティションテーブルではありません。

論理ドライブが、拡張パーティションの中でだけ作成できるのは、
拡張パーティションと論理ドライブのブートセクタが特殊だからです。
ここから先、ちょっとややこしい話になりますので、眠たい人は読み飛ばしてください。

「拡張パーティション」と「論理ドライブ」の構造

拡張パーティションには、EBR(拡張ブートレコード)というブートセクタがあります。
別名、EPBR(拡張パーティションブートレコード)
位置的にはパーティションブートセクタっぽいんですが、内容的にはMBRに近いです。
つまり、EBRの中にパーティションテーブルがあります
論理ドライブの領域情報は、MBRではなく、EBRの中に書かれているのです。

そして、拡張パーティションの中にある論理ドライブには、
プライマリパーティションと同様、ブートセクタがあります。
拡張パーティションのEBRと、論理ドライブのブートセクタが一対になって、
はじめて1つのドライブとして認識されている
わけです。

ちなみに、論理ドライブを複数作成した場合は、
それぞれの論理ドライブの直前に、自動的にEBRが作られます。
EBRとブートセクタは、必ず一対になっています。

EBRの中には、直後の論理ドライブの領域情報と、次のEBRの位置が記されています。
つまり、拡張パーティションとは、
EBR同士を参照することで論理ドライブを特定する仕組み
なのです。

言葉だけだとわかりにくいので、図にしてみました。

拡張パーティションの模式図

拡張パーティションと論理ドライブの構造は、このようになっています。
ユーザーが作成する拡張パーティションは1つだけですが、
内部的には、論理ドライブの数だけ拡張パーティションが存在しているのと同じです。
そして、それらが入れ子になっているイメージです。

プライマリパーティションの模式図

比較対象として、プライマリパーティションの構造も図にしました。
こちらは、拡張パーティションと違って単純でわかりやすいです。

これらのパーティションとは別に、ディスクの先頭にMBRがあり、
MBRの中にあるパーティションテーブルに、各パーティションの情報が書かれています。
つまり、すべてのプライマリパーティションと、最初の拡張パーティションの情報ですね。

ちなみに、GPTディスクの場合は、パーティションの管理は文字通りGPTによって行われるので、
拡張パーティションのような特殊な構造を必要としません。
従って、GPTディスクで作成できるのは、プライマリパーティションだけです。