案例基本情况描述

朋友的一个容量为80GB的移动硬盘,一直在PC上使用,后来这位朋友买了一台苹果电脑,就想把这块移动硬盘接在苹果电脑上用一下,结果什么数据也没看到,于是就拔下来了。当他再一次把移动硬盘插在PC上,想用里面的数据,结果却发现看不见移动硬盘的盘符了。

数据丢失的原因分析

详细询问朋友把这块移动硬盘接在苹果电脑上以后都做了什么操作,朋友也说不清楚到底做了什么,只说硬盘接上去后出了几个界面,就用鼠标点了几下,后来发现分区里什么都没有,于是就把硬盘拔了下来。

既然朋友说不清楚,还是我们自己来分析吧。

因为是在朋友家里帮他恢复,他这里没有专门的数据恢复工作机上,就只能把这块移动硬盘接到他的PC上了。朋友的PC用的是Windows XP系统,进入系统的磁盘管理,结果发现该硬盘是一个GPT磁盘,如图4-375所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-375 硬盘是GPT磁盘

因为32位的Windows XP不支持GPT磁盘,所以无法看见GPT磁盘分区,只能显示硬盘为“GPT保护分区”状态。在这种状态下无法对硬盘做任何的常规操作,包括打开、添加盘符、格式化、删除分区等这些选项都不可选,如图4-376所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-376 所有操作都不可选

接下来在朋友的计算机中安装了一个WinHex。用WinHex打开硬盘,发现硬盘确实为GPT磁盘的格式,第一个扇区就是保护MBR,如图4-377所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-377 保护MBR

保护MBR中有一项分区表项,类型为“EE”,Windows XP就是依据这个分区表项把硬盘判断为“GPT保护分区”,从而禁止操作。

再看第二个扇区,是GPT头,如图4-378所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-378 GPT头

第三个扇区就是分区表了,内有两个分区表项,如图4-379所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-379 两个GPT分区表项

用模板来看看这两个分区表项的具体参数,如图4-380所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-380 GPT分区模板

第一个分区表项说明了分区开始于40号扇区,结束于409 639号扇区,也就是说该分区大小是409 600扇区,刚好200MB;分区名为“EFI System Partition”,即EFI系统分区。看来朋友买的苹果电脑支持EFI系统,这块硬盘接到苹果机上之后,苹果系统把硬盘转换成GPT磁盘,并自动创建一个EFI系统分区。

第二个分区表项说明了分区开始于409 640号扇区,结束于156 039 303号扇区,也就是说该分区大小是155 629 664扇区,相当于70多GB;分区名为“Untitled”,这是苹果机上多用的数据分区的名称,看来苹果机把这块硬盘EFI系统分区后的空间划成一个数据区了。

现在我们最关心的是,这两个分区是否被格式化了,如果没有格式化,仅仅是创建了分区,那么对硬盘原有数据破坏性很小;而如果这两个分区都做了格式化,对硬盘原有数据破坏性就比较大了。

其实从这两个分区表项的分区名上就能判断出这两个分区一定是被格式化过了。因为EFI系统分区一旦创建出来就会被自动格式化为FAT32文件系统,而苹果系统的分区创建出来后一般也会同时格式化,所以看到了这两个分区表项,心里已经感觉不妙了。

打开WinHex的浏览工具,验证了笔者判断的正确性,两个分区果然都格式化过了,如图4-381所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-381 WinHex的浏览工具

从图4-381中可以看出,“分区1”显示为“FAT32”,“分区2”显示为“HFS+”,说明“分区1”已被格式化为FAT32文件系统,“分区2”已被格式化为HFS+文件系统(HFS+是苹果机专用的文件系统,本书第6章将详细介绍)。这样硬盘的原有数据一定会遭受一些破坏,不过比较幸运的是,这两个分区应该都是空分区,也就是说仅仅格式化了,但没有往里写数据。因为对于200MB的EFI系统分区来说,系统是不会往里写什么数据的,而70多GB的苹果分区,只是刚被系统创建出来,也没有人为往里写数据,这就不至于对硬盘上的原有数据破坏太严重。

数据恢复的思路及方法

询问朋友硬盘原来分几个区,朋友说只分了一个区。笔者心想80GB的硬盘分一个区,那么一定是NTFS文件系统了(NTFS文件系统的内容4.6节介绍)。NTFS文件系统遭到这么大的破坏想完全修复好几乎是不太可能了,只能用数据恢复软件扫描一下试试,但如果在扫描之前能把文件系统的DBR创建出来,扫描的效果会好一些,于是打算先恢复文件系统的DBR扇区。结果在分析时居然发现硬盘原来使用的是FAT32文件系统,将近80GB的分区格式化为FAT32,一定是第三方工具干的,Windows系统自己的格式化工具是不会允许32GB以上的分区格式化为FAT32的。不过这也是不幸中的万幸,对于当前这种破坏情况,如果原分区是FAT32文件系统,那么有可能完全修复好,幸运的话数据会完好无损地恢复出来。

为什么这样说呢?这里画出一幅该硬盘数据破坏前后的结构对比图来,就一目了然了,如图4-382所示。

图4-382(a)是硬盘被破坏之前的完整结构,图4-382(b)是硬盘被苹果机把原有结构破坏后创建的新结构。为了直观,图中的各部分结构并不是严格按比例画的。

图4-382(a)中的阴影部分“①”是EFI系统分区中的FAT32文件系统会对硬盘原有数据造成破坏的位置,如果能够对前面讲过的FAT32结构原理完全掌握,这个是很好理解的;图4-382(b)中的阴影部分“②、③、④、⑤”则是苹果分区中的HFS+文件系统会对硬盘原有数据造成破坏的位置(学习完第6章的HFS+即可理解)。把这些破坏的位置对照图4-382(a)中硬盘原来的结构可以看出,原来的MBR区、DBR区及FAT1的一部分会被破坏掉,数据区中则是阴影“②、③、④、⑤”对应的位置会被破坏。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-382 硬盘数据破坏前后的结构对比图

如果理解了以上的分析,下面就可以开始动手恢复数据了。

阴影“①”所破坏的MBR区、DBR区都可以通过手工重建来恢复,被破坏的FAT1部分则可以通过它的镜像FAT2来恢复,所以阴影“①”这一部分的结构可以完全修复好。阴影“②、③、④、⑤”对应的位置是苹果机格式化时往分区内写的数据,这部分数据非常少,一共也占不了多少扇区,如果幸运的话,可能影响不到原来的数据。所以,先针对阴影“①”破坏的位置进行修复,修复好以后验证数据的好坏,如果数据无法使用,可以再考虑修复阴影“②、③、④、⑤”对应的位置。

阴影“①”破坏的位置包括MBR区、DBR区和FAT1,我们选择从后往前修复。

第1步 修复FAT1。

首先确认FAT1是否被破坏了。为了验证FAT1是否损坏,通过搜索“F8FFFF”来查找FAT表,搜索菜单的设置如图4-383所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-383 搜索菜单的设置

结果在78号扇区找到一个FAT表,其内容如图4-384所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-384 78号扇区的FAT表

然后在875号扇区又找到一个FAT表,其内容如图4-385所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-385 875号扇区的FAT表

这两个FAT表显然是EFI系统分区的FAT1和FAT2,对我们没有任何用处,继续往下搜索,随后在38 235扇区找到一个FAT表,其内容如图4-386所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-386 38 235扇区的FAT表

从该FAT表中可以看出每个FAT项都是4字节,即32位,所以该分区采用的是FAT32文件系统。

继续往下搜索,没有再找到FAT表,所以38 235号扇区的这个FAT表应该是硬盘原分区的FAT2,从其所在的扇区号也可以推断出这一点。

因为FAT1和FAT2的内容是完全一样的,所以只要把FAT2的所有数据复制到FAT1所在的扇区就可以了。

现在已知FAT2开始于38 235号扇区,为了确定FAT2的所有数据以及FAT1的开始扇区,必须要找到FAT2的结束扇区号。确定FAT2结束扇区号的方法有很多,比较常用的一种是找到数据区的开始,数据区开始扇区的前一个扇区就是FAT2的结束位置。

对于FAT32来讲,数据区的开始扇区就是2号簇,而2号簇一般都分配给根目录使用,作为根目录的首簇,所以找数据区的开始扇区也就转化为找根目录的开始位置。

这里简单介绍几种找根目录的方法:

(1)搜索“回收站”的目录项

“回收站”实际上是分区根目录下的一个文件夹,所以回收站的目录项一定在根目录区中,可以通过搜索回收站的文件名“Recycled”来找它的目录项,从而找到根目录。

但是分区下不一定有“Recycled”这个文件夹。“Recycled”这个文件夹是在用户第一次把文件放入回收站时系统自动生成的,如果用户从来没有往回收站中放入文件,则不会有这个文件夹生成。

(2)搜索卷标的目录项

如果用户给分区设置了卷标,那么根目录下也会有一个卷标的目录项,搜索卷标的名称也可以找到根目录区。

(3)搜索根目录下的用户文件

用户如果能够说出他在根目录下存放的文件或文件夹的名称,也可以搜索这些文件的目录项,从而找到根目录区。

(4)搜索“E5”标志

文件删除后其短文件名目录项的首字节会改为“E5”,如果根目录下删除过文件,或者文件做过改名,在根目录区中都会有首字节为“E5”的目录项。

(5)模糊判断法

已经知道FAT2的开始位置在38 235号扇区,根据FAT32文件系统的特点,FAT32的DBR保留扇区数一般是32~38,这样就可以大概判断出FAT表的大小,假设为X,从FAT2的开始位置38 235号扇区往后再跳转X个扇区,就到了2号簇附件了。根据根目录区中数据结构的特点,很容易找到2号簇的开始。

以上五种方法都有个前提:2号簇是根目录的开始,但实际上根目录不一定都被安排在2号簇,所以如果根目录不在2号簇,上面的五种方法就不好用。下面用另一种方法确定FAT2的结束位置。

FAT1虽然被破坏了,但不一定完全破坏,如果能在FAT1中随便找到一个有数值的FAT项,因为FAT2是FAT1的镜像,所以在FAT2中也一定有一个相同的FAT项值,这两个FAT项所在扇区的差,就是每个FAT表的扇区数,算出了FAT表大小,也就可以确定FAT2的结束位置了。

可是我们并不知道FAT1中还有什么FAT项值,如何找呢?很好办,FAT32的FAT表中作为结束标志使用的FAT项一般都是“FF FF FF 0F”(Little-Endian字节序),如果能在FAT1中找到这个FAT项,在其前后就一定有其他FAT项值。

现在从FAT2的开始扇区往上搜索“FF FF FF 0F”,搜索设置如图4-387所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-387 搜索设置

结果很快就搜到了,如图4-388所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-388 搜索到“FF FF FF 0F”

搜索到的这个扇区的扇区号从左下角可以看到,是4414号扇区,把这个号记住。在“FF FF FF 0F”之前有很多FAT项,我们选这个扇区的第一个FAT项“81 D9 07 00”作为目标,从FAT2的开始位置往下搜索这个FAT项,搜索设置如图4-389所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-389 搜索设置

结果在42 254号扇区搜到了,如图4-390所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-390 搜索到“81 D9 07 00”

用FAT项“81 D9 07 00”在FAT2中的扇区号42 254,减去用FAT项“81 D9 07 00”在FAT1中的扇区号4414,结果等于38 140,这就是每个FAT表的扇区数。把这个数记住,修复DBR时还要用到。

用FAT2的开始扇区号38 235加上每个FAT表的扇区数38 140,结果就是2号簇的开始扇区,为76 375,而前一个扇区,即76 374号扇区就是FAT2的结束扇区,还可以计算FAT1的开始扇区为38 235-38 140=95。下面就可以将FAT2的内容复制到FAT1了,方法是首先跳转到FAT2的开始扇区38 235,用鼠标右键单击该扇区第一个字节,在弹出的菜单中选择“选块起始位置”,如图4-391所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-391 选块起始位置

再跳转到FAT2结束扇区76 374,用鼠标右键单击该扇区最后一个字节,在弹出的菜单中选择“选块尾部”,如图4-392所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-392 选块尾部

将选中的区域进行复制,如图4-393所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-393 将选中的区域进行复制

最后跳转到FAT1的开始扇区95,用鼠标选中该扇区的第一个字节,将剪贴板中的数据写入,如图4-394所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-394 将剪贴板中的数据写入FAT1

这样,FAT1就完全恢复了。

第2步 修复DBR。

FAT1开始于硬盘的95号扇区,也就是说在FAT1之前还有95个扇区。这95个扇区是MBR及DBR的区域,我们将DBR安排在63号扇区,即安排MBR保留扇区为63,DBR保留扇区为32。

修复DBR的方法是先复制一个同类型的DBR扇区,然后修改其BPB参数。该硬盘原分区为FAT32文件系统,所以先找一个FAT32的DBR复制到63号扇区。因为EFI系统分区就是一个FAT32的文件系统,该分区开始于40号扇区,所以就地取材,把40号扇区的DBR直接复制到63号扇区,然后打开DBR的模板修改BPB参数,如图4-395所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-395 修改前的BPB参数

BPB中需要修改的参数有每簇扇区数、DBR保留扇区数、每FAT扇区数、隐藏扇区数(也就是MBR保留扇区数)、扇区总数(也就是分区大小),其他的就不用修改了。通过前面的分析和计算,已经知道DBR保留扇区数为32,每FAT扇区数为38 140扇区,MBR保留扇区数为63扇区,分区大小用硬盘的总扇区数156 301 488减去MBR保留扇区数63,结果为156 301 425扇区,这样计算会比分区实际大小多一些,但并不影响数据。最后还剩下一个“簇大小”需要计算,这个参数的计算方法也有多种,这里介绍利用FAT表计算簇大小的方法。

数据区中簇的个数与FAT表中FAT项的个数是对应的,用数据区的总扇区数除以FAT表中FAT项数所得到的结果,也就是每簇包含的扇区数了。

FAT表中的FAT项数:FAT表大小38 140扇区乘以512再除以4(FAT32的每个FAT项占4字节),结果为4 881 920。

数据区大小:分区总扇区数156 301 425减去DBR保留扇区数32,再减去两个FAT表包含的扇区数38140×2,结果为156 225 113。

所以簇大小为156225113/4881920,约等于32,即每簇32个扇区。

将计算好的BPB值填入DBR模板中并保存,DBR就修复结束了。

第3步 修复MBR。

目前的硬盘MBR中有一个GPT的保护分区表,只要在此基础上修改一下就可以了。

跳转到0号扇区,打开MBR的模板,修改分区表,如图4-396所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-396 修改后的分区表

因为这块硬盘作为移动硬盘使用,不引导系统,所以分区不用激活,MBR中也不需要引导程序,只需要把分区表填写正确即可。

分区表填写完后保存,将所有修改存盘,然后把该硬盘的USB口卸载并拔下,再重新插回计算机的USB口上,硬盘的分区出现了,如图4-397所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-397 硬盘的分区出现了

分区能够正常打开,打开后如图4-398所示。

FAT32分区被苹果电脑误格式化后的完美恢复实例-数据恢复迷

图4-398 分区能够正常打开

朋友很兴奋地一一验证数据,居然都正常,恢复成功。