Cya*_*yan 6 format fat32 sd-card
我必须专门使用 64 KB 簇大小将 SD 卡格式化为 FAT32。
这可以通过mkdosfs使用命令来实现-s 128。它似乎按预期工作,它遵循与文档一致的所有在线帮助,并且生成的分区可用。
但是,一旦分区格式化,我就无法“读取”簇大小信息,这让我想知道如何检查簇大小是否是预期的大小。disks不提供此信息。fdisk -l不提供此信息。gparted不提供此信息。
有没有办法查询 Linux 上格式化的 FAT32 分区的簇大小?如果格式化的分区位于SD卡上,是否还有其他问题?
我找到了另一个解决方案,dosfsck.
更具体地说,添加-v以查看 FS 详细信息,并-n确保它不会执行任何其他操作,并且它提供了相当完整的描述:
> sudo dosfsck -v -n /dev/sde1
fsck.fat 4.1 (2017-01-24)
Checking we can access the last sector of the filesystem
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
Automatically removing dirty bit.
Boot sector contents:
System ID "mkfs.fat"
Media byte 0xf8 (hard disk)
512 bytes per logical sector
65536 bytes per cluster
128 reserved sectors
First FAT starts at byte 65536 (sector 128)
2 FATs, 32 bit entries
15663104 bytes per FAT (= 30592 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 31391744 (sector 61312)
Run Code Online (Sandbox Code Playgroud)
只需使用ll命令,目录的大小将是您的块大小(Windows 中的集群大小):
$ ll /
total 40972
drwxr-xr-x 25 root root 4096 Apr 8 16:30 ./
drwxr-xr-x 25 root root 4096 Apr 8 16:30 ../
drwxr-xr-x 2 root root 4096 Mar 31 16:44 bin/
drwxr-xr-x 4 root root 4096 Apr 8 16:32 boot/
drwxrwxr-x 2 root root 4096 Aug 2 2018 cdrom/
Run Code Online (Sandbox Code Playgroud)
我的块大小是 4,096 (4K),这对于ext4Linux 文件系统来说是正常的。在您的情况下,它将是 64K,甚至 1 字节的文件也会在磁盘上占用 64K 字节。