文件系统FAT32与NTFS

FAT32[1]

微软在1980年推出了文件系统FAT,并且多年来一直在更新它。 随着磁盘存储量的增加,改进FAT系统的需求导致了FAT-12,FAT-16和FAT-32。 尽管微软为现代计算系统引入了NTFS,但大多数存储卡,通用串行总线(USB)驱动器和其他可移动介质仍使用FAT-32,因为NTFS更复杂并占用大量磁盘空间。

1.文件分配
FAT-32中的文件分配是一个两步过程。首先,将文件分配给目录/文件夹。如果分配的目录/文件夹是驱动器的根目录,则文件名存储在根目录条目中,否则,必须解析根目录条目以查找最终目录路径中的目录该文件已分配给。除文件名外,文件条目还包含文件的起始簇号。起始簇号表示文件内容开始的簇。实际上,附加信息(包括访问,创建和修改时间戳以及长文件名)也存储在目录条目中。要检索文件,文件系统会查看起始集群,然后转到文件分配表中的起始集群索引。 FAT可以被认为是指向文件的下一个簇的簇号阵列。因此,在检索文件时,文件系统将转到FAT中的起始集群索引,并获取该文件的下一个集群编号。该集群又可以指向另一个集群。重复该过程,直到簇具有指示文件结束(EOF)的十六进制值“FF”。然后,文件系统可以通过读取磁盘上的实际群集来检索文件。
一个例子是创建一个名为“recovery.txt”的文件,它需要五个集群来存储其内容。 文件系统可能会发现群集号300是文件应该开始存储的位置。 如图1所示,“recovery.txt”的根条目表示文件的起始簇显示为簇号300.文件系统将剩余的簇存储在簇号301,302,305和306中并使 对FAT的适当更改。 注意,簇303和304用于存储另一个文件“hello.txt”。在这里插入图片描述用于文件的FAT文件分配称为recovery.txt,其存储在群集300,301,302,305和306中。文件hello.txt存储在群集303和304中

2.删除
删除文件时,文件系统实际上不会转到文件的簇并将它们清零。 相反,所有文件系统都会转到FAT中的群集链接,并将它们设置为十六进制值“00”,表示群集已被取消定位。 删除后仍然存在驱动器的实际内容。 有趣的是,虽然已删除文件的每个群集的FAT群集条目都指示为未分配,但文件的目录条目仍指向起始群集,并使用特殊字符标记此条目表示 删除的文件。
下图显示了删除recovery.txt时FAT发生的情况。 由FAT中的文件表示的集群更改为零以指示可用性,但是,还没有删除recovery.txt的实际集群内容。 名称的第一个字节也在文件入口目录中更改,以表示该文件已被删除。
FAT文件删除文件名为recovery.txt,存储在群集300,301,302,305和306中。表示群集的FAT索引设置为0,表示它们现在可供使用。 文件hello.txt未删除。

3.恢复
由于FAT中的簇序列在文件删除时设置为十六进制值“00”(未分配),因此恢复程序必须检查文件起始簇是否未被使用,然后假设文件的其余部分存储在顺序集群。删除文件后,绝对无法确定仅使用文件系统元数据重建文件的集群的确切顺序。在使用recovery.txt的示例中,传统的文件恢复程序将找到“_ecovery.txt”的条目,并看到已删除文件的起始集群为300.某些恢复程序将仅恢复部分文件(集群) 300,301,302),而更智能的文件恢复程序能够恢复整个文件,因为他们看到群集303和304正被另一个文件使用,并且群集305和306可用,因此他们将合并未分配的仅集群。但是,如果文件被分解为多个部分,或者存在属于另一个文件的未分配的集群,会发生什么?例如,如果删除hello.txt和recovery.txt,则在不分析文件的内容或结构的情况下,文件恢复会变得更加困难。

**

NTFS

**
FAT-32虽然比早期版本的FAT有所改进,但不支持大于4 GB的文件。 另一个限制是确定FAT的可用空间随着系统中簇数量的增加而增加的时间。 最后,FAT的所有版本都不提供增强的安全功能和对元数据的支持。 因此,Microsoft在1993年将NTFS与Windows NT一起引入,作为其现代操作系统的首选文件系统。
1.文件分配
在NTFS中,文件信息存储在B-Tree中,但是,与FAT不同,NTFS具有称为位图(BMP)的单独结构,以表示群集的分配状态。 在表示集群的BMP文件($ bitmap)中,如果每个集群属于现有文件,则为其分配值1,否则为0。 通过解析BMP,NTFS能够快速确定放置文件的最佳位置以防止碎片。 此外,就像在FAT中一样,NTFS存储文件群集链接。
2.缺失
删除文件时,BMP中的关联集群将设置为零。 同样,就像在FAT中一样,删除文件时不会删除实际数据。 与FAT不同,文件群集链接也不会被删除,因此如果存在删除的文件条目,则原始群集链接也仍然存在。 这使得NTFS中的恢复变得更加容易,因为表示文件的完整群集链接仍然存在。 群集简单地显示为在$ bitmap文件中解除分配。
3.恢复
在NTFS中,当文件条目仍然存在时,文件恢复非常简单。 这是因为文件的簇编号也应该存在,所有需要做的就是验证文件的簇没有被覆盖,或者没有被分配给另一个文件。 在文件系统损坏或删除了删除的文件条目的情况下,文件系统元数据不能用于恢复。

术语的定义

术语 描述
cluster 这是可以写入磁盘的最小数据单元的大小,并且会在访问顺序中删除正在编号的群集。
HEADER 包含文件起点的集群
FOOTER 包含文件结束数据的集群
碎片(FRAGMENT) 碎片被认为是一个或多个不同时连接到同一文件的其他群集的文件的群集。 碎片文件被认为有两个或更多片段(这些片段中的一个或多个可能不会出现在光盘上)。 每个文件的碎片都被认为是由未知数量的群集彼此分开的。
BASE-FRAGMENT 包含头部作为其第一个集群的文件的起始片段。
碎片点(Fragmentation Point) 这是在碎片发生之前属于文件的最后一个集群。 如果文件有多个碎片,则可能存在多个碎片点。
碎片区域(FRAGMENTATION AREA) 一组一致的集群,按11,按12,按13. . . 包含碎片点。

[1]: Anandabrata Pal, Nasir Memon. The Evolution of File Carving.2009.

猜你喜欢

转载自blog.csdn.net/weixin_42348105/article/details/86136267