zck699 发表于 2012-8-8 16:15:54

另类手工修复ExFAT文件系统的DBR的方法

另类手工修复ExFAT文件系统的DBR的方法  Microsoft的文件系统经历了FAT12、FAT16、FAT32、NTFS等文件系统,NTFS文件系统以其非常好的安全性及可恢复性得到广泛认可,也是微软力推的一种文件系统。

  随着闪存盘容量的不断增大,比较适合大容量闪存盘的FAT32文件系统却不能存放单个4G及更大的文件。虽然将闪存盘格式化为NTFS文件系统可以解决这个问题,但是在闪存盘却不适合用NFTS文件系统,NTFS的日志功能会造成对闪存的不断读写,这对于闪存的寿命而言非常不利。为了解决这个问题,Microsoft推出了ExFAT(Extended File Allocation Table File System,扩展FAT,即扩展文件分配表)文件系统,以适应大容量闪存存储大文件的需求(理论上它可以存储的单文件大小最大可达16EB,即16×1024×1024TB)。

  对文件系统有研究的人都知道,对于FAT、NTFS等文件系统,如果DBR损坏出现格式化提示,我们都只需找一个正常的分区DBR写入并修改其中的PBP参数就能完整恢复原来的数据。然而,对ExFAT文件系统有一定研究的人都知道,ExFAT的DBR及其保留扇区校验非常严格,ExFAT文件系统的0~23扇区中任意一个扇区更改任意一个字节的数据都会出现格式化提示。因此,ExFAT文件系统的DBR扇区数据损坏后,我们用正常的ExFAT文件系统的DBR重写并修复其中的PBP参数来恢复ExFAT文件系统分区的数据是行不通的。可能我们会想到,把该分区格式化再用软件扫描恢复数据,然而,由于ExFAT文件系统才发展起来不久,格式化后,支持ExFAT文件系统格式化恢复的软件非常少,并且格式化会进一步损伤原来的数据,通过扫描恢复也不一定能完全恢复原来的数据。

  那么,我们能否在不格式化的前提下,通过修改ExFAT文件系统的DBR及其保留扇区达到完整恢复数据的目的呢?答案是肯定的。在网上看到,有的同道中人可以通过修改PBP参数后更改校验值的方法实现,但这个校验值不是人人都会算,当然我也不会。通过研究,本人得到了另一个可行的办法实现修改ExFAT文件系统的DBR达到完整恢复数据的方法。

  在讲解这个方法之前,我们首先对ExFAT文件系统DBR扇区、保留扇区、备份扇区再作一个基本了解。ExFAT文件系统的0号扇区是DBR,1-11号扇区为保留扇区,其中11号扇区是校验,12—23号扇区是0—11号扇区的备份。0-23这24个扇区中的数据都很重要,不能随意便改,只要任意改写这24个扇区中任意一个扇区的任意一个字节的数据,都会导致格式化提示而不能正常打开磁盘分区。
既然不能通过简单的修改DBR中的PBP参数修复ExFAT分区,那么我们应该怎样手工修复DBR呢?我的思路是:构建一个与原来的磁盘分区的PBP参数完全一致的一个DBR扇区及其保留扇区、备份扇区,然后将这个DBR及其后的23个扇区去替换原来的DBR及其后的23个扇区,这样不就可以正常打开原来的分区了吗?经过实践证明,我的这个思路的可行的并且也是成功的。

  通常情况下,ExFAT文件系统用在U盘上,下面讲解一下修复步骤及方法:

  第一步:构建一个扇区数与待恢复的U盘扇区数完全相同的磁盘镜像文件。

  用Winhex打开待修复的磁盘,查看U盘总扇区数,然后新建一个文件,文件大小字节数为U盘扇区数*512字,保存新建文件。当然,也可以将U盘克隆为一个镜像文件,不过速度要慢些。

  第二步:写分区表。

  打开刚才保存的镜像文件并将它解释为磁盘,再打开待恢复U盘,将U盘0扇区中的分区表数据复制到镜像文件的相应位置并保存。

  第三步:用虚拟磁盘工具加载镜像文件为磁盘。

  用ImDisk虚拟磁盘工具,加载刚才保存的镜像文件。可加载为硬盘卷,也可加载为可移动盘卷。ImDisk虚拟磁盘工具的用法在这里就不介绍了。

  第四步:格式化刚才加载的磁盘。

  格式化刚才加载的磁盘分区,在格式化前,要对待恢复U盘分区分析,得到分区的簇大小,然后在格式化选项中,选择簇大小与待恢复U盘的簇大小相同。

  第五步:写U盘中ExFAT文件的0—23扇区。

  用Winhex打开刚才加载并已格式化好的磁盘分区,选中0—23扇区全部内容,按Ctrl+C将其复制到剪切板中,再打开U盘,跳转到ExFAT分区的起始扇区,按Ctrl+B将刚才复制的内容写入到U盘分区的相应扇区。

  到此,重写U盘ExFAT分区的DBR及其保留扇区、备份扇区的工作就结束了,现在我们卸载U盘再重新插入U盘,就可以看到U盘中的数据了。


8859043 发表于 2012-9-6 23:58:49

写的不错 就是写的有点复杂化

caozhi7963 发表于 2012-12-2 13:26:20

谢谢了 哦
版主太感谢了

咖啡与红酒 发表于 2015-6-1 13:56:21

谢谢了 哦
版主太感谢了
页: [1]
查看完整版本: 另类手工修复ExFAT文件系统的DBR的方法