MBR 2TB 限制 - 总存储量还是每个磁盘的存储量?

MBR 2TB 限制 - 总存储量还是每个磁盘的存储量?

我对 MBR 2TB 限制有点困惑。它是指系统的总存储量还是仅指启动分区?假设我在主分区的 500GB 磁盘上安装了 32 位 Windows 7,还有三张 1TB 的磁盘,每张都格式化为逻辑分区,全部是 MBR,没有 4k,内置,没有 USB。这种配置可以正常工作吗?

答案1

根据Microsoft Technet 博客2TB 驱动器大小有三种不同的限制:

  1. 分区大小
  2. 聚类数
  3. SCSI 粘性

分区大小 主引导记录 (MBR) 存储不同磁盘分区的位置。分配给指针/偏移量的字节数为 4(32 位)。这意味着 MBR 分区表中可以存储的最高值为:

FFFFFFFFh     - hexadecimal
4294967295d   - decimal

此最大分区大小不是以字节为单位,而是以扇区数为单位。由于当前扇区限制为 512 字节,因此最大大小最终为 2 TB。

4,294,967,295 个扇区 * 512 字节/扇区 = 2,199,023,255,040 字节或 2TB。

聚类数

第二个限制更难发现。这是 NTFS 的限制。无论如何,NTFS 都限制为 (2^32 -1) 个簇。可能的最小簇大小为 512 字节(1 个扇区)。因此,再次计算得出 2,199,023,255,040 或 2TB。

(2^32)-1 = (4,294,967,296)-1 = 4,294,967,295 个集群

4,294,967,295 个簇 * 512 字节/簇 = = 2,199,023,255,040 字节或 2 TB

SCSI 狗

这是迄今为止最难理解的,因为它需要一些基本的 SCSI 知识。在读写方面,Microsoft Windows 操作系统支持两种不同的 SCSI 标准。还有第三种标准,但它非常古老,主要用于磁带设备。所以让我们忘掉那一种,只关注相关的两种。

这两个标准分别是 Read10/Write10 和 Read16/Write16。这都与 CDB(命令描述符块)的结构方式有关。

Read10/Write10 – 此标准保留字节 2-5 来定义 LBA(逻辑块地址)。将 LBA 视为扇区号……这样更容易理解。因此,我们有 4 个字节可以定义可寻址扇区。就像在“分区大小限制”中一样,我们又回到了处理用于定义驱动器上所有地址的 4 字节数字。

FFFFFFFFh     - hexadecimal
4294967295d   - decimal

和之前一样,上面只是可能的地址数量(扇区数量)。乘以 512 字节的标准扇区大小,我们得到...

4,294,967,295 个扇区 * 512 字节/扇区 = 2,199,023,255,040 字节或 2TB。

这意味着由于 Windows 使用 Read10/Write10 标准,因此支持的最大驱动器为 2TB。术语在这里很关键;驱动器的上限为 2TB;卷可以更大(跨多个磁盘)。

解决方案

一种解决方案是使用多个 2TB 驱动器和单个卷,这样可以存储大文件(>2TB)。

绕过分区大小限制的第二种方法是使用 GPT(Guid 分区表)配置。在 Windows 2003 SP1 中,Microsoft 引入了 GPT 实现。配置为 GPT 而非 MBR 样式的磁盘将具有32 部门分区阵列,而不是一个微小的64 字节分区表。

更多信息Windows 支持大于 2TB 的硬盘

相关内容