2024年4月19日发(作者:)

山西电子技术 

2018年第4期 

文章编号:1674—4578(2018)04—0062—03 

软件技术 

exFAT文件系统分析及DBR手动修复 

王 赘 

(山西职业技术学院,山西太原030006) 

摘要:随着cxFAT文件系统在闪存中的广泛应用,exFAT文件系统下数据被破坏故障也越来 

越多,特别是由于DBR被破坏后产生的“提示格式化”故障更为普遍、这类故障一旦处理不"3将 -

给用户的数据带来不可估量的损失。本文通过实际案例详细分析exFAT文件系统结构,介绍手动 

修复DBR方法及过程,有效解决了此类问题,具有普遍应用价值 、 

关键词:exFAT文件;DBR;数据恢复 

中图分类号: FP3l6 文献标识码:A 

0 引言 

随着信息化的不断发展,闪存中单个大文件的 

存储需求越来越商,FA I32文件系统的闪存很多时 

候已不能满足需求,NTFS文件系统则不适用于闪存 

4)分区大小:分区所占用扇区数 、 

5)FAT表起始扇区:FAT表开始的扇区号。 

6)FA'I、表大小:FAT表所占用扇区数。 

7)首簇起始扇区号:首簇即第 二簇(位图文 

件)开始的扇区号 

介质(执行每一个读写操作都需要对介质进行多次 

访问,对闪存芯片损伤较大)。exFAI’(Extended File 

Allocation Table File System)文件系统的出现有效解 

决r这一难题,同时exFAT文件系统下数据恢复需 

求也随之增加,只有深入了解exFAT文件系统结 

构,才能有效恢复丢失数据,减少用户损失。 

8)分区内总簇数:分区内一共有多少个簇(也 

是从二号簇开始计算)。 

9)根目录首簇号:根日录位于第儿簇. 

10)卷序列号:无意义。 

11)每扇区字节数:2的9次,512 、 

12)每簇扇区数:2的6次,64。 

1 exFAT文件系统简介 

1.1 exFAT文件系统结构 

exFAT文件系统是由DBR、FAT表、位图文件 

(BITMAP)、大写文件(UPCASE)、数据区(DA FA) 

组成 。。结构示意图如图1所示。 

旦 堑 耋堕竺 I 

图1 EXFAT结构示意图 

图2 1)BR信思标注 

1.2 DBR参数信息标注图(如图2所示) 

下面对这些参数做详细的分析、. 

1)跳转指令:【舌j定值。 

在exFAT文件系统下0—8痢区都足作用分区, 

即结尾都写55 AA结束标志,一r{I 55AA被破坏,分 

区则提示未格式化 

1.3 FAT表分析 

2)铭文标志:EXFAT。微软将此处设置为EX. 

FAT。 

exFAT文件系统和FAT32有极火的相似性,数 

据都从第二簇开始记录,也都有FAT表 、、在 

3)MBR保留:MBR到当前位置的扇区数。 

收稿日期:20l 8—06一lO 

作者简介:王赘(1982一),男,山西太原人,讲师,硕士,主要研究方向:计算机应用,数据安全及数据恢复 

第4期 王赘:exFAT文件系统分析及DBR手动修复 63 

FAT32中,有两个FAT表,用来记录簇的占用情况。 

而在exFAT中,只有一个FAT表,并且只有产生碎 

片文件时,才会在FAT表中记录 J。FAT表的位置 

在DBR中偏移50H一53H位置中指定 J。在图2 

中,FAT表的开始位于2048。FAT表的搜索标志为 

F8 FF FF OF。FAT表的第一项记录了FAT表的开 

始标志。第二项紧接着就写了它的结束,用4个FF 

表示,所以第O簇和第1簇都被占用。数据就从第 

二簇开始记录了(这个等同于FAT32的FAT表)。 

第2簇记录位图文件可以看出占用了四个簇。第6 

簇记录大写文件字符,占用一个簇。第7簇开始就 

是用户存放数据的区域了。 

1.4簇位图文件 

exFAT文件系统中FAT表之后就是位图文件 

了,但是位图文件并不是紧随FAT表之后的,FAT 

表之后一般还有一些保留扇区(视具体分区情况而 

定)。位图文件的位置在DBR参数中就有描述,偏 

移58H一5BH,跳转到10240扇区。exFAT中的簇 

位图文件就类似于NTFS文件中的¥BITMAP文件, 

它的作用是用来记录分区中簇的使用情况。读法和 

NTFS中¥BITMAP的读法一样,如FF 07转换为二 

进制,l1l11111000001l1;,0—7簇已使用,8—12簇 

空闲,13—15簇已使用。 

1.5大写字符文件 

exFAT中的大写字符文件就类似于NTFS中的 

¥UPCASE文件 J。他就像一本字典,将Unicode编 

码中的每个字符都存储在其中,用于比较排序等。 

大写字符文件是exFAT文件系统中的第二号元文 

件,图2中DBR得知BITMAP共占用4个簇,(64¥ 

4=256)。BITMAP的搜索标志是固定的。搜索00 

0o 01 00,偏移位置512=0。 

1.6目录项分析 

不管是FAT32、NTFS还是exFAT它们的文件系 

统中存储的每一个文件都有与其对应的目录项。在 

FAT32中,目录区是由长短文件名组成,短文件名记 

录文件的创建修改时间、开始簇以及文件大小。在 

NTFS中,每个目录项由一项¥MFF记录。¥MFT又 

分多个属性具体记录。从图2 DBR中得知,根目录 

首簇号是7,转换成扇区10240+(7—2):l=64= 

10560。跳转到10560扇区,在根目录区域包括卷 

标目录项,位图文件目录项,大写文件目录项等,下 

面我们做一个具体的分析。 

1.6.1卷标目录项 

卷标就是分区的名称,用户可以自行命名。eX— 

FAT对其管理的方式就是将其放在根目录下,用 

Unicode编码进行存储。 

1.6.2位图文件目录项 

位图文件目录项和卷标目录项一样,都占用了 

32个字节,并且也有自己的搜索特征值81H。位图 

文件总是位于第二簇,即首簇。在其目录项中主要 

记录了它的开始位置和大小。 

1.6.3大写文件目录项 

大写文件的目录项也是占用了32个字节,在目 

录项中也同样主要记录开始位置和大小。 

1.6.4用户文件的目录项 

exFAT文件系统中的每个用户文件都有三个目 

录项。也就是我们的85H、C0H、C1H三个属性。 

2 手动修复exFAT文件系统下被破坏的 

DBR 

U盘(或者分区)双击打开时突然提示格式化, 

排除物理故障后就是DBR的问题了。修复DBR需 

要重构DBR的一些关键信息。首先去找DBR的备 

份,exFAT文件系统中DBR的备份位于12扇区 ]。 

如果备份也遭到了破坏,那就需要手动修复被破坏 

的DBR信息了。首先从别的exFAT分区复制一个 

完整的DBR,然后对其关键值进行修改(图3中标 

注的值就是我们要修改的值),下面我们就其关键 

值的计算方法做具体说明。 

强76 90 45 5e 6 41 54 20 20 20 00 00 00 O0 O0 -’,.Dal^T ….. 

)0 00 00 O0 DO 00 OO 0口 0O O0 00 0O 00 O0 OO 00 

)O 00 0O 00 00 O0 O0 OO D0 O0 00 0O O0 OO O0 OO 

)D 00 O0 00 00 00 O0 O0口0 0O O0 00 0O 0O 00 00 

)口口口0O O0∞0口O0 00 0O O0 DO O0 0D OD OO 0O 

】0 00 O0 n0 OO OO OO 0O OO 00 0a 0O 00 O0 O0 OO 

】O 00 0O 0O O0 O0 00 O0 00 0l O0 0O 09 O6 01 B口 

...............

I 

图3损坏的DBR 

1)计算MBR保留:首先确定当前分区是主分 

区还是逻辑分区,主分区就写当前DBR的真实位 

置,如果是逻辑分区就是相对于他的EBR的位置。 

我们这里只有一个分区(主分区),当前在0扇区就 

写0。 

山西电子技术 2018年 

2)分区大小:分区大小的计算首先要判断你的 

硬盘里有多少个分区,有没有保留扇区,我们这里只 

有一个分区,而且没有保留扇区,所以直接跳看他的 

扇区总数。如图4。填写62914560。 

7678.76。但是在exFAT系统中,FAT表的大小都 

是簇大小的整数倍,所以不能直接将这个值写进去。 

7678.76四舍五人就是7679,7679/64=l19.9, 

近似为120。然后(120+1) 64=7744。 

9)将上面计算的值依次填入DBR中相应位置 

保存如下图6,分区可以正常打开 如下图7。 

0Q 00 00 00 00 00 00 00 00 00 CO 03 00 00 00 00……….^….. 

.(..‘y.. 

扇区0/62914560 

图4扇区总数 

00 08 00 00 40 lE 00 00 00 28 00 00 fi0 FF 0E 00.…e…

07 00 00 00 2●3g n^CC 00 01 00 00 09 06 0l 80....S90l…….I 

图6填写好的DBR 

空苗cG0 

3)FAT表的开始:向下搜索F8 FF FF FF,偏移 

位置512=0。如图5(一般就位于2048扇区)。从 

m一嘲 。 

FAT表中看出,第二簇是首簇,且位图文件占用4个 

簇,大写文件占用一个簇。 

0 1 2 3 4 5 6 7 日 9 l0 ll l2 13 14 15 

∞一 

图7分区正常打开 

........ 

r 

... 

... 

,…

..…

F8 FF FF FF FF FF FF FF 03 00 00 00 04 00 00 00 o奶B啊 

05 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF …

00 00 00 00 00 00 00 00 0B 00 00 00 0C 00 00 O0…

FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 y 

……

由于exFAT分区的第l2个扇区中有前11个扇 

区(DBR及保留扇区)校验值的存在,一旦被更改即 

.yyyyy 

.…

130 00 00 00 00 00 00 00 00 00 00 O0 OO 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

…,….….. 

...…....... 

使上述参数修该正确,仍会因校验出错提示格式化, 

使得Windows无法访问数据,只能用winhex或其他 

数据恢复软件提取数据。想要恢复数据后能让 

Windows直接打开,必须得正确计算并写入校验值 

才行。通过如下方法可以有效计算校验值: 

UNIT32 BootChecksum(const unsigned char data 

图5 FAT表 

4)簇大小:根据FAT看出大写文件占用一个 

簇,并且下一个文件是根目录文件,用根目录的开始 

扇区减去大写文件的开始扇区就是簇的大小。 

10560—10496=64那么簇大小就是64。 

[],int bytes) 

j 

5)首簇起始扇区号:就是位图文件开始的扇区 

号,我这里给大家提供两种算法。第一种:搜索特征 

值,位图文件开始的值大多为FF FF(存放的数据太 

少就不是FF FF了),可以直接搜索此值。第二种: 

根据下一个元文件(大写文件)推算。大写文件的 

搜索值是固定的,00 00 0l O0,偏移512=0。簇大 

小也算出来了,然后向上推几个簇。计算为10240 

扇区。 

UINT32 checksum=0; 

for(int i=0;i<bytes;i++) 

{ 

If(i==106 ll i=:107 I l i=:1 12) 

continue; 

checksum=(checksum<<31)I(check- 

sum>>1)+data; 

6)总簇数:(扇区总数一目录区以前的扇区)/ 

簇大小(62914560—10240)/64=982880 

7)根目录首簇号:从FAT表中看出了根目录位 

于第7簇。或者也可以找到大写文件再向下推一个 

簇。 

} 

returnchecksum; 

} 

设置一个校验值变量,初始化值为0,然后逐一 

读取前11个扇区的每个字节,跳过106、107、112这 

三个字节,循环计算直到第11扇区结束:校验值为 

左移3l位与右移1位进行按位或运算,再加上每次 

8)FAT表大小:FAT表示记录分区内所有簇占 

用情况的,每四个字节为一项。总簇数我们也知道, 

但是FAT表中还有开始的两项(F8 FF FF FF FF FF 

FF FF)也需要加上。然后每个扇区有128项FAT 

项,用这个值除以128。(982880+2)/128= 

读取到的相应字节值。按照上述检验算法,写出了 

校验脚本,测试完全正确。 

(下转第74页) 

74 山西电子技术 

161. 

2018盔 

富多彩。 

参考文献 

[1] 刘进军.卫星电视接收技术[M].第3版.北 

京:国防工业出版社,2010. 

[3] 全国广播电视标准化技术委员会.GY/T 147 

2000卫星数字电视接收站通用技术要求 

【s】.中华人民共和国广播电影电视行业标 

准.2000—03—17. 

[2] 蔡亚芳,王飞.数字电视传输网络技术与标准 

[J].中国新技术新产品,2015,11(4):159— 

Discussion on the Transmission Standard of Digital Satellite TV 

Zhang Yan 

(Communication Univemity of Shanxi,Taiyuan Shanxi 030619,China) 

Abstract:In the process of signal transmission,the equipment of various counties and manufactures is com.r- 

patible with each other,and it needs to be standardized by a uniifed standard.In this paper,the dvb—s/dvb-s2 

standard and the abs—S standard are compared with each other in terms of channel coding,source coding and modu— 

lation. 

Key words:DVB—S/DVB—S2 standard;ABS—S standard;code;modulation 

(上接第64页) 

3 总结 

e FAT文件系统中DBR被破坏后就会出现“提 

示格式化,,故障,导致用户数据无法访问,手动修复 

DBR是最有效,最完整修复此类问题的方法。 

参考文献 

[3] 陆莉莉,季一木,王汝传,等.基于DBR的 

磁盘文件快速加密安全保障机制研究[J]· 

计算机技术与发展,2011,21(5):171一 

174· 

[4] 陈潮,靳慧云·FAT32文件系统的DBR恢复 

[1] 钱镜洁.。 FAT文件系统的解析和数据恢复 

[J].电信科学,2010(s2):29—33. 

[2] AL MAMUN ABDULLAH,GUO GUOXIAO。BI 

CHAO.Hard Disk Drive:Mechatr0nics and 

技术研究[J]·信息网络安全,2011(5):8l 

一 。 

[5 3 刘伟·数据恢复技术深度揭秘[M].北京:电 

fi-_r_ ̄出版社,2010· 

Control『M].CRC Press,2007. 

Analysis on ExFAT File System and DBR Recovery 

Wang Yun 

(Shanxi College of Vocational and Technical,Taiyuan Shanxi 030006,China) 

Abstract:With the widely use of exFAT ifle system in flash memory.data destruction in exFAT file system is 

more and more,especially the”prompt formatting”failure is more common because of the destruction of DBR. 

Once this kind of fault is handled improperly,it will bring incalculable loss to users data.This paper analyzes the 

structure of exFAT file。system in detail by practical cases,introduces the manual repair method and process for 

DBR,which effectively solves such problems. 

Key words:exFAT;DBR;data recovery