winhex手工恢复FAT16文件系统

根目录项(Root entries)为512,每个目录项占用32字节,所以FDT(File Directory Table)共占用51232/512=32个扇区。这512个目录项是根目录下所有登记项的总和,包括卷标、子目录和文件。
公式
精确方法:FAT扇区数 = (扇区总数+2
每簇扇区数 – 32 – 保留扇区数)/(256每簇扇区数)
例:FAT扇区数 = (3915713+128-32)/(256
64)= 238.99029541015625=239扇区
粗略方法:FAT扇区数:FAT用两个字节记录一个簇。
例:FAT扇区数= 总簇数2/512 = (3915713 /64)/256 = 238.99615478515625 = 239扇区
FAT16文件系统结构
在这里插入图片描述
一个文件或子目录在磁盘上的存储位置(逻辑扇区号)为:
1+2
FAT扇区数+FDT扇区数+(起始簇号-2)每簇扇区数
解释:“1”代表DBR扇区,“起始簇号-2”代表用户文件从2号簇开始计算的。这样的话,第一个文件的起点(第2簇)紧随FDT。
DBR引导
DBR与分区的位置关系
每个分区的DBR都位于此分区的第一个扇区。主分区DBR由MBR来制定,扩展分区由虚拟MBR指定。
DBR与分区表的位置关系
第一个主分区的DBR一般距离MBR的扇区个数为62个(MBR=0, DBR=63),由于每个扩展分区都有一个虚拟MBR,所以每个扩展分区
DBR都距离虚拟MBR 62个扇区。
这里再回忆下分区表链的读取方法:主分区直接由MBR表项中的“本分区之前扇区数”来定位; 扩展分区要加上一个偏移,即MBR中制定的 “扩展分区之前扇区数”,而且此偏移在所有的虚拟MBR中都不变(这点有点与想当然不一样~),记住就可以了。
FAT(File Associate Table)
FAT紧接着DBR扇区存放。磁盘上的每个簇在FAT中有且只有一个登记项,表项值有三个状态:占用、空闲或坏簇。FAT的位数有12、16和32。12位表项值可表示4096个簇,16位表示65536个簇(一般每簇不多于64个扇区(32KB),这样,FAT16最多管理32
65536=2GB)。FAT32即使每簇4KB大,也可以管理16TB的分区。
FAT文件定位
由FAT+FDT来定位。FDT每32个字节表示一个文件。其中最重要的是偏移1A-1B两字节,表示此文件的开始簇号(此簇号有两个用处,一是定位文件的DATA,二是在FAT中找文件的下一簇)。
例子如图:我们找“Winhex教程.pdf”,先搜索ASCII来到FDT
在这里插入图片描述
在这里插入图片描述
我们继续走,发现簇链都是连着的,貌似没有碎片!
在这里插入图片描述
OK,Winhex教程.pdf的簇范围为:0xA59~0xB66 (2649 ~ 2918簇)
在这里插入图片描述
在这里插入图片描述
文件长度0xF3A08600,由字节/簇: 32,768 可知,每簇64扇区。32768=0x8000,0x86A0F3 MOD 0x8000=0x20F3,即最后一簇占用了0x20F3字节。 在这里插入图片描述
在这里插入图片描述
文件长度0xF3A08600,由字节/簇: 32,768 可知,每簇64扇区。32768=0x8000,0x86A0F3 MOD 0x8000=0x20F3,即最后一簇占用了0x20F3字节。
在这里插入图片描述
在这里插入图片描述
Hash下,发现一模一样。这就对了。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin铭泉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值