为什么 FAT32 限制为略低于 2^28 个簇?

为什么 FAT32 限制为略低于 2^28 个簇?

使用 FAT16 时,当最大簇大小为 32K 时,最大分区大小为 2GB。

这是通过将可寻址单元的数量乘以集群大小来计算的。

(2 16分配单元)*(2 15字节/簇)= 2 GiB

然而,对于 FAT32,当我进行相同的计算时,得到的数字比使用 2 个32簇时的最大值 8 TiB 大得多。

(2 32分配单元)*(集群大小)

如果我使用 512 字节的簇大小,那么我已经达到 2 TiB。

在 XP TechNet 文章中,Microsoft

FAT32 卷上可能的最大簇数为 268,435,445,每个簇的最大大小为 32 KB,另外还有文件分配表 (FAT) 所需的空间。

这使得最大簇大小为 2 28 - 11。

为什么 FAT32 中的最大簇数是 2 28 -11 而不是 2 32,而 FAT16 中的最大簇数是 2 16

答案1

FAT32仅使用 28 位,而不是 32 位。其中四位“保留以备将来使用”。

因此,一个FAT32分区的最大簇数为 268,435,455(2 28 -1)

参考

尽管 VFAT 是一个聪明的系统,但它并没有解决 FAT16 的局限性。因此,Windows 95 OSR2 中出现了一个新的文件系统(而不仅仅是 VFAT 那样更好的 FAT 管理)。这个文件系统称为 FAT32,它对 FAT 条目使用 32 位值。实际上,只使用了 28 位,因为保留了 4 位以备将来使用。

随着 FAT32 文件系统的出现,每个分区的最大簇数从 65535 增加到 268,435,455(2 28 -1)。因此,FAT32 允许更大的分区(最多 8 TB)。尽管 FAT32 分区的最大理论大小为 8 TB,但 Microsoft 已自愿将其在 Windows 9x 系统上限制为 32 GB,以推广 NTFS

相关内容