根据微软:
对于高级格式 4K 原生驱动器(每扇区 4 KB)驱动器,最小大小为260 兆,这是由于 FAT32 文件格式的限制。FAT32 驱动器的最小分区大小计算为扇区大小 (4KB) x 65527 =256 MB。
我有点懒得去研究 FAT32 文件系统格式的规格。我只想问一个简单的问题:为什么最小分区大小不是 256 MiB 而是 260 MiB?额外的 4 MiB 有什么用?
编辑:我用我的 512 字节(可能是模拟)SSD 进行了测试。diskpart.exe
拒绝将 32MiB 分区格式化为 FAT32。甚至 35MiB 分区也无法格式化。它只接受 36MiB 作为格式化的最小大小。
答案1
实际最小大小为 65595 × 4 KB = 268677120 字节 = 256.23046875 MB。在 Linux 上尝试以下操作:
truncate -s $((65595*4096)) diskfile
mkfs.fat -F 32 -a -f 1 -h 0 -R 2 -s 1 -S 4096 diskfile
如果你将 65595 更改为 65594,它会报告WARNING: Not enough clusters for a 32 bit FAT!
FAT 分区必须至少有 65527 个簇,并且您需要更多扇区来存储元数据。元数据块的数量取决于格式化工具,例如您可以在上面的命令中看到:
-a
:禁用对齐以缩小尺寸-f 1
:仅创建 1 个 FAT 表,而不是 2 个-h 0
:无隐藏扇区-R 2
:仅 2 个保留扇区
使用 Windows 中的默认格式化选项,最小大小将大于该值,然后您需要将数字四舍五入为某个更好的值,以进行对齐和各种原因。4 MB 的倍数是一个好数字,所以我猜这就是 MS 选择 260 MB 的原因。这就是为什么 512 字节扇区磁盘为 36 MB
请注意,这些限制只是人为的,而不是 FAT32 中的实际限制。例如,Windows 格式化程序无法格式化大于 32 GB 的 FAT32 分区,但其他第三方格式化程序可以,尽管拥有如此巨大的 FAT32 分区并不是一个好主意
简而言之,这可能是因为 MS 工具选择 FAT32 分区的最小大小为 65527 个簇以上的 4 MB 的下一个倍数,最大大小为 32 GB