【0】README


【1】我们看到 temp.txt 所在 根目录区条目的初始簇号为 0003h=3;



我们转向 第3个 FAT项去看看 》》

【2】从下图 ,我们看到如下:

0000200: f0 ff ff 00 40 00 05 f0 ff 00 00 00 00 00 00 00
也即是是 0-ff0 1-fff 2-000 3-004 4-005 5-fff

所以我们可以看到,fff表结束了,temp.txt 占用的扇区号为 3, 4, 5(相对于数据区而言),共计3个簇(扇区)

(Alert): 簇==1个还是多个扇区,这个是在 FAT12 引导扇区内定义好了的,要记死这些东西;

我们转向数据区看看 》》

【3】数据区部分截图:



【4】这里,我们不得不算一下 FAT12文件系统的各个结构的起始扇区了;

4. 每FAT扇区数==BPB_FATSz16=0009=offset(22) + length(2)

(纠错1) 非常抱歉,上图3.BPB_RootEntCnt=00e0=14 而不是15;

而 FAT12的结构图有:引导扇区、FAT1、FAT2、根目录区、数据区:



而由引导扇区内容,我们知道:

  • 引导扇区的扇区范围 = 0~0;
  • FAT1 的扇区范围 = 1~9;
  • FAT2 的扇区范围 = 10~18;
  • 根目录区的扇区范围 = 19~32;
  • 数据区的扇区范围 = 33~ending;
  • 又每个扇区=512B,所以数据区的偏移量为 (32+1)* 512 = 16896B,16896/16=1056行,所以数据区的开始字节数为:16896B 。
  • 出现的问题:而模块3中 文件存储的起始行为 1088 行,为什么?[ 1056行和1088行相差一个扇区而已 (1088-1056) * 16 = 512 ]
  • 具体原因:参见 { http://blog.csdn.net/pacosonswjtu/article/details/48403031 的“4.2.a.3)算数据区开始扇区号:”}

【5】验证的时刻到了



参见模块3中的 文件内容起始行1089 和 结束行1167;所以总大小为 (1167-1089 + 1) * 16 = 1264,

Bingo了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

FAT12中,如何定位大于一个扇区(512B)的文件内容的更多相关文章

  1. html中引入调用另一个公用html模板文件的方法

    html中引入调用另一个公用html模板文件的方法 https://www.w3h5.com/post/53.html 这里我使用jquery的方法 <body> <div id=& ...

  2. 制作FAT12软盘以查看软盘的根目录条目+文件属性+文件内容

    [-1]Before for specific info , please visit http://wiki.osdev.org/Loopback_Device [0]我们先上干货,看到效果后,我们 ...

  3. 面试官:如果 http 响应头中 ETag 值改变了,是否意味着文件内容一定已经更改

    本篇文章由我的 一日一题 中的四个 Issue 组合而成 [Q111]http 响应头中的 ETag 值是如何生成的 [Q112]如果 http 响应头中 ETag 值改变了,是否意味着文件内容一定已 ...

  4. 一个项目中:只能存在一个 WebMvcConfigurationSupport (静态文件失效之坑)

    一个项目中:只能存在一个 WebMvcConfigurationSupport 在一个项目中WebMvcConfigurationSupport只能存在一个,多个的时候,只有一个会生效. 静态文件访问 ...

  5. php -- PHP5中file_get_contents函数获取带BOM的utf-8文件内容

    最近,在用file_get_contents函数来取得文本的内容的时候,出现了一个情况(如下),苦思冥想了n久,不得其解,最后,果然还是得靠百度啊..... 百度到一个解释,下面是原文: PHP5中的 ...

  6. Java中new一个对象是一个怎样的过程?JVM中发生了什么?

    Java中new一个对象的步骤: 1. 当虚拟机遇到一条new指令时候,首先去检查这个指令的参数是否能 在常量池中能否定位到一个类的符号引用 (即类的带路径全名),并且检查这个符号引用代表的类是否已被 ...

  7. 将文件内容隐藏在bmp位图中

    首先要实现这个功能,你必须知道bmp位图文件的格式,这里我就不多说了,请看:http://www.cnblogs.com/xiehy/archive/2011/06/07/2074405.html 接 ...

  8. “医疗信息化行业之中的联发科”- 我们在医疗行业中的定位及目标 想做一个面对中小企业的专业上游软件供应商 台湾联发科技颠覆掉的是一个封闭的手机产业系统 解决方案,即AgileHIS.NET数字化医院基础方案

    “医疗信息化行业之中的联发科”- 我们在医疗行业中的定位及目标   我们做中国医疗信息化行业之中的联发科 ---我们在医疗行业中的定位及目标 从我个人来讲,我从2001年到现在这10年之间基本上一直在 ...

  9. 谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。

    谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数. Google2009华南地 ...

随机推荐

  1. 一个简单的NoSQL内存数据库—Berkeley DB基本操作的例子

    一个简单的NoSQL内存数据库—Berkeley DB基本操作的例子 最近,由于云计算的发展,数据库技术也从结构式数据库发展到NoSQL数据库,存储模式从结构化的关系存储到现在如火如荼的key/val ...

  2. 七、Ubuntu 关机或者重启

    重启命令:1.reboot2.shutdown -r now 立刻重启(root用户使用)3.shutdown -r 10 过10分钟自动重启(root用户使用)4.shutdown -r 20:35 ...

  3. IDEA - 设置所有文件编码为UTF-8格式

    问题一: File->Settings->Editor->File Encodings 问题二: File->Other Settings->Default Settin ...

  4. Linux笔记:vim

    文件搜索后显示高亮,即使退出编辑高亮依然存在.使用以下几个方法: 1)指令模式下运行:nohlsearch 2)运行set nohlsearc,可永久关闭搜索高亮 3)搜索任意不存在的字符串

  5. golang:mgo剖析之Session

    golang操作mongo使用的包是"gopkg.in/mgo.v2",coding过程中需要并发读写mongo数据库,简单观摩了下源码,记录下自己的一些理解,如有错误,敬请斧正. ...

  6. 创建maven项目是其中的group id和artifact id怎么填写

    groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找. groupId一般分为多个段 ...

  7. 【mybatis】从一个错误,看mybatis中的#和$的区别

    事情的发展是这样的: 因为一个需求,需要在java中拼接出一个完整的sql语句,然后将整条sql语句传递给mybatis执行. mapper.java是这样的: int insertMaster(Wo ...

  8. DedeCMS使用channelartlist循环,不能获取外部链接的解决办法

    Dede在制作下拉菜单时,可以使用channelartlist循环调用顶级栏目和子栏目,但该标签不能获取外部链接, 下拉菜单时一段代码搞定多个顶级栏目和子级栏目的同时输出. <div>   ...

  9. python遍历当前目录并删除某文件

    #coding: utf-8 """ this programe is to clear driverlog below this dir __author__:the_ ...

  10. 细微之处见功夫!这5点让Wish3D Earth与众不同

    产品的体验是全方位的,任何一点,都可能决定成败.细微之处见功夫,5个细节,告诉你Wish3D Earth为什么与众不同. 中科图新最新发布的Wish3D Earth,是基于WebGL技术的网页版三维地 ...