我必须专门使用 64 KB 簇大小将 SD 卡格式化为 FAT32。
这可以使用mkdosfs
, 使用 command -s 128
。它似乎按预期工作,它遵循所有与文档一致的在线帮助,并且生成的分区可用。
但是一旦分区被格式化,我就无法“读取”集群大小信息,这让我想知道如何检查集群大小是否是预期的。disks
不提供此信息。fdisk -l
不提供此信息。gparted
不提供此信息。
有没有办法在 Linux 上查询格式化 FAT32 分区的簇大小?如果格式化的分区在 SD 卡上,是否还有其他问题?
我找到了另一个解决方案,
dosfsck
.更具体地说,添加
-v
以查看 FS 详细信息,并-n
确保它不做任何其他事情,并且它提供了非常完整的描述:只需使用该
ll
命令,目录的大小将是您的块大小(Windows 中的集群大小):我的块大小是 4,096 (4K),这对于
ext4
Linux 文件系统来说是正常的。在您的情况下,它将是 64K,即使是 1 字节的文件也会在磁盘上占用 64K 字节。利用:
或者:
来源:FAT – 检测 FAT 类型 | ArchWiki
找到 FAT 文件系统的簇大小的方法不止一种:
fsck.fat
命令dosfstools
minfo
命令mtools
两者
dosfstools
和mtools
都是特定于 FAT 的实用程序。由于dosfstools
默认安装在 Ubuntu(以及许多其他发行版,我敢打赌)上,因此建议使用。事实上,mkdosfs
(akamkfs.fat
) 也来自同一个包。正如您在下面的示例中所见,dosfstools
感觉更干净,同时mtools
提供了更多低级信息。fsck.fat 示例
请注意
dosfsck
(如Cyan 的回答中所述)是指向fsck.fat
. 实际上,dosfstools
包中只有 3 个可执行文件。其他名称只是符号链接:执行以下命令:
macOS 格式的 USB 随身碟
该设备是使用 macOS 上的磁盘工具初始化的 USB 笔式驱动器。文件系统是新的(刚刚格式化)和干净的(正确卸载)。结果如下所示:
这一行告诉你集群大小是 512 字节:
Linux 格式的 USB 随身碟
这是在 Ubuntu Linux 上分区和格式化的相同 USB 笔式驱动器的结果:
这一行告诉你集群大小是 4096 字节:
以 minfo 为例
执行以下命令:
macOS 格式的 USB 随身碟
该设备是使用 macOS 上的磁盘工具初始化的 USB 笔式驱动器。文件系统是新的(刚刚格式化)和干净的(正确卸载)。结果如下所示:
这些行告诉你集群大小是 512 字节:
Linux 格式的 USB 随身碟
这是在 Ubuntu Linux 上分区和格式化的相同 USB 笔式驱动器的结果:
这些行告诉你集群大小是 4096 字节: