免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1535 | 回复: 2
打印 上一主题 下一主题

关于fat12文件结构的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-20 21:30 |只看该作者 |倒序浏览
最近在研究 FAT12的文件结构 有几点疑惑 请教一下
我设置的隐藏分区 1个扇区  2个FAT表各3个扇区  之后应该是数据区 包括目录 和数据

我想求出数据区的起始位置 根据公式:   1(引导扇区)+2*3(FAT 大小)+rootentiesCount*32/bytePerSector(目录区) = 数据区的起始位置

请教下 这个rootentiesCount 是多少啊 文档里没有说明  如果等于32的话 算出来的结果是数据区应该在第40个扇区

但是我通过winhex查看到的数据在 0x0000 5600 处 即第43扇区处

通过winhex查看到  目录区是在第7扇区是正确的

所以 问题是:
1.   rootentiesCount又是什么? 为什么要乘以32 ?

2.  在目录区之后的3扇区 也就是第10扇区  发现了和FAT表相同的字样  难道目录区之后还有一个FAT?  但是我查看fat12的文档 没有这方面的说明


不知道多出来的这个扇区是不是 目录区之后的那个FAT表
求高手们帮解答一下
麻烦了




论坛徽章:
0
2 [报告]
发表于 2012-03-21 21:51 |只看该作者
1、rootentiesCount是FAT16文件系统所能存储的文件个数,文件名称和属性信息占用32BYTE,长文件名称会进行扩展。FAT16和FAT12都对文件系统所能存储的最大文件名称数量有限制,系统会首先规定那些sector是用来存储文件名称的,rootentiesCount*32/bytePerSector就是目录区所占用的sector数量。乘以32自然就很容易理解了。
2.FAT文件系统一般包含两个FAT表,以便备份与恢复。但是系统有肯可能在其他地方也保留了FAT表的备份,毕竟FAT表查询非常频繁,有可能损坏,所以就在其他地方进行了另外的备份,这种备份防止前面的两张FAT表都损坏的时候用的。

论坛徽章:
0
3 [报告]
发表于 2012-03-22 19:40 |只看该作者
回复 2# heiniaoyuyoulin


    感谢大神 前来指导
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP