为什么MBR磁盘上只有四个主分区?


23

我正在CentOS.org上阅读文档

在第25.1.2节中。分区:将一个驱动器变成很多,有以下语句:

分区表分为四个部分或四个主分区。主分区是硬盘驱动器上的分区,只能包含一个逻辑驱动器(或分区)。每个部分都可以保存定义单个分区所必需的信息,这意味着分区表最多可以定义四个分区。

我不明白为什么只能有四个分区。这就是一开始的设计方式吗?真的可以只有4个主分区吗?

Answers:


36

这就是一开始的设计方式吗?真的可以只有4个主分区吗?

是的,就是这样。MBR磁盘(与GPT样式磁盘相对)前面的分区表具有非常严格的数据结构,其数据结构可以追溯到1980年代,当时空间是一种珍贵的东西。当时的设计决策方法是只允许四个分区,但允许其中一个成为“扩展”分区,该分区是指向磁盘上可能包含更多“逻辑”分区的另一个位置的指针。

(这是MBR格式化的磁盘无法使用2TB +磁盘的原因.512字节大小的群集和包含分区数的群集计数的32位字段= 2TB最大磁盘大小的相同原因.4KB的群集大小在一定程度上阻碍了该问题。 )

GPT是处理分区的更新方法,没有这些限制。


1
这也是对IDE型光盘的限制。例如,SCSI有8个,按照惯例,第三个是覆盖整个设备的重叠分区。
MadHatter支持Monica 2014年

18
@MadHatter分区表本身与存储类型无关。似乎您正在描述Solaris Slice,这是一个稍微不同的概念。
the-wabbit

3
我还没想到是这样,但是您很遗憾,我的大多数SCSI分区经验都来自Solaris。我向您鞠躬致谢,谢谢!
MadHatter支持Monica 2014年

4
实际上,扩展分区要晚得多;IBM PC DOS 2.0在1983年3月引入了MBR作为其对HDD的支持,但是直到3.3(1987年4月)才有了扩展分区
CVn 2014年

实际上,“扩展分区”只是指向另一个MBR样式的分区表,该分区表又只能包含4个条目(每个条目都可以是指向另一个分区表的扩展分区条目,该分区表也可以包含4个条目(每个分区都可以是扩展分区...))我现实中某些操作系统只允许插槽4中有扩展分区,如果有扩展分区,则插槽2和3需要为空,因此实际上,您最终会遇到以下情况:分区表的链接列表,其中主插槽位于插槽1中,并链接至插槽4中的下一个表。
JörgW Mittag 2014年

25

只有四个,因为MBR分区表的数据结构仅允许恰好四个记录来描述分区:

您可以创建其他分区表,这些表嵌套在所谓的“扩展分区”的定义中,但是其中定义的分区传统上称为“逻辑”分区。请记住,这是此特定实现的限制。其他分区类型(如GUID分区表)不共享此限制。


3

主分区是一个低级概念-与计算机的初始启动过程有关,并且基于一组定义明确的规范。因此,更改主分区的数量确实非常困难,因为许多磁盘和主板制造商必须同意实施新标准。

但是,实际上,这是一个有争议的话题-它与“引导时间”有关,从而可以从一开始就启动您的操作系统。存在扩展分区,这允许磁盘上有更多分区。但是您无法启动它们。

从根本上讲-大多数操作系统使用更多的磁盘抽象功能-逻辑卷管理器-这意味着实际的磁盘拓扑在很大程度上无关紧要。(确实,通常不希望对存储池进行分段)


1
我认为您无法启动一个系统是错误的。我认为GRUB会很高兴从扩展分区引导Linux。除此之外,我大部分都同意你的看法。
MadHatter支持Monica 2014年

但是,GRUB本身必须位于主分区上-低级引导程序启动grub,然后让您选择。
Sobrique

1
第1阶段的加载程序根本不应该位于分区上;它应该在MBR中。其余代码位于/boot分区内,正如我所说,我相信可以很高兴地成为扩展分区。
MadHatter支持Monica 2014年

很公平。我会去阅读并做作业。但是我想仍然支持这样一种情况,即虽然主分区受到限制,但该限制现在基本上不相关。
Sobrique 2014年

1
“……因为许多磁盘和主板制造商必须同意实施新标准。” 什么?怎么了 它与磁盘完全无关,甚至主板也不需要关心。主板所需要做的就是读取扇区0并执行其代码。识别分区是该代码的工作。
glglgl 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.