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的大小 也记下这个数字为Y 最后Y除X 四舍五入一下就算出簇的大小了
在fat32中(其他没有试过)不知道大小的情况下还有一种方法来计算簇,前提要有两个点目录 首先搜索2E2020偏移 512=0 找到点目录,然后在点目录的偏移1A的地方找到一个8bit的值记录下了假设他是5,也记入一下他当前位置假设是22664 然后搜索下一个点目录也记入下上面的两个位置一个是偏移1A的数值6 一个是当前位置22696 最后,将第二个点目录的当前位置减去第一个点目录的当前位置 记一下这个数32 最终将两个数值相除,也就是32除以1=32(不一定是这些数,我只是打个比方说不定就要除2了呢) 那么这个32就是当前FAT32的簇了。(没有试过除fat32以外的分区了) |