无忧启动论坛

标题: fat32文件系统下的文件所在的簇如何理解 [打印本页]

作者: ziluopao    时间: 2019-1-23 14:47
标题: fat32文件系统下的文件所在的簇如何理解
本帖最后由 ziluopao 于 2019-1-23 16:02 编辑

前提:有一规则说,fat1表中的每个簇距离fat表的起始位置都是4个字节,假如某文件所在的簇是3905,并且它在fat表中的第三组位置上。
那么此时问题来了:该簇距fat2表的起始位置为3905 X 4 为什么呢?如图

有可能我表示的不清楚,即:文件目录所在的位置为啥是  文件所在的簇数x4号,这个4是代表啥?

作者: ziluopao    时间: 2019-1-23 16:51
明白了,因为 每4bytes 映射一个簇

作者: ziluopao    时间: 2019-1-23 17:08
本帖最后由 ziluopao 于 2019-1-23 17:13 编辑
frg521 发表于 2019-1-23 16:59
...


呵呵,过奖!可能我描述问题不清晰!确实有时问都不知道如何表达,这是最苦恼的,也是菜鸟最开始遇到的难题!还望见谅!
我再描述一下:这里计算的簇号是文件在fat表中的簇号,因为fat表的大小是有限的,如果文件很多,fat表就会把文件表分配到别的扇区中,我计算的就是在非fat表中的文件所在的簇号!
比如某文件已出了主表,此时fat主表中指向了一个3309这个簇号,但这个簇中没有我要的文件,所以还要继续往下算,但再下一个簇是什么呢,如何计算呢。所以二楼就是我当时不明白的概念。
实际操作中是这样:找出fat表中的第一个簇,这个簇所在的扇区中的就有下一个簇的信息,然后这个簇再乘以4就得到一下个紧邻的簇号,以此类推!
比如我要找图中所示的 数据恢复.rar这个文件

作者: ziluopao    时间: 2019-1-23 17:25
本帖最后由 ziluopao 于 2019-1-23 17:33 编辑

能过图中可知,fat表因为文件多,所以把文件目录分配到了超出fat表(512字节)以外别的地方。
这里第一个簇是3905簇

跳转到3905对应的扇区后,经搜索没有发现所要的文件。


作者: ziluopao    时间: 2019-1-23 17:39
本帖最后由 ziluopao 于 2019-1-23 17:41 编辑

此时问题来了,下一个簇在哪里,因为4个字节映射一个簇,所以这里就是3905x4=15620个簇(这是一个簇)

如图

但搜索后还是没有要的文件!此时继续计算下一个簇!
作者: ziluopao    时间: 2019-1-23 17:44
本帖最后由 ziluopao 于 2019-1-23 17:48 编辑

经上面的跳转后(如图)会发现信息变成了7117簇号

然后7117x4=28468簇
接着跳转

搜索后还是没有要的文件!

3.png (84.88 KB, 下载次数: 38)

3.png

作者: ziluopao    时间: 2019-1-23 17:56
本帖最后由 ziluopao 于 2019-1-23 17:58 编辑

这是上次计算跳转后得到的数据信息,即下个簇是10,081x4=40324簇

作者: ziluopao    时间: 2019-1-23 19:44
本帖最后由 ziluopao 于 2019-1-23 19:47 编辑

哈哈好吧好吧,数据恢复里面有很多好玩的东西




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3