exFAT:
总结构:
DBR |
|
DBR保留扇区 |
FAT |
簇位图文件 |
大写转换表 |
用户文件数据区 |
注释:DBR向下12个扇区为DBR的备份。
BPB部分参数偏移描述:
偏移 |
解释 |
备注 |
00-02 |
跳转指令 |
固定EB 76 90 |
40-47 |
起始 |
|
48-4F |
容量* |
|
50-53 |
FAT表起始扇区号 ① |
|
54-57 |
FAT扇区数(FAT表大小)② |
|
58-5B |
首簇起始扇区号③ |
数据区的开始(DBR到BITMAP的大小) |
5C-5F |
分区总簇数④ |
|
60-63 |
根目录首簇号⑤ |
一般为4 |
6C-6C |
扇区字节数 |
固定512(29) |
6D-6D |
簇大小⑥ |
描述n(xn) |
DBR:
主要需要回填的:
容量*:根目录中的81属性中的相对偏移18-1F乘以8再乘以簇大小可得到大概的容量值(
理解为:81属性记录的是簇位图的数据,相对偏移18-1F描述的是该簇位图的大小{字节数},由于簇位图一个字节描述的是八个簇的记录,所以先将大小乘8得到该分区有多少个簇,然后再乘以簇大小就可以得到大概的容量)
偏移50-53 ①FAT表起始扇区号(向下搜索F8FFFFFF)
偏移54-57 ②FAT表大小(③数据区起始扇区号-①FAT表起始扇区号)
偏移58-5B ③首簇起始扇区号/簇位图(数据区起始扇区号)(计算:⑦大写转 换表-⑥簇大小-DBR起始)(所在簇号:2号簇)
偏移5C-5F ④卷内总簇数[分区总簇数](计算:(容量-③数据区起始扇区号)/ 簇大小)
偏移60-63 ⑤根目录首簇号(一般为4,但不是固定值)
偏移6D-6D ⑥簇大小(每簇扇区数)(计算:⑧根目录起始扇区号-⑦大写转换 表)
⑦大写转换表(向下搜索00000100)(所在簇号:3号簇)
⑧根目录起始扇区号(向下搜索83——81——82)(所在簇号:4号 簇)
根目录:③首簇起始扇区号+(⑤根目录首簇号-2)*⑥簇大小
根目录:
黑色:根目录文件记录的三个属性。
红色:C0属性中的相对偏移08-0F为文件大小(字节数),14-17为文件起始簇号。
蓝色:C1属性中的文件名。
本文地址:https://bolg.xs357.com/post-110.html
未标注转载均为本站远程,转载请注明文章出处: