FAT文件系统详解(一)

FAT文件系统详解(一)一 前序每篇文章前都要说些什么吧 不然觉得有点尴尬 你问为什么要写这篇文章 我说是为了 虚拟文件系统 管理讲解做铺垫 我一直的想法就是 一定要知道原理 才能做的更远更好 因为你知道这其中的原理了 之后如果遇到问题了 就不好慌乱 一切让你心慌意乱的事儿都是一些你不能把握的事情 因为你不知道将会发生什么 掌握来原理 你就能掌握规律 你就能预判会发生什么 你也不会心慌了 二 硬盘的结构 1 硬

一、前序
每篇文章前都要说些什么吧,不然觉得有点尴尬,你问为什么要写这篇文章?我说是为了“虚拟文件系统”管理讲解做铺垫,我一直的想法就是“一定要知道原理,才能走的更远更好”,因为你知道这其中的原理了,之后如果遇到问题了,就不好慌乱,一切让你心慌意乱的事儿都是一些你不能把握的事情,因为你不知道将会发生什么,掌握来原理,你就能掌握规律,你就能预判会发生什么,你也不会心慌了。本篇文章主要讲解FAT16文件系统。

二、硬盘的结构。
(1)硬盘的内部结构。
在这里并不需要知道硬盘长的什么样子,因为我们最终只是为了读取硬盘的数据,“硬盘”到目前为止,其实可以加上双引号,因为它已经不只是指代机械硬盘,只要在编程控制的时候抽象的结构类型与机械硬盘一样,固态硬盘、nor flash、nand flash,甚至eeprom都可以称作硬盘,下图是一个机械硬盘内部构成(图片来源网络,并非原创)。
在这里插入图片描述
从图中,可以看出,硬盘的有扇区、磁道、盘面、柱面构成,主轴我们就忽略它吧,它并不是存储介质可以操作的器件,他们的关系是:
(i)扇区构成了磁道。
(ii)水平方向的磁道构成了盘面。
(iii)垂直方向的磁道构成来柱面(个人觉得柱环比较好理解)。
(iv)柱面构成的柱体就是一个磁盘。







(2)一个硬盘的大小。
一个磁盘的大小:
盘面数 X 每个盘面的磁道数 X 每个磁道的扇区= 柱面数 X 每个柱面的扇区数 = 扇区总数
(3)硬盘读写时的“常识”。
(i)读写是以扇区为单位,扇区是操作的最小单位。
(ii)很多分区工具,在分区(生成分区表)的时候,会以柱面为单位进行分区。




(4)一些悬疑。
(i)PC怎么知道一块一盘的大小?
(ii)PC又怎么知道每个分区的大小和位置?
(iii)PC又怎么知道每个分区数据的存放位置?
(iv)格式化的时候,PC对硬盘做了什么?
(v)怎么进行写文件?
(vi)删除文件的时候,PC对硬盘做来什么?
解决了这些疑问,基本上就明确来FAT16文件系统的原理。






三、MBR是什么?
MBR是主引导记录的意思,就是一个名字代号,实际上,它就是硬盘的第一个扇区,这个扇区代表的意义是:

地址偏移 代表的意义
00H – 1BDH 引导程序
1BE – 1FDH 主分区表,就是基本分区表
1FE – 1FF 签名,就是代表这个扇区是正常的,没有损坏

用winhex软件打开一个硬盘(winhex的用法自行百度),可以看到第1个扇区的内容:

(1)分区表是什么?

分区表记录的是一个分区的起始位置,起始位置的单位都是扇区。在FAT分区表中,又分为主分区和逻辑分区,主分区表存放在MBR所在的扇区,逻辑分区表的第一个分区信息存放在MBR中,第二、三等则存放在,逻辑分区的第一个扇区中,也就是DBR中。

含义
01H FAT12
04H 小于32M的FAT16
06H 大于32M的FAT16
0BH或者0CH FAT32
07H NTFS

(2)数据区在哪里?

数据区就是一个分区中,最后一部分的DATA区,一个分区中所有的文件数据都存放在这里。

(3)FAT表是什么?

(4)目录项表FDT是什么?

五、一些疑问的回答。

(1)格式化对硬盘到底做了什么?

(2)写一个文件到磁盘发生来什么?

答:填充FDT表,根据文件的大小在FAT表中填写簇号。

(3)删除文件的时候发生来什么?

(4)我们再写一个大文件到磁盘,验证一下之前的big.mp4的数据区被覆盖,下面是写入了一个over.mp4的大文件的FDT表,从7号簇开始占位置,
在这里插入图片描述
FAT表的变化:
在这里插入图片描述
原来big.mp4占的簇,被over.mp4占用了,此时,完全不可能进行文件恢复了!!!



(5)PC怎么知道一块新硬盘的大小?

答:当一块新硬盘插到PC机上后,PC机会跟进硬件接口,进行一系列命令操作,其中,就有命令发出后,磁盘会主动上报磁盘大小。

六、核心思想总结。

(3)目录项只有8个字节描述一个文件名,那么更长的文件名怎么描述和记录呢?文件夹是怎么被描述记录的?子文件夹又是怎么被描述和记录的?逻辑分区是怎么回事呢?

想知道答案,请看下节分解!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208523.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午11:23
下一篇 2026年3月19日 上午11:24


相关推荐

  • 代码浏览工具_图片编辑器网页版

    代码浏览工具_图片编辑器网页版20个最强的基于浏览器的在线代码编辑器1.CompilrCompilr是一个在线编译器和在线IDE。可以用它来开发PHP,C,C++,Ruby。在浏览器中编译Java,C#和VB.net等。马上使用2.Dabblet跨浏览器兼容,对前端攻城师们来说是一个不得不处理的问题。为了在浏览器间呈现统一的显示效果,攻城师们不仅要为每个游览器添加CSS前缀,甚至还…

    2022年4月19日
    58
  • 方法的改造

    方法的改造

    2022年2月23日
    56
  • 网络入门—家庭组网介绍&基本网络知识

    网络入门—家庭组网介绍&基本网络知识一般情况下家庭级 华为 TPlink 华三 路由器没有光口 只有电口 很多时候路由器 防火墙 无线路由器没有提供光口接入 可以利用并发连接数作为判断硬件的指数 可以理解为一秒钟可以新建多少个 TCP 连接 小线程 光纤不能直接插到路由器上 所以需要有中间转换器 光猫进行光电转换 所以可以利用并发连接数 吞吐率来衡量设备性能 该设备每秒可以处理 转发多少 M G 的流量

    2026年3月18日
    2
  • 图像分割的原则_常用的图像分割方法

    图像分割的原则_常用的图像分割方法在对处理后的图像数据进行分析之前,图像分割是最重要的步骤之一。它的主要目标是将图像化分为与其中含有的真实世界的物体或区域有枪相关性的组成部分。根据目标可将图像分割分为:1.完全分割——结果是

    2022年8月1日
    3
  • MDN和IMSI码详细解释

    MDN和IMSI码详细解释MDN 我们常说的手机号码 其实叫做 MDN 号码 在中国大陆地区使用的手机号码组成是 11 位 其中每一段都有各自不同的含义以及编码方式 MDN 号码的由如下几点构成 CC 国家代码 MAC 移动接入代码 H0H1H2H3 HLR HomeLocation 识别码 ABCD 移动用户号 IMSI 名词解释 IMSI 是一长串英文的缩写 其全称为 Internationa 翻译成中文则叫做 国际移动用户识

    2026年3月17日
    1
  • 最近公共祖(LCA)模板_祖先深度_区域祖先_(欧拉序列+标准RMQ+四毛子)O(n)-O(1)

    最近公共祖(LCA)模板_祖先深度_区域祖先_(欧拉序列+标准RMQ+四毛子)O(n)-O(1)前几天看到 LCA 发现有种 O n O 1 的做法 本想找板子学习一下 苦寻无果 那就自己写写板子吧 因为实在才疏学浅 各位大佬要是遇到 bug 或是 wa 的题 请告诉我 我去改 duoblyOn O1 顶点 1 n include bits stdc h usingnamespa typedeflongl constintma bits

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号