开发者社区> 异步社区> 正文

《数据修复技术与典型实例实战详解》——1.5 文件分配表的恢复

简介:
+关注继续查看

本节书摘来自异步社区《数据修复技术与典型实例实战详解》一书中的第1章,第1.5节,作者:叶润华著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.5 文件分配表的恢复

数据修复技术与典型实例实战详解
1.5.1 文件分配表的基础知识
磁盘经过格式化后主要包括的区域有:主引导记录区(只有硬盘有)、引导记录区、文件分配表(FAT)、目录区和数据区。

文件分配表用于表示存储磁盘文件空间信息。此表包含所有未分配的、已分配的或标记为坏的盘簇的信息。盘簇是DOS进行磁盘空间分配的最小单位,一个簇可以是两个扇区,也可以是4个扇区或更多,视DOS版本及硬盘分区的大小而不同。虽然FAT记录文件所用的磁盘空间的信息,但引导区、两个FAT表、文件目录区等本身的盘簇并不由FAT中的盘簇表示。

FAT中每个磁盘上的可用盘簇就只有一个登记项。这些登记项表示该盘簇是否在使用、空闲或损坏。坏的盘簇是在格式化过程中通过FORMAT命令发现的。每个盘簇中只要一个扇区有问题就整个不能使用,这样会浪费掉一些扇区。

文件分配表是文件管理系统用来给每个文件分配盘区空间的表格,该表格在磁盘上有两个相同的文本。文件分配表的表头占3个表项,其中第一个字节是磁盘介质说明符,第2、第3个字节总是FFFFH,这是系统设定的,其内容含义如表1.1所示。
screenshot

DOS是以簇为单位给文件分配磁盘空间的,每个簇在FAT中占一个表项,簇编号即为表项号。FAT在磁盘上每一簇由一个12位(1.5字节)、16位(2字节)项或由一个32位项(4字节)组成。对于FAT12,每个分区最多能够管理4096个簇,每个簇的容量恒定为4096字节,因此FAT12系统所能管理的分区上限为16MB;FAT16系统最多能够管理2GB的硬盘分区(32768×65536);多于2GB的硬盘分区只能采用FAT32分区表。采用FAT32分区表的突出优点是每簇包含的扇区数相对较少,因为文件是以簇为单位分配的,即使只有几个字节的文件,系统也会分配一个完整的簇,FAT32分区表能有效节省硬盘空间,避免资源浪费。

在FAT中,0号表项和1号表项是表头。从2号表项开始,每一个表项作为一个簇的标志信息,占两个字节。其内容含义如表1.2所示。
screenshot

系统隐含文件IO.SYS所在的首簇号总是0002。FAT对每个文件来说其数据结构是一个单向链表,文件在文件目录表FDT中占一个文件目录项,每个文件的首簇号存放在该文件的目录项中,一个文件目录项占32个字节,其中第26、第27字节就是存放该文件的首簇号,系统依据FDT中的首簇号乘以2(对于16位的FAT)得到该文件在FAT表头的偏移地址,并得到第2簇的簇号,由该文件的单链表即可找到该文件的全部内容。

文件分配表总是放在DOS引导记录之后,若FAT大于一个扇区,则占用紧挨着的扇区,两个FAT拷贝连在一起存放,一个挨一个,连成整体。需要使用FAT时,将其读到DOS的一个缓冲区中。系统的文件分配表存放在逻辑1扇区开始的若干个扇区内,一个文件分配表占多少个扇区依硬盘分区情况的不同而不同。

文件分配表对于硬盘的使用是非常重要的,假若丢失文件分配表,那么硬盘上的数据就会因无法定位而不能使用了。

1.5.2 文件分配表的修复
1.用NDD修复分配表

FAT记录着硬盘数据的存储地址,每一个文件都有一组FAT链指定其存放的簇地址。FAT损坏意味着文件内容的丢失。庆幸的是DOS系统本身提供了两个FAT,如果目前使用的FAT损坏,可用第二个进行覆盖修复。但由于不同规格的磁盘其FAT的长度及第二个FAT的地址也是不固定的,所以修复时必须正确查找其正确位置,采用DEBUG也可实现这种操作,即采用其移动“m”命令把第二个FAT移到第一个表处即可(不建议这样做)。如果第二个FAT也损坏了,则也无法把硬盘恢复到原来的状态,但文件的数据仍然存放在硬盘的数据区中,可采用CHKDSK或SCANDISK命令进行修复,最终得到*.CHK文件,这便是丢失FAT链的扇区数据。如果是文本文件则可从中提取出完整的或部分的文件内容。

具体方法是:运行DEBUG,将FAT2读入缓冲区,用缓冲区的FAT2数据覆盖磁盘中的FAT1。但由于不同规格的磁盘其FAT的长度及第二个FAT的地址也是不固定的,所以修复时必须正确查找其正确位置,但这对于不熟悉DEBUG命令和FAT存放位置的一般用户来说确实很困难。

可以通过NORTON 8.0中的NDD.EXE来很方便地恢复损坏的FAT。将NDD.EXE拷贝到一张系统软盘上,然后用此软盘启动机器,进入纯DOS,执行NDD.EXE程序。选择第一项“Diagnose Disk”,如图1.107所示。接着选文件分配表损坏的分区,程序开始逐项扫描,当扫描到第四项“Analyzing File Allocation Tables”时出现分区表出错信息,提示“Do you wish to correct this problem?”(是否需要纠正错误),回答“Yes”,程序将自动扫描第二个FAT,用第二个FAT来替换第一个FAT。按“Esc”键退出后,重启机器,故障排除。

screenshot

2.文件分配表丢失的数据修复

有时会遇到这样的情况,就是第二个FAT也损坏了,无法通过第一种办法来恢复FAT,但是文件数据仍然存放在硬盘数据分区中,这时可以用修复法来挽救数据。

通过“Scandisk.exe”程序可以找回丢失FAT链的扇区数据。启动机器后,在DOS状态运行Scandisk.exe程序,选择相应分区,按“开始”按钮对磁盘进行扫描,如遇错误会出现“磁盘扫描程序在某分区找到错误”的提示信息。选择“将丢失的文件碎片转换成文件”选项,单击“确定”按钮后程序开始修复错误,最后出现“磁盘扫描结果”信息,单击“关闭”按钮退出。这时用“Dir”命令检查该分区目录,会发现有若干扩展名为“.chk”的文件,这便是丢失FAT链的文件。如果是文本文件则可从中提取并合并成完整的文件,只要将文件名改过来就行了;如果是二进制的数据文件,则很难恢复出完整的文件。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SLS机器学习最佳实战:时序预测
通过分析序列进行合理预测,做到提前掌握未来的发展趋势,为业务决策提供依据,这也是决策科学化的前提。 时间序列就是按时间顺序排列的一组数据序列。时间序列分析就是发现这组数据的变动规律并用于预测的统计技术。
4845 0
HBase运维基础——元数据逆向修复原理
鉴于上次一篇文章——“云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据”的读者反馈,对HBase的逆向工程比较感兴趣,并咨询如何使用相应工具进行运维等等。总的来说,就是想更深层理解HBase运维原理,提高运维HBase生产环境的能力,应对各种常见异常现象。
6523 0
仿酷狗音乐播放器开发日志二十五 duilib右键事件的不足的bug修复
转载请说明原出处,谢谢~~        虽然仿酷狗的各个菜单早就写好了,但是一直没有附加到程序里。今天把菜单和播放列表控件关联时发现了问题。        和播放列表相关的菜单有三个,分别是每个音乐项目控件相关的菜单、分组的菜单、音乐电台的菜单。
942 0
duilib 修复CTreeViewUI复选功能判断不准确的bug
转载请说明出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/42265209         CTreeViewUI里面自带了复选的功能,但是复选功能存在bug:       ...
825 0
duilib 修复CTreeViewUI控件动态添加子控件时,对是否显示判断不足的bug
转载请说明出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/42264947         这个bug我在仿酷狗开发日志里提到过,不过后来发现修复的不够好,后来重新修改了代码,并记录到博客。
1197 0
修复duilib CEditUI控件和CWebBrowserUI控件中按Tab键无法切换焦点的bug
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41556615         在duilib中,按tab键会让焦点在Button一类的控件中切换,但是切换焦点一直存在bug,具体的描述如下:         1、在主窗体里弹出新的窗体,当新窗体中存在CEditUI控件并且焦点在此CEditUI控件上,那么按tab键将无法切换焦点而一直处于CEditUI中。
1039 0
duilib CDateTimeUI 在Xp下的bug修复
转自:http://my.oschina.net/u/343244/blog/370131 CDateTimeUI 的bug修复。
893 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载