我对 MBR 2TB 限制有点困惑。它是指系统的总存储量还是仅指启动分区?假设我在主分区的 500GB 磁盘上安装了 32 位 Windows 7,还有三张 1TB 的磁盘,每张都格式化为逻辑分区,全部是 MBR,没有 4k,内置,没有 USB。这种配置可以正常工作吗?
答案1
根据Microsoft Technet 博客2TB 驱动器大小有三种不同的限制:
- 分区大小
- 聚类数
- 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 的硬盘。