为什么 FAT32 仅限于不到 2^28 个簇?

QMo*_*ord 31 hard-drive filesystems fat32 partitioning fat16

对于 FAT16,当您的最大簇大小为 32K 时,最大分区大小为 2GB。

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

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

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

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

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

在 XP TechNet 文章中,微软表示

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

这将最大簇大小设置为 2 28 - 11。

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

Jos*_*osh 50

FAT32 仅使用 28 位而不是 32 位。四位“保留供将来使用”。

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

参考

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

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

  • 这就是“未来”的通常含义。 (57认同)
  • @Pacerier 欢迎使用软件。最好有回旋余地来减轻任何意外! (13认同)
  • @Pacerier:FAT32 只有 20 岁... (6认同)
  • 很好 :D 这正是我试图找出的。此外,谷歌搜索 FAT28 表明,尽管它们“保留以备将来使用”,但它们从未被实际使用过。 (3认同)
  • @RussellBorogove,即使在 40 年后? (2认同)
  • 并不是为了推广 NTFS。这是因为大型 FAT 卷上的集群空闲。 (2认同)