初めてパーティションの操作をしようとした時に、
まず引っかかる疑問が、
「プライマリパーティション」、「拡張パーティション」とは何かということだと思います。

容量とか、ファイルシステムなんてのは、
パーティションの操作以前に、いろんなところで目にしますから、
ある程度予備知識があることが多いです。

ところが、「プライマリパーティション」と「拡張パーティション」については、
文字通りパーティションの種類なので、
パーティションに関する操作をする時に、初めて目にする場合が多いのです。

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

とはいえ、一気に書いてしまうと余計わけがわからなくなると思うので、
基本的なことから順に説明していこうと思います。

「パーティション」とは

「プライマリパーティション」、「拡張パーティション」の前に、
まず「パーティション」について触れておきます。

「パーティション」とは、“間仕切り” のことです。
事務所のついたてのこともパーティションと呼んだりしますよね。
パソコン用語で一般的に言うパーティションとは、
ハードディスク等の記憶装置内に設けられた、データ上の間仕切りのことを言います。

データ上の間仕切りであるパーティションには、いろいろなルールがあります
それぞれのパーティションがデータとして意味を持つためには、
単純に区切るだけではなく、一定のルールに従う必要があるのです。

パーティションに関する最も基本的なルールは、
「1つの記憶装置に対し、パーティションは4つまでしか作成できない」というものです。
これは、MBRにあるパーティションテーブルが、
パーティションの情報を4つまでしか格納できないため
です。
そもそもMBR自体が、たった1セクタ分のデータでしかないので、
パーティションテーブルに保存できるデータ量にも限りがあるのです。

後述する「論理ドライブ」とか、特殊なものもあるんですが、
基本的に、「1つのハードディスク内にパーティションは4つまで」と憶えておいてください。

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

「プライマリパーティション」は、最も原始的なパーティションです。

先のパーティションのルールに従って、
1つのハードディスクに対し、4つまでプライマリパーティションを作成することができます。
※ちなみに、「Windows 9x」系のOSでは、プライマリパーティションは1つしか作成できませんでした。

プライマリパーティションは、起動ドライブとして指定することができます
逆に、起動ドライブとして設定できるのも、プライマリパーティションだけです。

「アクティブ」なプライマリパーティションについて

起動ドライブとして指定されたプライマリパーティションを、
「アクティブ」なプライマリパーティションと言います

Windowsがインストールされているパーティションのように、
起動ドライブとしてはたらかなければならないパーティションは、
「アクティブ」に設定する必要があります。
アクティブなプライマリパーティションが存在しないハードディスクからは、
たとえWindowsがインストールされていたとしても、起動できません

BIOSがハードディスクを読みにいった時、一番初めに読み込まれるパーティションが、
アクティブなプライマリパーティションです。
アクティブかアクティブじゃないかの違いしかないので、
1つの記憶装置につき、アクティブなプライマリパーティションは1つだけしか設定できません
2番目はありません。

通常、Windowsがインストールされているパーティションは、
自動的にアクティブになっているはずです。

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

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

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

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

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

「論理ドライブ」とは

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

論理ドライブは、数に制限なく作成できます
そんな細切れにする必要があるかどうかは別として、
ドライブレターが枯渇するほど領域を作成することも可能です。
ただし、論理ドライブは拡張パーティションの中にしか作成できません
それは、拡張パーティションという特別区域があるおかげだからです。

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

論理ドライブが、拡張パーティションという特別区域の中でだけ作成できるということは、
拡張パーティションと論理ドライブのブートセクタが特殊だということを意味しています。

ここから先、ちょっとややこしい話になってきますので、眠たい人は読み飛ばしてください。

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

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

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

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

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

言葉だけでの説明では限界にきているので、説明用の図を作ってみました。

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

比較対照として、プライマリパーティションの構造の模式図も作ってみました。
こちらは、拡張パーティションとは違って単純です。

これらのパーティションとは別に、記憶装置の先頭セクタにMBRがあり、
MBRの中にあるパーティションテーブルに、各パーティションの情報が書かれています。