MBRディスクにプライマリパーティションが4つしかないのはなぜですか?


23

CentOS.orgでドキュメントを読んでいます

セクション25.1.2で。パーティション:1つのドライブを多数変換する、次のステートメントがあります。

パーティションテーブルは、4つのセクションまたは4つのプライマリパーティションに分割されます。プライマリパーティションは、1つの論理ドライブ(またはセクション)のみを含むことができるハードドライブ上のパーティションです。各セクションには、単一のパーティションを定義するために必要な情報を保持できます。つまり、パーティションテーブルで定義できるパーティションは4つまでです。

パーティションが4つしかない理由がわかりません。これは最初に設計された方法ですか?本当に4つのプライマリパーティションしか存在できないのでしょうか?

回答:


36

これは最初に設計された方法ですか?本当に4つのプライマリパーティションしかないのでしょうか?

はい、それだけです。(GPTスタイルのディスクとは対照的に)MBRディスクの前面にあるパーティションテーブルには、スペースが貴重で貴重なものだった1980年代にさかのぼる非常に厳密なデータ構造があります。当時の設計決定は、4つのパーティションのみを許可することでしたが、そのうちの1つを、より多くの「論理」パーティションを含むディスク上の別のスポットへのポインタである「拡張」パーティションにすることでした。

(これは、MBRフォーマットのディスクが2TB +ディスクで問題を起こす理由と同じ理由です。512バイトサイズのクラスター、およびパーティションサイズのクラスター数= 2TB最大ディスクサイズを含む32ビットフィールド。 )

GPTは、これらの制限のない更新されたパーティショニング処理方法です。


1
また、IDEタイプのディスクに対する制限のみです。たとえば、SCSIには8があり、慣例により3番目はデバイス全体にまたがるオーバーラップパーティションです。
マッドハッターは、モニカをサポートしています14

18
@MadHatterパーティションテーブル自体は、ストレージタイプに依存しません。Solarisスライスについて説明しているようですが、これはわずかに異なる概念です。
the-wabbit 14

3
私はそれが事実だとは思っていませんでしたが、SCSIパーティション分割の経験のほとんどがSolarisからのものであることは間違いありません。私はあなたの訂正に敬意を表し、ありがとうございます!
MADHATTERサポートモニカ

4
実際には、拡張パーティションはずっと後に来ました。IBM PC DOS 2.0は、1983年3月にHDDサポートの一部としてMBRを導入しましたが、3.3(1987年4月)まで拡張パーティションが利用可能になりませんでした
CVn

実際、「拡張パーティション」は単に4つのエントリのみを含むことができる別のMBRスタイルのパーティションテーブルを指します(各エントリは、4つのエントリを含むことができる別のパーティションテーブルを指す拡張パーティションエントリである場合があります(それぞれが拡張パーティションになる可能性があります...))現実には、一部のオペレーティングシステムではスロット4に拡張パーティションのみが許可されており、拡張パーティションがある場合は、スロット2と3を空にする必要があります。スロット1の一次及びスロット4で次のテーブルへのリンクを含むパーティションテーブルのリンクされたリスト
イェルクWミッターク

25

MBRパーティションテーブルのデータ構造では、パーティションを記述する4つのレコードのみが許可されるため、4つしかありません。

「拡張パーティション」と呼ばれるものの定義にネストされた追加のパーティションテーブルを作成できますが、そこに定義されているパーティションは従来「論理」パーティションと呼ばれます。これはこの特定の実装の制限であることに注意してください。GUIDパーティションテーブルなどの他のパーティションタイプは、この制限を共有しません。


3

プライマリパーティションは低レベルの概念です。これは、マシンの初期ブートプロセスに関係しており、明確に定義された一連の仕様に基づいています。したがって、多くのディスクメーカーとマザーボードメーカーが新しい標準の実装に同意する必要があるため、プライマリパーティションの数を変更することは非常に困難です。

しかし実際には、これは重要なポイントです。OSを最初に起動するための「ブート時間」に関連がありますが、それだけです。拡張パーティションが存在し、ディスク上のパーティションを増やすことができます。ただし、起動できませんでした。

より根本的に-ほとんどのオペレーティングシステムは、より多くのディスク抽象化で動作します-論理ボリュームマネージャ-つまり、実際のディスク上のトポロジはほとんど無関係です。(実際、ストレージのプールをセグメント化することは望ましくないことがよくあります)


1
起動できないのは間違っていると思います。GRUBは拡張パーティションからLinuxを喜んでブートすると思います。それ以外は、ほとんどあなたに同意します。
MADHATTERサポートモニカ

ただし、GRUB自体はプライマリパーティション上に存在する必要があります。低レベルのブートストラップがgrubを起動し、それを選択できます。
Sobrique

1
ステージ1ローダーはパーティションに配置しないでください。MBRにある必要があります。残りのコードは/bootパーティション内に存在しますが、私が言うように、それは喜んで拡張パーティションになり得ると信じています。
MADHATTERサポートモニカ

けっこうだ。読んで宿題をします。しかし、プライマリパーティションが制限されている場合でも、その制限は今ではほとんど無関係であるというケースをまだサポートしていると思います。
Sobrique

1
「...多くのディスクメーカーとマザーボードメーカーが新しい標準の実装に同意する必要があるためです。」何?どう?ディスクとはまったく無関係であり、メインボードでさえ気にする必要はありません。メインボードが行う必要があるのは、セクター0を読み取り、そのコードを実行することだけです。パーティションを認識することは、そのコードの仕事です。
glglgl 14

0

私がパーティーに遅れているかどうかはわかりませんが、ここにあります:

パーティションテーブルのサイズは64バイトになるように設計されており、各パーティションテーブルは16バイトです。16 * 4 =64。したがって、パーティションテーブルの他のエントリ用のスペースはありません。

これを回避するために、4番目のエントリには、他の拡張パーティションへの順次ポインタを持つことができる拡張パーティションエントリのプロビジョニングがあります。

https://docs.microsoft.com/en-us/windows/win32/fileio/basic-and-dynamic-disks

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.