为什么在 Windows 操作系统中 FAT32 格式卷的最大文件大小为 4GB?

为什么在 Windows 操作系统中 FAT32 格式卷的最大文件大小为 4GB?

文件分配表 (FAT) 的大小取决于簇数、使用的版本、使用的卷大小。例如,大小为 8GB 且格式化为 FAT32 的卷,簇大小为 4096 字节,则有 2^21 个簇。现在 FAT 的大小为number of clusters * address size of a cluster。每个簇的地址大小是存储地址所需的位数。现在,由于它是 FAT32,因此它将是32位。因此 FAT 的大小为2^21 * 4(in bytes)= 2^23 bytes。FAT 中的最大簇地址数为 2^28,因为其中 4 位用于特殊用途。

4GB 的文件将跨越 2^20 个簇。可用的簇总数为 2^21 现在,如果我们看到任何文件(大小为 4GB),则文件数据开始的第一个簇号将在根目录中可用(如果该文件位于根目录中)。并且可以从文件分配表 (FAT) 获得链接到第一个簇(文件所在的位置)的其他簇。那么问题是什么,我们有 2^21 个簇,而 4GB 大小的文件需要 2^20 个簇。它应该能够存储它。为什么不呢?

以上信息是根据我所知道的信息得出的。

答案1

最有可能的原因是每个文件都由其目录条目定义,该目录条目具有 32 位值“文件大小(以字节为单位)”,请参阅: https://en.wikipedia.org/wiki/Design_of_the_FAT_file_system#Directory_entry

我想您可以从技术上创建一个包含更多数据的文件,但您的文件系统将格式错误,并且其行为未定义。

相关内容