硬盘使用 MBR 分区的最大容量是多少?

硬盘使用 MBR 分区的最大容量是多少?

我收到了关于此事的相互矛盾的信息......

我在一个地方读到

另一方面,MBR 仅支持对最大 2 TB 的硬盘进行分区。如果您在安装和分区时使用大于 2 TB 的硬盘,则可以成功,但超过 2 TB 的空间将会丢失。例如,如果您有 2.5 TB,则 0.5 TB 将会丢失。

但是,分区大小似乎受到分区表中容量字段 32 位大小的限制。这是

(2^32)-1 x 512 字节 = 2 TB。

但由于 MBR 最多有四个主分区,每个分区最大可达 2TB,因此总共

4 x 2 TB = 8 TB

不 ?

因此,MBR 分区方案可以充分利用单个 7 TB 的硬盘,这意味着上面引用的硬盘最大限制似乎是错误的。

但是我看到互联网上多次提到 2 TB 的限制,但只有当您只分配一个分区时这才是正确的,但您最多可以有四个。

有人能解释一下吗?

答案1

但是分区大小好像受分区表中 32 位容量字段的限制,也就是 (2^32)-1 x 512 字节 = 2TB。

基本上是的,如果扇区大小是 512 字节。

但是由于 MBR 最多有四个主分区,并且每个分区最大可达 2 TB,因此总共应该是 4 x 2 TB = 8 TB。不是吗?

不是。MBR 分区表存储分区中第一个绝对扇区的 LBA,它使用 32 位来存储。对于任何分区都是如此,因此即使是最后一个分区也必须在磁盘的前 2 TiB 内开始。

维基百科

由于分区信息使用起始块地址和长度存储在 MBR 分区表中,因此理论上可以这样定义分区,即如果除一个分区外所有分区都位于 2 TiB 限制以下,并且最后一个分区指定为从 2 32 −1 块开始或接近该块,并将大小指定为最大 2 32 −1 则为具有 512 字节扇区的磁盘分配的空间总大小接近4 TiB,从而定义一个需要 33 位而不是 32 位才能访问扇区地址的分区。然而,实际上,只有某些启用 LBA-48 的操作系统 [...] 才真正支持这一点。

但是也:

对于扇区大小不是 512 字节的磁盘(例如 USB 外部驱动器),也存在限制。扇区大小为 4096 会导致使用 M​​BR 定义的分区大小增加八倍,允许分区大小最大为 16 TiB(2 32 × 4096 字节)。Windows XP 以上版本的 Windows 支持更大的扇区大小,Mac OS X 也是如此,而 Linux 自 2.6.31 或 2.6.32 以来一直支持更大的扇区大小,但引导加载程序、分区工具和计算机 BIOS 实现存在某些限制,因为它们通常硬连线为扇区缓冲区保留 512 字节,导致内存被更大的扇区大小覆盖。这也可能导致不可预测的行为,因此在兼容性和标准一致性存在问题时应避免这种情况。

相关内容