exFAT格式U盘完美恢复流程攻略 您所在的位置:网站首页 打开u盘提示格式化DOS修复 exFAT格式U盘完美恢复流程攻略

exFAT格式U盘完美恢复流程攻略

2024-07-08 01:52| 来源: 网络整理| 查看: 265

1.问题引入

当插入U盘/SD卡等可移动存储介质时,提示要求格式化,或者根本不能识别U盘内容(如图),此时有一定概率是MBR或者DBR出了问题。

(这当然不能格式化了!存储卡里可是我几天的心血啊!!!里面可是我idol小缘喵的盛世美颜😍😍😍)

为确认存储卡是否正确已插入,使用DiskGenius查看通过DiskGenius,已经找到该U盘,说明存储卡已插到位。

右键用【管理员模式】打开WinHex,按【F9】打开磁盘,选择【物理驱动器】中的存储卡,打开。

按CTRL+F打开搜索,回忆你存储卡中可能存在的文件或者扩展名,例如我拍摄的视频都是MP4格式的,这时候搜索MP4

点按确定搜索,这时找到了我视频名称,这初步意味着,只损坏了MBR或者分区表,没有损坏数据区,一切的一切都有救。

2.恢复思路

整体的恢复思路有2种,一种是使用DiskGenius自动修复分区表,另一种是使用WinHex人工修复。

2.1使用DiskGenius自动恢复分区表

用DiskGenius打开该盘,对整个盘(不是分区)右键,选择【搜索已丢失分区(重建分区表)】

在弹出的对话框中,一般选【搜索范围】:【整个磁盘】,点击【开始搜索】。

当出现提示搜索到一个exFAT分区,问是否保留分区的时候,选择【保留】,直到搜索完毕。

这时,该存储卡下就列出了分区,可以将选定的内容恢复到指定文件夹即可。

这时,切记不要保存更改!!

不要保存更改!!

不要保存更改!!

重要的事情说三遍!

一定要先把数据全部备份后再进行分区操作。

2.2 使用WinHex人工恢复分区

由于我自己操作的时候,在2.1节步骤中,没有备份数据就保存了分区表,导致数据没被取出来,数据也没有恢复,可以说是聋子治成了瞎子。受EXFAT文件系统DBR的完美恢复文章的启发,决定用WinHex进行人工恢复。

在继续前,先普及一些基础知识:

2.2.1 基础知识 2.2.1.1 MBR

主引导记录(MBR,Main Boot Record)是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。   

MBR扇区位于物理硬盘的0柱面,0磁头,1扇区,也就是整个硬盘的第一个扇区(偏移量为0),共占512个字节(即一个扇区),每个物理硬盘只有一个MBR扇区。

MBR扇区由三部分构成:第一部分是446字节的引导代码,也就是上面提到的MBR;第二部分是DPT(Disk Partition Table,硬盘分区表),包含4个表项,每个表项16字节,共占用64字节;第三部分是2个字节的结束标志,0x55AA。其结构如下图:

(本节引用自《MBR、EBR与DBR详解》)

2.2.1.2 DBR

分区引导扇区也称DBR(DOS BOOT RECORD),是由FORMAT高级格式化命令写到该扇区的内容,DBR是由硬盘的MBR装载的程序段。DBR装入内存后,即开始执行该引导程序段,其主要功能是完成操作系统的自举并将控制权交给操作系统。每个分区都有引导扇区,但只有被设为活动分区才会被MBR装的DBR入内存运行。

在对硬盘分区之后,每一个分区均有一个DBR与之对应。DBR位于每个分区的第一个扇区,大小为512字节。

DBR的结构与分区格式有关,NTFS与FAT32的DBR格式是不同的。

(本节引用自《MBR、EBR与DBR详解》)

2.2.1.3 常用换算关系

通常情况下,一扇区(Sector)包含512字节(Bytes)。

2.2.2 数据备份

吸取教训,本次操作前先进行数据备份。可以用WinHex打开磁盘后,按Alt+C创建磁盘镜像,创建成Raw格式,完整获取存储介质,不分割镜像文件;或使用DiskGenius创建磁盘镜像。然后用Windows自带的磁盘管理创建VHD,大小比U盘相当或略大,初始化成MBR模式,格式化成exFAT格式。再将镜像文件恢复到VHD分区。

2.2.3 恢复操作

介绍完基本知识,备份了分区,现在回过头开始分析被破坏的U盘。

用WinHex打开U盘,从2.2.1.1节,我们知道0x01BE~0x01CD代表第一个分区分区表(DPT),其具体格式见链接。一般来说,在Windows系统,至少在U盘/存储卡修复中,我们不考虑Head(磁头)、Sector(扇区)、Cylinder(柱面),因此可以从其他存储卡中复制0x01BE~0x01CD部分到本存储卡,选中上述部分按Ctrl+Shift+C即可复制16进制数据,如我从另一张存储卡中复制来以下部分。

00 0A 09 02 07 FE FF FF 00 80 00 00 00 80 75 07

这其中,重要的是起始扇区数(00 80 00 00)和总扇区数(00 80 75 07)。注意这里是小端模式,最低字节在前,最高字节在后,也就是说,起始扇区应为(00 00 80 00)➡0x8000,换算成偏移量为0x8000*0x200(一个扇区512个字节,换算成16进制为0x200)=0x0100 0000。

按Alt+G,打开【转到偏移量】对话框,相对于开始,偏移量0100 0000(要填入一个十六进制数),点击确定。

这时,我们发现0x0100 0000并不是扇区的起始位置,0x0100 0200才是扇区开始位置(以EB 76 90 开头,详见exFAT文件系统Volume Layout(卷格式)介绍以及Boot Sector介绍)。这时,有2种方案,一是按EXFAT文件系统DBR的完美恢复文章建议的,修改各扇区地址配置信息(包括但不限于MBR种起始扇区地址、总扇区数量、DBR中各扇区配置);二是削足适履,将分区信息修改到适当位置。

在继续之前,我们查看exFAT分区Boot Sector扇区0x40偏移量(即图中0x0100 0240),在Boot Sector介绍中,它包含PartitionOffset(分区偏移量)(以扇区为单位)和VolumeLength(卷长度)(也以扇区为单位),与MBR中起始扇区和分区总扇区大小参数一致。注意到本U盘(损坏的U盘)数据为:

00 80 00 00 00 00 00 00 00 30 E2 0E 00 00 00 00

注意,这里分区偏移量和卷长度都是8个字节,而MBR中是4个字节,因为是小端模式,我们取前4个字节

00 80 00 00 00 30 E2 0E

同时,拼上好U盘的分区表其他参数,只有最后8个字节用上面的代替,得到

00 0A 09 02 07 FE FF FF 00 80 00 00 00 30 E2 0E

这就是待替换的MBR中分区表部分,将空格部分删除,得到

000A090207FEFFFF008000000030E20E

复制上述十六进制数据,Alt+G转到偏移量0000 01be

按Ctrl+B,将复制的十六进制数据写入0x01be中,剪贴板格式选择ASCII Hex。

蓝色部分为已写入的新数据

至此,我们恢复进程已经走完了万里长征的第一步。

一个exFAT卷的格式一般为1个Boot Sector扇区,8个Extend Boot Sectors扇区,1个OEM Parameters扇区,1个保留扇区,1个Boot Checksum扇区,共计12个扇区(扇区0~扇区11),扇区12~23为扇区0~11的备份。

在Boot Sector中,偏移量0x26C代表每扇区中包含的字节数量,通常是0x09,意为每扇区包含2^9=512个字节,可以在WinHex中选择菜单栏【工具】→【磁盘工具】→【设置磁盘参数】,设置【每扇区字节数】为512(或按实际情况设置),这时,WinHex中一个分割线为一个扇区。

通过分析,发现本U盘exFAT卷对应的第0扇区(0x0100 0000)为不知道什么东西,后面跟着一个Boot Sector分区,8个Extend Boot Sectors扇区,1个OEM Parameters扇区,1个保留扇区,接下来又是Boot Sector扇区。到这里,问题已找到,为丢失了一个Boot Checksum扇区,继续往下翻,发现备份Boot Region中Boot Checksum扇区完好无损。

综上,我们选择0x0100 0200扇区所有内容,按Ctrl+Shift+C复制16进制,在0x0100 0000处按Ctrl+B粘入,以此类推,将每个第0扇区至第10扇区每个扇区向上移动一个扇区,然后从备份引导区中取出Boot Checksum复制到第11扇区。

结束前,我们确认自0x0100 0000处开始,前23个扇区分别为1个Boot Sector扇区,8个Extend Boot Sectors扇区,1个OEM Parameters扇区,1个保留扇区,1个Boot Checksum扇区,共计12个扇区(扇区0~扇区11),扇区12~23为扇区0~11的备份。

按Ctrl+S保存,忽略它的警告,直接点确定。

Windows自动弹出资源管理器,大功告成!

3.参考文献

1.EXFAT文件系统DBR的完美恢复(https://blog.csdn.net/xlzgwry/article/details/104477331)

2.MBR、EBR与DBR详解(https://blog.csdn.net/Hilavergil/article/details/79270379)

3.exFAT格式介绍(https://www.ntfs.com/exfat-overview.htm)

4.硬盘基础介绍(https://blog.csdn.net/xlzgwry/article/details/104477331)

4.写在最后

1.2024年第一堂课——碰到数据损坏的存储器后,不要尝试任何【写】的操作!哪怕是扫出来分区表是完全正确的,也不要写!也不要写!也不要写备份损坏的分区表。读取/备份损坏的数据——尝试恢复分区表,这才是正确的操作!

2.数据恢复软件能力非常有限,我使用了很多款,都扫不出来完整的数据;

3.我本来以为这回在温州漫展上录的那么多毛哥视频都没了!一度极度悲伤过!😭😭😭现在又大喜!😃😃😃2024年1月6日是我今年到目前为止最开心的一天!😉😉😉

4.最后——小缘是女王!😉我喜欢的人超厉害~😘😍🤩



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有