"Not enough clusters for a 16 bit FAT",但我超过了最小尺寸。为什么?

"Not enough clusters for a 16 bit FAT", but I'm above minimum size. Why?

我正在尝试在我的 Ubuntu 上制作 FAT16 文件系统。

因此,我首先使用 dd if=/dev/zero of=Fat16.bin bs=1024 count=8192 创建文件。

这将创建一个全为零的 8MB 文件。

然后,我通过发出以下命令将此文件格式化为 FAT16 文件系统:mkfs.vfat -f2 -n FAT16 -r 224 -s8 -S512 -F16 Fat16.bin

但这给了我以下错误。

WARNING: Not enough clusters for a 16 bit FAT! 
The filesystem will be misinterpreted as having a 12 bit FAT without mount option "fat=16"

就我而言,FAT16 文件系统的最小大小是 4MB,所以我不明白这里发生了什么。

可能就是它所说的 - Not enough clusters for a 16 bit FAT。 我想可以计算出所需的 space ,但是尝试例如16Mb 不会导致此警告:

$ dd if=/dev/zero of=Fat16.bin bs=$((1024*1024)) count=16
16+0 records in
16+0 records out
16777216 bytes (17 MB) copied, 0.0561285 s, 299 MB/s

$ mkfs.vfat -v -f2 -n FAT16 -r224 -F16 Fat16.bin
mkfs.fat 3.0.26 (2014-03-07)
Fat16.bin has 64 heads and 32 sectors per track,
hidden sectors 0x0000;
logical sector size is 512,
using 0xf8 media descriptor, with 32768 sectors;
drive number 0x80;
filesystem has 2 16-bit FATs and 4 sectors per cluster.
FAT size is 32 sectors, and provides 8171 clusters.
There is 1 reserved sector.
Root directory contains 256 slots and uses 16 sectors.
Volume ID is 30bd4358, volume label FAT16      .

我找到了答案,

https://staff.washington.edu/dittrich/misc/fatgen103.pdf(参见 "FAT Type Determination")簇数必须介于 4085 <=> 65525 之间才能格式化有效的 FAT16 分区。所以分区必须足够大才能存储4085个簇+FAT表等元数据信息。