热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FAT文件系统部分摘记

1、磁道当磁盘在旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道

1、磁道

当磁盘在旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。每张盘片上的磁道由外向内依次从“0”开始进行编号。虽然磁道的编号是“由外向内依次从“0”开始进行编号”,但这并不意味着“0”磁道是位于磁盘片的最外沿的。固件区的物理位置有的位于比“0”磁道更靠近磁盘片的外缘的磁道上。有的位于磁盘片的中部。

2、扇区

磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区。每个扇区大小为512字节。扇区从“1”开始编号。

3、DOC分区

虽然我们的存储介质没有分区(你的u盘,sd卡等小容量存储介质肯定没有分区的吧)。但是在文件系统初始化的开始我们必须通过MBR获取分区表项的数据,以获得CHS、LBA参数以及分区大小扇区数,否则就无法知道你文件系统的起始物理扇区号!!!

Microsoft将使用DOC分区体系的磁盘称为“主引导记录(Master Boot recorder, MBR)”磁盘,这是对于使用“全局ID分区表(GUID Partition Table, GPT)磁盘”而言的。

4、主引导记录扇区

使用“DOC分区”体系时,磁盘的第一个——也就是0号扇区被称为主引导记录扇区,也称为主引导记录MBR(Master Boot recorder,MBR)。

MBR由446个字节的引导代码、64字节的主分区(4个)表及两个字节的签名值“55 AA组成。

5、FAT文件系统简介

文件系统会在你把文件存放到某个目录下时记录下你文件的信息(文件存放的起始簇号,文件大小,文件创建、修改、访问、保存的时间等等),当你下次要打开那个文件时,文件系统就根据已知的文件信息去寻找它,找到后,你就又可以读,写,修改,移动你的文件了,并且文件系统会同时更新。

文件系统会在你把文件存放到某个目录下时记录下你文件的信息(文件存放的起始簇号,文件大小,文件创建、修改、访问、保存的时间等等),当你下次要打开那个文件时,文件系统就根据已知的文件信息去寻找它,找到后,你就又可以读,写,修改,移动你的文件了,并且文件系统会同时更新。

格式化的过程就是在分区内建立文件系统的过程。一个文件系统由系统结构和按一定规则存放的用户数据组成。

6、数据单元

数据在写入磁盘或从磁盘读取数据时每次操作的数据量称为数据单元,它的大小在建立文件系统时确定。数据单元在不同的文件系统中有不同的称呼:例如在FAT和NTFS文件系统中称作“簇(Cluster)”,ExtX中称作“块(Block)”等。一个数据单元由若干个连续的扇区组成,大小总是2的整数次幂个扇区。

7、坏数据单元:包含坏扇区的数据单元

8、四种地址


   物理地址:每个扇区都有一个LBA地址。


   物理卷地址:每个扇区在其物理卷内又有一个地址


   逻辑卷地址:每个扇区在其逻辑卷内又有一个地址


   逻辑文件地址:对于每个文件来说,将它按所在文件系统中的数据单元大小为单位进行分割,分割后的每一个部分由0 开始编号,这个编号就是其对应数据单元的逻辑文件地址。一个文件前后相邻的两个数据单元在物理上的存储地址可能是不连续的,但它的逻辑文件地址一定是连续的。

9、三种分配策略


   第一可用分配策略:每次都从头开始检查可用的数据单元。


   下一可用分配策略:文件分配了一个储存单元后并不再回到卷开始处重新寻找可用空间,而是直接向后进行搜索。


   最佳分配策略:在为文件分配空间时,会尽可能找到足够的连续空间以避免其片段化。

10、松弛空间:

一种是数据的结尾与为其分配的空间结束处的未使用部分,还有一种就是位于分区结尾的卷松弛空间。

11、元数据

任何文件和目录都会有一个名字,我们将其统称为“文件名”。除了文件名外,文件或目录还有其他一些描述信息,如大小,时间信息,是否加密或压缩,储存位置信息等,我们将这些描述信息统称为文件或目录的元数据。

12、在FAT文件系统中,同时使用“扇区地址”和“簇地址”两种地址管理方式。这是因为只有存储用户数据的数据区使用簇进行管理(FAT12和FAT16的根目录除外),所有簇都位于数据区。其他文件系统管理数据区域是不以簇进行管理的,这部分区域使用扇区地址进行管理。文件系统的起始扇区为0号扇区。

12、FAT文件系统的整体布局

[1] 保留区含有一个重要的数据结构——系统引导扇区(DBR)。FAT12、FAT16的保留区通常只有一个扇区,而FAT32的保留扇区要多一些,除0号扇区外,还有其他一些扇区,其中包括了DBR的备份扇区。

[2] FAT区由来年各个大小相等的FAT表组成——FAT1、FAT2,FAT2紧跟在FAT1之后。

[3] FAT12、FAT16的根目录虽然也属于数据区,但是他们并不由簇进行管理。也就是说FAT12、FAT16的根目录是没有簇号的,他们的2号簇从根目录之后开始。而FAT32的根目录通常位于2号簇。

13、FAT的保留扇区

FAT32文件系统的开始部分有一个由若干个扇区组成的保留区,保留区的刀削会记录在DBR扇区中,比较常见的为32、34或38个扇区。

14、引导扇区

引导扇区是FAT32文件系统的第一个扇区,也称为DBR扇区。它包含这样一些文件系统的基本信息:

[1] 每扇区字节数

[2] 每簇扇区数

[3] 保留扇区数

[4] FAT表个数

[5] 文件系统大小(扇区数)

[6] 每个FAT表大小(扇区数)

[7] 根目录起始簇号

[8] 其他一些附加信息

我们可以通过每个FAT表的大小扇区数乘以FAT表的个数得到FAT区域的大小;通过保留扇区数和FAT区域的大小就可以得知数据区的起始位置,也就得到了文件系统第一簇的位置。由根目录的簇号和第一簇的位置就可以得到根目录的位置。

15、FSINFO信息扇区

FAT32在保留区中增加了一个FSINFO扇区,用以记录文件系统中空闲簇的数量以及下一可用簇的簇号等信息,以供操作系统作为参考。

大多数的FSINFO信息扇区一般位于文件系统的1号扇区,结构非常简单。

字节偏移(十六进制)          字节数                       含义

00~03                          4                  扩展引导标志“52526141” 

04~1E3                        480                        未使用

1E4~1E7                        4                  FSINFO签名“72724161”

1E8~1EB                        4                        空闲簇数

1EC~1EF                        4                      下一可用簇号

1F0~1FD                       14                        未使用

1EE~1EF                        2                     “55 AA”标志


推荐阅读
author-avatar
多米音乐_34429718
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有