我可以使用什么文件系统工具来显示 FAT 卷的详细信息?
我没有丢失数据,不需要数据取证级别的详细信息,也不需要更改 FAT 卷上的任何内容。我只想打印出如下数据:
- 该卷上使用的 FAT 类型(FAT12、FAT16、FAT32),
- 卷上使用的文件分配表的数量,
- 每个扇区的字节数,
- 每簇块大小的字节数,
- 每簇扇区数,
- 根目录条目的数量限制。
FAT64(又名 ExFAT)支持会很好。FreeBSD、Linux、MacOS X 或 Windows 上的任何可用版本都可以。
我尝试在网上搜索该主题,但得到的都是假阳性结果,主要是针对超重人群的工具(FAT 一词)以及如何格式化任何大小的 FAT 卷或如何增加 FAT 卷的说明。还发现了一些用于操作 FAT 文件系统映像的 github 项目,但它们没有显示我想要的详细信息,而是允许数据恢复或文件系统更改。Windows 上的 Fsutil 和 FreeBSD 上的 gpart 不提供我想要的 FAT 详细信息(或者至少我没有找到它如何提供这些信息)。
如果您知道任何提供上述 FAT 详细信息的内置 OS 工具或第三方实用程序,请给我指点!
答案1
Linux 上的 dosfstools fsck.fat
(可能fsck.vfat
在旧版本的软件包中调用) 显示与 MS-DOS 上的 chkdsk 类似的信息:
# fsck.fat -v -n /dev/sda1
fsck.fat 4.2 (2021-01-31)
Boot sector contents:
System ID "mkfs.fat"
Media byte 0xf8 (hard disk)
512 bytes per logical sector
4096 bytes per cluster
32 reserved sectors
First FAT starts at byte 16384 (sector 32)
2 FATs, 32 bit entries
524288 bytes per FAT (= 1024 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 1064960 (sector 2080)
130812 data clusters (535805952 bytes)
63 sectors/track, 255 heads
2048 hidden sectors
1048576 sectors total
/dev/sda1: 8 files, 1341/130812 clusters
GNU mtools 诞生于 Linux 与 MS-DOS 双启动的时代,因此它坚持使用 DOS 风格的驱动器号(必须在 中预先定义/etc/mtools.conf
)。不过 -i 选项minfo -i /dev/sdb1 ::
可能有效。
# cat /etc/mtools.conf
drive a: file="/dev/sda1" exclusive
drive b: file="/dev/sdb1" exclusive
# minfo -v b:
device information:
===================
filename="/dev/sdb1"
sectors per track: 63
heads: 255
cylinders: 66
media byte: f8
mformat command line: mformat -T 1048576 -h 255 -s 63 -H 0 b:
bootsector information
======================
banner:"mkfs.fat"
sector size: 512 bytes
cluster size: 8 sectors
reserved (boot) sectors: 32
fats: 2
max available root directory slots: 0
small size: 0 sectors
media descriptor byte: 0xf8
sectors per fat: 0
sectors per track: 63
heads: 255
hidden sectors: 2048
big size: 1048576 sectors
physical drive id: 0x80
reserved=0x0
dos4=0x29
serial number: 3F14F81D
disk label="NO NAME "
disk type="FAT32 "
Big fatlen=1024
Extended flags=0x0000
FS version=0x0000
rootCluster=2
infoSector location=1
backup boot sector=6
Infosector:
signature=0x41615252
free clusters=130811
last allocated cluster=2
exFAT 不是“又名”FAT64。(微软,其作者,将其命名为“exFAT”——因此它是“exFAT”。)它与原始 FAT 有很大不同,不仅有自己的名称,而且还有不同的工具。
有两个用于 exFAT 的 Linux 工具集 - exfat-utils(较旧,基于 FUSE 的免费驱动程序的一部分)和 exfatprogs(较新,我相信由三星维护)。
exfat-utils 有dumpexfat
:
$ dumpexfat /tmp/exfat.img
Volume label
Volume serial number 0x765cf1c4
FS version 1.0
Sector size 512
Cluster size 4096
Sectors count 262144
Free sectors 261728
Clusters count 32720
Free clusters 32716
First sector 0
FAT first sector 128
FAT sectors count 256
First cluster sector 384
Root directory cluster 5
Volume state 0x0000
FATs count 1
Drive number 0x80
Allocated space 0%
类似地,exfatprogs 附带dump.exfat
:
$ dump.exfat /tmp/exfat.img
exfatprogs version : 1.1.0
-------------- Dump Boot sector region --------------
Volume Length(sectors): 262144
FAT Offset(sector offset): 128
FAT Length(sectors): 256
Cluster Heap Offset (sector offset): 384
Cluster Count: 32720
Root Cluster (cluster offset): 5
Volume Serial: 0x765cf1c4
Sector Size Bits: 9
Sector per Cluster bits: 3
----------------- Dump Root entries -----------------
Volume entry type: 0x3
Volume label:
Volume label character count: 0
Bitmap entry type: 0x81
Bitmap start cluster: 2
Bitmap size: 4090
Upcase table entry type: 0x82
Upcase table start cluster: 3
Upcase table size: 5836
---------------- Show the statistics ----------------
Cluster size: 4096
Total Clusters: 32720
Free Clusters: 32716