【发布时间】:2017-04-10 22:43:06
【问题描述】:
我想将一些非常大的程序变量从内存中卸载到磁盘文件中。
我已经阅读了数十页关于 INT 13H、CHS、MBR 和文件分配表的内容,并且几乎了解了我需要知道的所有内容, 除了我似乎找不到计算根目录起始扇区的工作方法。
根据这个页面,http://nerdclub-uk.blogspot.co.uk/2012/11/understanding-fat-tables.html,确定它 就像将包含引导记录的扇区偏移量、保留扇区的数量和 每个 FAT 副本中的扇区。
在检查了我的引导扇区后,我插入了所有这些值,这就是我最终得到的结果。
1+1+(2*256),等于 514。
所以,我的根目录应该从扇区偏移量 514 开始。每个柱面的最高扇区数是 63。
514 / 63 = 8r10
所以,我的根目录应该在第 8 柱面,第 10 扇区。
但是,该扇区及其周围的所有扇区都只有零。
显然我做错了什么,但经过一天的谷歌搜索后,我准备放弃了。
【问题讨论】:
-
好的,几个小时后我已经解决了这个问题。我认为柱面组组成磁头,这就是我阅读的所有网页描述它的方式,但在转储和分析我的整个磁盘映像后,我能够确定,实际上(在我的情况下)有 16 个磁头组成一个气缸。这是令人困惑和倒退的,但无论如何。例如,磁头 1 的偏移量是分区中的 63 个扇区,而柱面 1 的偏移量是分区中的 1008 个扇区。我把它们倒过来了。
标签: filesystems fat16