FAT32文件系统的DBR恢复研究与实践_第1页
FAT32文件系统的DBR恢复研究与实践_第2页
FAT32文件系统的DBR恢复研究与实践_第3页
FAT32文件系统的DBR恢复研究与实践_第4页
FAT32文件系统的DBR恢复研究与实践_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FAT32文件系统的DBR恢复研究与实践0 引言 在信息化时代,数据存储日益重要,但在计算机操作过程中,由于断电、病毒、误操作或振动等原因可能会导致硬盘中文件系统分区的DBR扇区信息损坏,使其分区表现为未格式化,以至无法访问分区信息,但如果重新格式化分区,则可能导致该分区数据被破坏。本文通过研究FAT32文件系统的结构,提出了通过FAT表和根目录来计算DBR的重要参数以恢复DBR的方法,并利用硬盘编辑工具Winhex,针对不同的情况,采用不同的方法重构DBR扇区,恢复分区信息,进而能成功访问FAT32分区中的数据。1 FAT32文件系统FAT(File Allocation Table)是Wi

2、ndows操作系统平台下一种较常见的文件系统,根据FAT项大小的不同,可分为FAT12、FAT16和FAT32共3种文件系统,FAT32文件系统目前在移动硬盘、U盘等存储介质中得到了广泛应用。FAT32文件系统一般包括保留区、FAT表区、DATA数据区3个部分,文件系统结构如图1所示。在FAT32 文件系统中,保留区和FAT表区采用扇区地址;管理,而数据区采用簇地址;管理,根目录属于数据区。图1 FAT32文件系统结构2 FAT文件系统结构分析 FAT文件系统的保留区位于文件系统的前部,保留区的第1个扇区,即文件系统的0号扇区,称为Dos引导记录(Dos Boot Recorder,DBR)扇

3、区,存储着文件系统在硬盘上的保留扇区数、总扇区数、每簇扇区数、FAT 表个数和大小、根目录起始簇号等重要信息,具体数据结构见表1。FAT表区由两个大小相同的FAT表组成,即FAT1表和FAT2表,FAT表是用来描述数据区中簇的分配状态以及文件或目录分配的簇的前后连接关系【1】。FAT表由一系列大小相等的FAT表项组成,每个FAT表项由4个字节组成,记录的是数据区中每个簇的地址,由0开始编号,0号表项与1号表项被系统保留用来存储特殊标志,2号表项开始每个表项对应一个数据区的簇号,FAT表的表项编号与数据区的簇号相同,2号表项对应2号簇,0号表项的16进制字节为F8FFFF0F;,1号表项为FFF

4、FFF0F;或FFFFFFFF;。若某个簇未被分配,那么它所对应的FAT 表项值为0;。若某个簇已被分配,那么它所对应的FAT 表项值为该文件或目录的下一个簇的编号,如果该簇是分配给文件或目录的最后一个簇,那么该簇所对应的FAT 表项为FFFFFF0F;,表示一个文件或目录的结束标记。 数据区包含根目录,用来存储用户的数据,簇从2号开始编号,一般情况下根目录放在数据区的最前面,所以根目录的簇号为2。在根目录下建立文件或目录时,则将在分配给根目录的簇中建立相应文件或目录的目录项【4】,FAT32文件系统目录项的数据结构和含义如表2 所示。表1 FAT32文件系统DBR数据结构和含义字节偏移(16

5、进制)字节数值(十进制)含义 00-023EB 58 90跳转指令 03-0A8如:字符串MSDOS5.0;厂商标志和OS版本号,OEM标志 0B-0C200 02每扇区字节数,一般为512 0D108每簇扇区数(分区大于2G时为08) 0E-0F2根据分区实际情况而定保留扇区数 10102FAT表个数,FAT32文件一般为2 1C-1F4根据分区实际情况而定分区前已用扇区数,指DBR扇区相对于硬盘0号扇区的扇区偏移 20-234根据分区实际情况而定文件系统的总扇区数 24-274根据分区实际情况而定每个FAT表的扇区数 2C-2F402 00 00 00根目录起始簇号,一般为2 32-332

6、06 00备份DBR扇区的位置,一般为6 52-598字符串FAT32;文件系统格式,ASCII码 5A-1FD4100未使用 1FE-1FF255AA签名标志表2 FAT32文件系统目录项的各重要字节数据结构和含义字节偏移(十六进制)字节数 含义001文件名或目录名的第一个ASCII码字符,若为0x00,表示目录项未分配使用,若为0xE5,表示曾经分配过,但已被删除。01-0A10文件名或目录名的第2至 第11个ASCII码字符04-152文件名或目录的起始簇号的高两个字节1A-1B2文件名或目录的起始簇号的低两个字节3 FAT32 文件系统的DBR恢复方法 根据FAT32文件系统DBR扇区

7、的数据结构,在文件系统的6 号扇区存在一个DBR 扇区的备份。因此,若6号扇区没有损坏,则可通过6号扇区来恢复DBR扇区的信息。但是如果DBR扇区和备份DBR 扇区的信息都被损坏,则需重建DBR扇区。由表1可知,重建DBR的关键参数主要有:保留区扇区数、根目录簇号、每簇扇区数、FAT表个数、每个FAT表总扇区数等信息。4 FAT32文件系统DBR恢复实例 本文采用VMware Workstation虚拟机软件生成两块40G的虚拟硬盘,对于操作系统而言,跟真实硬盘没有区别,其硬盘分区结构如图2所示。在各分区根目录下创建一些文件和目录,以营造数据存储环境,然后使用0x00;值填充实验分区的DBR扇

8、区,造成DBR扇区损坏的实际环境,保存后分区因DBR扇区损坏,表现为未格式化。根据前述方法,下面利用磁盘编辑工具Winhex分几种情况重建DBR扇区的信息。由于备份DBR扇区未损坏情况的恢复很简单,本文不再赘述。图2 硬盘分区4.1 FAT32的DBR和备份DBR都被损坏4.1.1 损坏的分区是主磁盘分区(以F盘为例) 步骤1:利用Winhex软件打开被损坏的逻辑驱动器F,先判断文件系统类型,此处是FAT32。 步骤2:将一个完好的FAT32分区里面的DBR复制到本分区0扇区位置即DBR位置处。如图3所示。图3 修改前FAT32文件系统的DBR 步骤3:修改图3中DBR的BPB表结构的相应参数

9、(即上面红色框位置): (1)0E0F :FAT表前的保留扇区数。从0扇区开始,菜单上搜索查找十六进制数值F8FFFF0F,得到第一个搜索位置,如图4所示,从图中可看出此扇区为36号扇区,即FAT1表所在的位置36D=24H。将其反写填入(0E0F)位置即为2400。图4 十六进制数值F8FFFF0F的第一个搜索位置 (2)2427:每个FAT表所占扇区数。从搜索到的扇区的下一位置开始,菜单上搜索查找十六进制数值F8FFFF0F,得到第二个搜索位置,如图5示,从图中可看出此扇区为12026号扇区,即FAT2表所在的位置,从而得出每个FAT表所占扇区数为:12026-36=11990D=2ED6

10、H。将其反写为D62E0000填入(2427)。 (3)1C1F:隐含扇区。 (4)2023:文件系统扇区总数。对于参数(3)、(4)可以从该分区所在的物理硬盘主引导记录(Master Boot Record,MBR)的DPT处获取。打开硬盘1的物理驱动器,定位0扇区的DPT,得到该分区是DPT的第二个分区。可知此分区为主磁盘分区,则直接从MBR中DPT获取,如图6所示。所以1C1F处填入F238D301。2023处填入7A0D7701。图5 十六进制数值F8FFFF0F的第二个搜索位置图6 物理硬盘1 中MBR的DPT (5)4346:序列号,这4个字节随意修改即可,只要不与原来的相同。 以

11、上参数修改完后DBR的BPB表结构如图7所示。图7 修改后FAT32文件系统的DBR 步骤4:定位到本逻辑分区的6号扇区,将修改好的DBR扇区信息复制到此扇区中。保存修改,退出Winhex软件,此时DBR扇区重建完成,文件系统恢复正常,可以访问分区中的数据。4.1.2 损坏的分区是扩展磁盘分区(以J盘为例) 步骤1:同4.1.1中的步骤1。 步骤2:同4.1.1中的步骤2。 步骤3:修改DBR中BPB表结构中相应的参数: (1)0E0F :FAT表前的保留扇区数。从0扇区开始,菜单上搜索查找十六进制数值F8FFFF0F,得到第一个搜索位置,如图8所示,从图中可看出此扇区为36号扇区,即FAT1

12、表所在的位置36D=24H。将其反写填入(0E0F)位置即为2400。图8 十六进制数值F8FFFF0F的第一个搜索位置 (2)2427:每个FAT表所占扇区数。从上面搜索到的扇区的下一位置开始,菜单上搜索查找十六进制数值F8FFFF0F,得到第二个搜索位置,如图9示,从图中可看出此扇区为13022号扇区,即FAT2表所在的位置,从而得出每个FAT表所占扇区数为:13022-36=12986D=32BAH。将其反写为BA320000填入(2427)。图9 十六进制数值F8FFFF0F的第二个搜索位置 (3)1C1F:隐含扇区。 (4)2023:文件系统扇区总数。对于参数(3)、(4)可以从该分

13、区所在的物理硬盘MBR的DPT处获取。利用Winhex打开硬盘2的物理驱动器,定位0扇区的DPT,得到该分区是DPT的第二个分区。从图10中的绿色框可知此分区为扩展磁盘分区。图10 物理硬盘2 中MBR的DPT 打开硬盘2的物理驱动器,单击该分区,即到达DBR位置,再根据此位置的扇区数(-63),即可定位到此分区的扩展引导记录EBR位置,在此EBR中的DPT找到它的第一个分区信息,如图11所示。因此,本分区的隐含扇区数(1C1F)填入3F0000:本分区总扇区数(20-23)填入FA2E9601。图11 FAT32文件系统中EBR的DTP结构 (5)4346:序列号,这4个字节随意修改即可,只

14、要不与原来的相同。 步骤4:同4.1.1中的步骤4。4.2 FAT32的DBR、备份DBR以及FAT1都被损坏 根据病毒破坏数据的原理,当病毒破坏到FAT1表时,计算机也就死机,不能再往下破坏了,所以利用这一原理,用FAT 1表的备份FAT 2表来恢复数据。 步骤1:利用Winhex软件打开被损坏的逻辑驱动器F,先判断文件系统类型,此处是FAT32。 步骤2:用FAT2恢复FAT1: (1)查找FAT表。首先看查找到的FAT表在几号扇区,如果在3040号扇区,也即扇区号比较靠前,是FAT1表,而扇区号比较靠后的,就是FAT2表。从0扇区开始,菜单上搜索查找十六进制数值:F8FFFF;,得到搜索

15、位置,如图12所示。这里搜索到的FAT表在13022号扇区,可知FAT1表被破坏,此位置是FAT2表的起始扇区所在的位置。 (2)计算FAT2表的结束扇区。由于FAT2表后面紧跟着目录区,因此,从FAT2表的起始扇区开始,菜单上搜索查找文本值:Recycled;,即回收站的英文文件名。搜索结果如图13所示。这里是26008号扇区,又因为根目录的起始扇区,即为FAT2的结束扇区,所以,用26008-13022(FAT2的起始扇区)=12986(FAT表的长度),接下来,定位到FAT2的起始扇区13022号扇区,从13022一直复制到26008号扇区前,因为这些是FAT2表的长度,所以要全部复制下来,再用13022(FAT2的起始扇区)-12986(FAT表的长度)=36(FAT1的起始扇区)。接着定位到36号扇区,将刚才复制的内容进行粘贴,至此,即用FAT 2表恢复了FAT 1表。图12 十六进制数值F8FFFF的搜索位置图13 文本值Recycled;的搜索位置余下步骤同4.1节中FAT32的DBR和备份DBR都被损坏时的恢复方法。5 结语 针对FAT32文件系统DBR扇区信息的损坏导致分区表现为未格式化或计算机关机的情况,通过分析FAT32文件系统结构,提出了一种重建FAT32文件DBR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论