《NTFS文件系统扇区存储探秘》——1.4 文件分配表FAT

本节书摘来自异步社区《NTFS文件系统扇区存储探秘》一书中的第1章,第1.4节,作者:宋群生 , 宋亚琼著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 文件分配表FAT

NTFS文件系统扇区存储探秘
FAT文件系统在管理磁盘上的用户文件时,使用了文件分配表的管理方式。不过系统引导所需要的数据,不在文件分配表的管理范围之内。在这一点上与NTFS文件系统的存储方式是完全不相同的,NTFS文件系统将磁盘上的所有事物都看作文件,不管是用户的还是系统的。

文件分配表在FAT文件系统中占有非常重要的地位,对文件的所有操作,包括读、写、修改和复制,都要依赖于文件分配表中的有关记录。正因为如此,当初设计者将文件分配表作了两份相同的拷贝存储在磁盘上。

1.4.1 扇区分簇管理
操作系统或应用程序在将数据写入一个磁盘文件时,必须在磁盘上找到可以使用的未用扇区。反过来要将数据从磁盘文件中读出时,也要在磁盘上找到已经储存了相应数据的有关扇区。要查找扇区必须知道扇区的地址,文件分配表FAT就是记录扇区地址的。

因为硬盘的扇区非常多,如果将每个扇区的地址都记录在文件分配表里,势必造成文件分配表体积庞大,查找时效率将会很低。为解决这个问题,采用了将扇区分组管理的方法。分组的过程称作扇区分簇,是由高级格式化程序在格式化磁盘时完成的。

扇区分簇以后,将每个簇的地址记录到文件分配表FAT里去。由于一个簇能包含很多扇区,所以文件分配表的体积减小了,查找的速度就提高了。

一个簇能包含多少扇区,是由文件系统和分区的大小决定的,在使用FAT16和FAT32两种文件系统时,分区大小和簇大小以及每簇扇区数的关系见表1-4。
screenshot

1.4.2 簇链和文件检索过程
当使用一个新格式化的逻辑驱动器时,文件数据存放的簇号是连续的。使用一段时间以后,由于经常对文件进行删除、拷贝和修改操作,每个文件分配的簇号就不一定是连续的了。为了确保在存取文件时能够检索到所有连续或不连续的扇区地址,文件分配表采用了“簇链”的记录方式。

当需要从磁盘上读取一个文件时,首先从文件目录表中找到该文件的目录登记项。继而从目录登记项的有关字段,查到分配给该文件的第一个簇号,根据第一簇号的内容可以计算出两组数据。

其中一组数据指出了文件在数据区DATA里的第一簇扇区首地址,从第一簇扇区首地址开始,数据是连续存放的,连续存放多少个扇区由分区格式和分区大小决定,表1-4中列出了它们的对应关系。

另外一组数据指出了FAT表内簇登记项的地址,如果其值是结束标志“ffffH”(FAT16格式)或“0fffffffH”(FAT32格式),说明文件至此已经结束。如果不是结束标志,则该登记项的值为第二个簇号,据此又可以计算出两组数据,继而确定文件在数据区里第二簇扇区首地址和FAT表内第二个簇登记项的地址。

继续重复上面的过程,就可以得到文件在DATA区里的全部数据,以及文件在FAT表里所有簇登记项的地址。

详细了解文件数据存取的全过程,就可以从遭到破坏、不能启动的硬盘上,利用读取物理硬盘扇区的工具程序把文件数据读出来。

当需要在磁盘上建立一个新文件时,首先顺序检索FAT表,找到第一个可用簇,可用簇登记项的值为“0000H”(FAT16)或“00000000H”(FAT32)。将该簇作为起始簇,写入文件目录表FDT的相关登记项的起始簇字段中。然后继续检索后面的可用簇,找到以后将其簇号写入第一个可用簇项内。

按照以上过程进行下去,将满足文件长度所需的簇数全部找到。使每一个簇项的值指向下一个所需簇项,在最后的簇登记项内写入结束标志“ffffH”(FAT16)或“0fffffffH”(FAT32),于是一条能够检索整个文件的“簇链”就形成了。

当需要对文件进行扩展时,先检索FAT表,找到1可用簇。将簇项的内容置为结束标志,并将文件原来的最后簇项值修改为指向此可用簇。以此类推,直到满足文件的全部扩展要求。

当删除文件时,除了将文件目录表中登记项的第1字节改为e5H,还要把该文件在FAT表的“簇链”中所对应的簇项全部清零,这些被清零的簇项又可以供其他文件使用。不过在删除文件的操作结束以后,目录登记项的其他字段仍然保存完好,只是文件名的第1字节变成了e5H,并且文件存储在扇区里的所有数据仍然存在。这时只要FAT表中被清零的簇项没有被新文件使用,就可以运行相关软件恢复被删除的文件。

FAT表记录了磁盘文件对磁盘使用情况的信息,其中包含所有未分配的、已分配的或标记为坏的盘簇的信息。

FAT表只记录磁盘文件对磁盘的占用信息,对于系统保留的控制信息并不由FAT表中的盘簇表示。这些保留信息包括引导扇区、分区表、FAT表本身占用的扇区以及文件目录表FDT占用的扇区。

1.4.3 FAT表扇区寻址
FAT表在磁盘文件系统中的地位是非常重要的,为了使磁盘文件的操作安全可靠,文件系统的设计者们制订了两个内容相同的FAT表。虽然当第一个FAT表出错时,操作系统并不利用第二个FAT表去修复它,但技术人员可以使用有关的软件,用第二个FAT表去修复它。

当硬盘的系统控制信息遭到轻微的破坏时,可以通过各种方法去修复它。如上面所讲的四部分系统保留信息,在某一部分出现错误时,可以采用从其他计算机上移植的方法,或是采用手工编制扇区数据的方法进行修复。

但是当这些控制信息严重损坏,譬如分区表链和分区引导记录严重损坏时,上述方法就无能为力了。一般来说,在这种情况下只有重新分区、格式化,硬盘上的所有数据也就全部丢失了。

硬盘的系统控制信息遭到破坏时,一般情况下FAT表被破坏的可能性比较小。特别是第2个FAT表一般能够保存完好,因为第2个FAT表很少受到应用程序的访问。这时如果使用物理硬盘扇区的读写技术,就有可能从硬盘上恢复出重要数据来。这种操作的对象是针对整个硬盘,而不用考虑硬盘的分区情况,也不用考虑硬盘上安装的是什么操作系统。

查找FAT表首扇区地址的方法很简单,可以根据FAT表的特征标记,使用查找扇区特征的工具程序进行查找。不管是FAT16文件系统还是FAT32文件系统,每个FAT表的首扇区里前两字节都是F8 FF。

### 回答1: NTFS文件系统是Windows操作系统中常见的文件系统之一。对于NTFS文件系统存储结构,其中的一个重要概念是扇区(Sector)。扇区是硬盘上最小的可寻址存储单元,其大小通常为512字节。 在NTFS文件系统中,每个文件和目录都是通过一个或者多个存储单元来示的。这些存储单元被称为簇(Cluster),簇是若干个扇区的集合。NTFS文件系统中的扇区是按簇的方式进行存储的。 当我们创建一个NTFS分区时,系统会在此分区中预留一部分区域来存储文件系统的元数据,这些元数据包括文件、目录、簇位图等等。文件中记录了文件的属性、大小、位置等信息,目录中记录了文件的路径和名称信息,而簇位图则记录了哪些簇已被使用,哪些簇还未被使用。 在NTFS文件系统中,扇区存储是按照逻辑位置顺序进行的。当我们写一个文件NTFS分区时,操作系统首先会找到一个空闲簇来存储这个文件的数据,然后将文件数据写入该簇的第一个扇区,并在文件中更新该文件的相关信息。如果文件数据超过一个簇的大小,则会继续寻找空闲簇来存储剩余的数据。 当我们读取一个文件时,系统会首先根据文件中的信息,找到文件的起始簇,然后根据簇位图找到该文件的所有簇,最后根据簇和扇区的映射关系读取文件的数据。 总之,NTFS文件系统中的扇区存储是按簇的方式进行的,文件和目录的元数据被存储在特定的区域中,而文件的数据则被分布在不同的簇中。这种存储机制使得NTFS文件系统具有较高的存储效率和快速访问的能力。 ### 回答2: NTFS(New Technology File System)是Windows操作系统中常用的文件系统之一,它的存储单位是扇区扇区是硬盘的最小的存储单位,一般为512字节。NTFS文件系统文件和目录存储扇区中的数据结构中,以实现对文件的管理和存储NTFS扇区进行进一步的划分,分为主引导记录(MBR)、文件记录和簇。MBR是硬盘的第一个扇区存储了分区和引导代码,以指示操作系统如何加载和访问硬盘上的文件系统文件记录是NTFS存储文件和目录信息的数据结构。每个文件和目录都有一个唯一的文件记录,其中包含了文件的属性信息、存储位置等。 簇是NTFS存储文件数据的单位,一个簇可以包含多个扇区NTFS通过簇来组织文件的数据,当文件大小超过一个簇时,它将使用多个簇来存储数据。这样可以提高文件的读写速度和存储效率。 NTFS还使用了日志来记录文件系统的变化,以保证数据的完整性和一致性。通过日志,即使在系统崩溃或断电等异常情况下,NTFS文件系统也能够在重启后恢复到一个一致的状态。 总的来说,NTFS文件系统利用扇区进行文件和目录的存储和管理,同时支持MBR、文件记录、簇和日志等机制,以提供高效、安全、稳定的文件存储和访问功能。这使得Windows操作系统能够更好地管理和利用硬盘空间,并提供更可靠的文件操作体验。 ### 回答3: NTFS(新技术文件系统)是Windows操作系统中最常用的文件系统之一,它采用的是分层结构,并且在磁盘上以扇区的形式存储数据。本文将探秘NTFS文件系统扇区存储的工作原理以及相关概念。 首先,我们需要了解扇区的概念。扇区是指磁盘上最小的可寻址的存储单位,通常为512字节(也有部分磁盘采用4KB大小的扇区)。磁盘被划分成许多这样的扇区,每个扇区都有唯一的扇区号来进行寻址。 NTFS文件系统使用柱面、磁头和扇区的三维地址来寻找存储的数据。柱面是磁盘上的一个环形轨道,磁头是磁盘上的读写头,而扇区则位于一个柱面上的一个磁道上。通过这种地址的组合,NTFS能够准确地访问磁盘上的数据。 NTFS文件系统中,每个分区的第一个扇区称为主引导记录(MBR),它包含了引导程序和分区的信息。接下来的扇区文件系统的引导扇区,它包含了文件系统的基本信息和启动记录。在引导扇区之后,是文件系统元数据区域,包含了文件文件夹的结构、属性和权限等信息。 在NTFS文件系统中,文件文件夹被分成一个个的簇,每个簇占用多个扇区。这样的设计有助于节约磁盘空间,并且提高了磁盘读写的效率。而数据则存储在这些簇中,通过簇的地址可以找到具体的数据内容。 总结一下,NTFS文件系统采用分层结构,在磁盘上以扇区为单位进行存储。通过柱面、磁头和扇区的地址,NTFS能够准确地访问磁盘上的数据。文件文件夹被分成一个个簇,数据则存储在这些簇中。这种高效的存储方法使得NTFS成为了Windows操作系统中最常用的文件系统之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值