欢迎来到信息技术技能项目的服务器

fat簇算法
本篇只有文字,请仔细理解。下载依旧点我

首先找出fat表,算出fat表的总字节大小。(fat12没有备份,直接搜 “!00”就可以找出,fat16和32只要fat2位置-fat1位置就可以了;一般都在跟目录上一个扇区)最后的值应该是fat表的扇区大小,然后乘每扇区字节数512就可以算出fat表占用字节数了。

 

然后看他一项fat占用多少字节(一般fat12是一个字节;fat16两个字节;fat32是4字节;fat64是8字节)。

 

  知道了他的一项fat占用多少字节之后,就可以用  ’fat表字节数 除 一项fat占用字节数’得出fat表总fat个数。

记下这个数字设他为X

然后算出数据区DATA的大小
也就是分区总大小 减DBR保留扇区 减 fat大小(有fat1和fat2就减两次)注意fat16还要减一个FDT大小  FDT大小直接搜 !0000找出根目录,两个之间的数值就是他FDT大小了

  也记下这个数字为Y

最后Y除X    四舍五入一下就算出簇的大小了

 

在fat32中(其他没有试过)不知道大小的情况下还有一种方法来计算簇,前提要有两个点目录

首先搜索2E2020偏移 512=0   找到点目录,然后在点目录的偏移1A的地方找到一个8bit的值记录下了假设他是5,也记入一下他当前位置假设是22664

然后搜索下一个点目录也记入下上面的两个位置一个是偏移1A的数值6    一个是当前位置22696

最后,将第二个点目录的当前位置减去第一个点目录的当前位置   记一下这个数32
在将将第二个点目录的偏移1A的值 减 第一个点目录的偏移1A的值得出为1

最终将两个数值相除,也就是32除以1=32(不一定是这些数,我只是打个比方说不定就要除2了呢)

那么这个32就是当前FAT32的簇了。(没有试过除fat32以外的分区了)

联系我们:嘉兴市嘉善县西塘镇下西街西塘古镇下西街93弄7号栖巷阁客栈13736871933@163.com ©2018 保留所有权利