一种基于Winhex的FAT32系统误格式化数据恢复方法
2020-07-04张珈铭马昊
张珈铭 马昊
摘要:在数字化进程中,数据丢失造成的破坏难以衡量。该文基于Winhex软件,介绍了数据恢复的原理,以FAT32误格式化为例,介绍了数据恢复的详细过程,重点介绍了一种快速计算簇大小的方法,提高数据恢复的速度和准确度。
关键词:数据恢复;Winhex;簇大小
中图分类号:TP319 文献标识码:A
文章编号:1009-3044(2020)13-0284-02
在信息数字化高速发展的今天,存储在计算机中的数据资源极其重要。而一些人为,病毒,甚至存储介质自身缺陷造成的数据丢失,往往无法用金钱来衡量。因此,如何预防存储介质中的数据免受破坏,如何快速恢复丢失的数据,引起了越来越多的重视。在常见的数据恢复方法中,把数据恢复分为:硬恢复和软恢复,如果保存数据的存储介质出现了物理故障,比如盘体有坏道,电路板芯片烧坏,盘体异响等故障,导致用户取不出里面的数据,在这种情况下对该介质中丢失的数据进行恢复,就称为硬恢复;如果保存数据的存储介质没有任何物理故障,由人为或病毒破坏所造成的数据丢失(比如误格式化,误分区),那么这样的数据恢复就叫软恢复。本文主要介绍的是一种基于Winhex工具的数据恢复。
1Winhex介绍
Winhex是一款功能十分强大的数据恢复软件,占用内存小,它主要用来检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等。同时它还可以让你看到其他程序隐藏起来的文件和数据。
Winhex还是一款十六进制磁盘编辑软件,用它来进行数据恢复时,如图l所示先用Winhex打开磁盘,逻辑驱动器是指电脑中的C、D、E、F盘格式化时产生的盘符;物理驱动器是指:电脑中看得见摸得着的物理硬盘、u盘、移动硬盘、光盘等。一般数据恢复都是从物理硬盘中打开需要恢复的分区。Winhex界面主要由工具栏,文件显示区,偏移,十六进制区,文本字符区,硬盘分区信息组成,如图2所示。
2数据恢复原理
数据是存储在硬盘上,硬盘一般划分为四个部分。分别是主引导扇区MBR,文件分配表FAT,目录区DIR和数据区Data。
硬盘的MBR分区表也叫Dos分区表,0号扇区是主引导记录(MBR),Dos分区体系常用分区表来记录每个分区的类型起始位置和分区的大小,如图3所示。其中分区表就位于0号扇区,所以0号扇区如果损坏,那么硬盘就不能正确地识别分区。分区表的00H-00H偏移长度有1字节,OOH:不可引導;80H:可引导(一般是系统盘)。01H-03H偏移长度有3字节,内容是分区的起始CHS地址。04H-04H偏移长度有1字节,为分区的类型。05H-07H偏移长度有3字节,内容为CHS地址(可空)。08H-0BH偏移长度有4字节,为分区的起始扇区号。0CH-0FH偏移长度有4字节,为分区所包含的扇区数。07H为NTFS、EX-FAT格式。0CH、OBH为FAT32格式,0FH、05H表示扩展分区表。EEH表示为GPT格式。MBR硬盘的分区是连续的,一个紧挨着一个。所以在做数据恢复时,往往找到一个分区时,很快就能找到所有的分区。
每个硬盘一般都有几亿到几十亿个扇区,为了方便查看所需的信息首先需要找到对应的字符。可以通过搜索界面查找所需信息(如图4所示),偏移条件是指每512个字节从第几个字节开始比较,比如搜索扇区结尾55AA(如图3所示),可以设置偏移计算512=510(即跳过前面510个字节,只搜后两字节),这样可以大大缩短搜索信息所需的时间,提高工作效率。也可以选择列出搜索结果(如图5所示),判断出所需要的字符串具体有几个,在第几个扇区,由此判断出硬盘有什么问题,最后对症下药进行恢复。
3FAT32误格式化成NTFS恢复方法
在数据丢失中,有一种常见的故障,就是误格式化。比如,硬盘或磁盘被误格式化,引起数据全部丢失。这种数据丢失,可以依靠专门的数据恢复工具Winhex,手工计算,恢复分区表等办法,来实现数据恢复。
首先,在计算机下附加FAT32格式的磁盘,在磁盘里存放一些文件,然后将其格式化成NTFS格式,再用Winhex软件打开。看一下6号扇区它的备份DBR是否存在,备份DBR一般是已经消失的。搜索F8FF,寻找FAT表,然后分别在2048扇区找到了FATl,在30720扇区找到了FAT2,两个扇区数相减等于28672,求得整个FAT表的大小了。FAT表的大小加上FAT2的位置为59392,求得根目录的位置。FAT表的大小为28672,每个FAT表有128个扇区,整个文件系统有128"28672=3670016个簇,用总扇区数232763737减去根目录位置59392差值为232704345再除以3670016,商为63,最接近的数为64,即簇的大小为64。
除了上面介绍的常规方法之外,还有一种快速计算簇大小的方法。先搜索F8FF,用来寻找FAT表。之后在2048号扇区找到了FAT表1,在131072号扇区找到了FAT表2。用两个子目录来计算簇大小,在260160找到了一个子目录,按F3继续搜索,在260224找到了第二个子目录,那么簇大小就是260224-260160=64,这样能准确地算出簇大小而不是算出近似值。
随意打开一个FAT32格式的磁盘,查找它的DBR,将其复制到被格式化盘的0号扇区,修改关键参数:簇大小,FAT表大小,文件系统总扇区数,保存之后再重新打开,被破坏的文件就能被看到了。如果不能直接打开就只能复制文件出来,FAT32文件系统的文件不像NTFS文件系统,NTFS的文件是全都保存在一块地方,可以用命令恢复,而FAT32的文件保存的相对比较分散,所以还是直接复制出来更好。
4结语
FAT32文件系统格式化成NTFS,对文件的破坏主要是对NTFS文件系统的特点进行的。NTFS在格式化时会产生一些源文件,会分布在硬盘的各个地方,但是它对文件的破坏是很小的,不像FAT文件系统格式化成FAT32,要将前面的那些关键的FAT表,根目录直接破坏掉,一般格式化成NTFS是没有那么严重的,是随机的。最后,快速计算簇大小的方法,可以精确计算,节省时间和避免误差。