FAT文件系统原理的详细分析
FAT文件结构讲解
FAT文件结构讲解FAT(File Allocation Table)是一个用于存储和管理文件在磁盘上的文件系统。
FAT文件系统最初是由Microsoft开发的,适用于DOS和Windows操作系统。
它采用了一种简单的文件结构,使用了FAT表来记录文件在磁盘上的分配情况。
在这篇文章中,我们将详细介绍FAT文件结构的内部工作原理。
引导记录是FAT文件系统的第一个扇区,它包含了文件系统的基本信息和启动引导程序。
引导记录的前11个字节称为“引导码”,用于识别文件系统类型。
接下来的53个字节包含了文件系统的信息,如磁盘大小、簇(Cluster)大小和FAT表的位置。
在FAT12和FAT16文件系统中,引导记录总共占据了62个字节。
FAT表的值表示了簇的状态。
常见的值有以下几种:-0x000:表示簇空闲,没有被分配给任何文件。
-0xFF0-0xFF6(或0xFFF0-0xFFF6):这些值表示保留的簇,用于存储文件系统的元数据。
-0xFF7(或0xFFF7):表示簇坏掉,无法使用。
-0x002-0xFEF(或0x002-0xFEFF):这些值表示簇已被文件分配,并且是有效的。
-0x001-0xFF8(或0x001-0xFFF8):这些值表示簇已被文件分配,但是是最后一个簇,文件结束。
FAT表将所有的簇连接到一起,形成一个链表。
为了遍历这个链表,我们从文件的开始簇(即文件的第一个簇)开始,查找下一个簇的位置,然后再查找下一个簇的位置,直到文件结束。
文件系统使用这个链表来查找文件的数据,因为文件的数据可能分布在磁盘的不同位置。
数据区是存储文件的实际数据的地方。
每个簇都有固定的大小,通常是512字节或4096字节。
文件系统将数据区划分为多个簇,每个簇可以存储一个文件或部分文件的数据。
当文件的大小超过一个簇的大小时,文件系统会从FAT表中查找下一个簇的位置,然后写入文件的下一个簇的数据。
为了提高磁盘访问的效率,FAT文件系统还引入了目录项(Directory Entry)来存储文件和文件夹的相关信息。
FAT文件系统原理
FAT文件系统原理FAT(File Allocation Table)文件系统是一种用于管理磁盘空间和存储文件的文件系统。
它最初由微软公司于1977年开发,广泛应用于早期的个人电脑和移动设备中。
FAT文件系统具有简单、可靠和高兼容性的特点,因此仍被用于许多现代操作系统中。
FAT文件系统的核心原理是使用文件分配表(File Allocation Table)来跟踪文件在存储媒体中的分配情况。
文件分配表是一个表格,用于记录存储媒体上每个存储块(cluster)的分配情况。
存储媒体(如硬盘、闪存等)被划分为一个个固定大小的存储块,文件分配表将这些存储块连接起来以形成文件。
FAT文件系统使用一个文件目录来记录所有文件和目录的相关信息。
每个文件和目录占据一个固定大小(通常为32字节)的目录条目。
每个目录条目包含了文件的名称、大小、起始簇号等信息。
目录条目中有一个特殊的标记,用于表示该条目是否已被删除或者未被使用。
当用户创建一个新文件时,FAT文件系统首先会找到一个未被使用的目录条目来保存文件的信息。
然后,它会从文件分配表中寻找连续的空闲存储块以存储文件的内容,并将这些存储块的索引记录到文件分配表中。
当用户删除一个文件时,FAT文件系统会将对应的目录条目标记为未使用,并将文件分配表中对应的存储块标记为可用。
FAT文件系统的文件访问速度较慢,主要是因为文件分配表的顺序访问会带来一定的开销。
为了加速文件访问,FAT文件系统采用了簇的概念。
一个簇由多个连续的存储块组成,文件的内容被分配到一个或多个簇上。
这样,文件系统可以根据文件的簇号从文件分配表中快速定位到文件的实际存储位置,减少顺序查找的时间。
此外,FAT文件系统还具有很好的兼容性。
它可以在不同的操作系统和硬件平台上使用,并且可以与其他文件系统(如NTFS、EXT等)共存。
这使得FAT文件系统成为许多移动设备、U盘、闪存卡等存储介质的常用文件系统。
总的来说,FAT文件系统通过使用文件分配表来管理存储媒体的空间,并使用目录条目来记录文件和目录的相关信息,实现了简单、可靠和高兼容性的文件管理。
几种文件系统的原理与对比
几种文件系统的原理与对比文件系统是计算机存储管理的一种重要方式,它负责组织和管理计算机文件的存储、命名、访问和保护等操作。
不同的文件系统采用了不同的策略和原理来管理文件的组织和存储,下面将对几种常见的文件系统原理与对比进行详细介绍。
1. FAT文件系统(File Allocation Table)FAT文件系统是最早使用的文件系统之一,它采用了FAT表的概念来管理磁盘上的文件。
在FAT表中,每个文件都分配了一个表项来记录其存储位置信息。
FAT文件系统的优点是简单易用,对于小型存储介质和嵌入式设备较为合适;缺点是文件系统效率低下,不适用于大容量存储设备。
2. NTFS文件系统(New Technology File System)NTFS文件系统是微软开发的,用于Windows操作系统的文件系统,它采用了B+树的索引方式来管理文件。
NTFS的优点在于支持大容量存储设备,具有更高的效率和更好的稳定性,同时支持文件加密、压缩和访问控制等高级功能。
3. EXT文件系统(Extended File System)EXT文件系统是Unix和Linux操作系统常用的文件系统,目前已经发展到EXT4版本。
EXT文件系统使用了索引节点(Inode)的概念来管理文件,每个文件都有一个索引节点,记录了文件的属性和数据块的地址信息。
EXT4文件系统在性能、兼容性和可靠性方面有了很大的改进,支持更大的文件和更高的性能。
4. HFS+文件系统(Hierarchical File System Plus)HFS+文件系统是苹果公司开发的文件系统,用于Macintosh电脑的操作系统。
HFS+文件系统支持大文件和Unicode编码,并且具有日志功能来提高文件系统的可靠性。
HFS+文件系统是一种面向大容量存储的文件系统,适用于苹果设备的特定要求。
在对比几种文件系统时,可以从以下几个方面进行比较:1.空间管理:文件系统应能有效地管理存储设备的空间,提供高效的存储分配和回收策略。
详细了解并学习FatFS文件系统的基本原理
详细了解并学习FatFS文件系统的基本原理最近做的spi flash,本打算弄个文件系统,由于之前用过了JFFS、YAFFS和TrueFFS,代码量都相当的大,这次想找款代码量不那么吓人的,学习一下,听说配置会相对复杂一些。
选来选去,最终选定了FatFS,代码量足够的小,最新的R0.09版本只有1个.c文件(当然,还有一个底层的要自己写,option文件夹里的无视),老点版本就更小了。
而且更新很频繁,用户量也够大,就选定它了。
尽管最后由于硬件和项目原因未能实际的移植它到vxWorks,但学过的还是要记录下。
在这里http://elm-chan/fsw/ff/00index_el下载源码,只有800多K,小的可怜,还可以下载示例程序,有A VR、Win32、lpc等多平台已实现的方案。
打开看src文件夹,一个opTIon 文件夹、00readme.txt、diskio.h、ff.c、ff.h、ffconf.h和interger.h。
移植时需要修改的文件主要包括ffconf.h和interger.h,后者是在它的定义与目标平台上的有冲突,或者用的不习惯时修改的。
在做具体修改之前,先大概阅读下FatFS的源代码,可以先读integer.h,了解所用的数据类型,然后是ff.h,了解文件系统所用的数据结构和各种函数声明,再就是diskio.h,了解与介质相关的数据结构和操作函数。
ff.c这个文件相对较大,可以在最后将所实现的函数大致扫描一遍,之后根据用户应用层程序调用函数的次序仔细阅读相关代码。
各个文件都可以直接用记事本打开查阅,非常方便。
ff.h中的几个结构体十分重要,列举如下,首先是最基础的文件系统结构体:view plaincopy to clipboardprint?/* File system object structure (FATFS) */typedef struct {BYTE fs_type; /* FAT子类型,一般在mount时用,置0表示未挂载*/BYTE drv; /* 物理驱动号,一般为0*/BYTE csize; /* 每个簇的扇区数目(1,2,4...128) */BYTE n_fats; /* 文件分配表的数目(1,2) */。
透彻分析FAT文件系统(二)
透彻分析FAT文件系统!(二)四、FAT分区原理。
先来一幅结构图:现在我们着重研究FAT格式分区内数据是如何存储的。
FAT分区格式是MICROSOFT最早支持的分区格式,依据FAT表中每个簇链的所占位数(有关概念,后面会讲到)分为fat12、fat16、fat32三种格式"变种",但其基本存储方式是相似的。
仔细研究图7中的fat16和fat32分区的组成结构。
下面依次解释DBR、FAT1、FAT2、根目录、数据区、剩余扇区的概念。
提到的地址如无特别提示均为分区内部偏移。
4.1 关于DBR.DBR区(DOS BOOT RECORD)即操作系统引导记录区的意思,通常占用分区的第0扇区共512个字节(特殊情况也要占用其它保留扇区,我们先说第0扇)。
在这512个字节中,其实又是由跳转指令,厂商标志和操作系统版本号,BPB(BIOS Parameter Block),扩展BPB,os引导程序,结束标志几部分组成。
以用的最多的FAT32为例说明分区DBR各字节的含义。
见图8。
图8的对应解释见表3图9给出了winhex对图8 DBR的相关参数解释:根据上边图例,我们来讨论DBR各字节的参数意义。
MBR将CPU执行转移给引导扇区,因此,引导扇区的前三个字节必须是合法的可执行的基于x86的CPU指令。
这通常是一条跳转指令,该指令负责跳过接下来的几个不可执行的字节(BPB和扩展BPB),跳到操作系统引导代码部分。
跳转指令之后是8字节长的OEM ID,它是一个字符串,OEM ID标识了格式化该分区的操作系统的名称和版本号。
为了保留与MS-DOS的兼容性,通常Windows 2000格式化该盘是在FAT16和FAT32磁盘上的该字段中记录了“MSDOS 5.0”,在NTFS磁盘上(关于ntfs,另述),Windows 2000记录的是“NTFS”。
通常在被Windows 95格式化的磁盘上OEM ID字段出现“MSWIN4.0”,在被Windows 95 OSR2和Windows 98格式化的磁盘上OEM ID字段出现“MSWIN4.1”。
文件系统fat和ntfs的原理
文件系统fat和ntfs的原理文件系统是计算机操作系统中的一部分,用于组织和管理计算机存储设备中的文件和目录。
常见的文件系统有FAT和NTFS两种。
本文将分别介绍FAT和NTFS文件系统的原理和特点。
一、FAT文件系统的原理和特点1. 原理:FAT(File Allocation Table)文件系统是由微软公司开发的一种简单的文件系统。
它使用了文件分配表来追踪磁盘上文件的存储位置。
FAT文件系统使用磁盘上的文件分配表来记录每个文件占用的簇号,并使用链表的方式将这些簇连接起来,从而形成完整的文件。
2. 特点:(1)FAT文件系统具有良好的兼容性,可以在多个操作系统中共享文件。
(2)FAT文件系统的存储结构简单,占用资源少,适用于较小容量的存储设备。
(3)FAT文件系统支持文件和目录的命名,可以对文件进行读写、删除、复制等操作。
(4)FAT文件系统对文件的大小和簇大小有一定的限制,无法支持大文件和大容量存储设备。
(5)FAT文件系统没有对文件进行加密和访问控制的能力,安全性较低。
二、NTFS文件系统的原理和特点1. 原理:NTFS(New Technology File System)文件系统是微软公司开发的一种高级文件系统。
它采用了B+树的数据结构来组织和管理文件和目录。
NTFS文件系统将磁盘空间划分为多个逻辑区域,通过文件记录和索引来管理文件的存储和访问。
2. 特点:(1)NTFS文件系统支持大容量存储设备和大文件,可以处理几TB 甚至PB级别的数据。
(2)NTFS文件系统具有高度的可靠性和稳定性,支持磁盘冗余和数据恢复。
(3)NTFS文件系统支持文件和目录的权限控制,可以对文件进行加密和访问控制。
(4)NTFS文件系统支持文件的压缩和加密,可以节省存储空间并提高数据安全性。
(5)NTFS文件系统支持文件的快照和防止数据损坏,可以提供更好的数据保护和恢复能力。
三、FAT和NTFS文件系统的比较1. 性能比较:FAT文件系统在小容量存储设备上性能较好,但在大容量存储设备上性能较差。
透彻分析FAT文件系统
透彻分析FAT文件系统FAT文件系统(File Allocation Table)是一种广泛用于存储设备的文件系统类型,尤其是在早期的操作系统中广泛使用。
在本文中,我们将更深入地探讨FAT文件系统的工作原理和一些特性。
FAT文件系统最早由微软公司于1970年代初设计并推出,目的是为了在早期计算机上实现简单而高效的文件存储。
它的设计原则是易于实现和跨平台兼容,并且在磁盘空间利用率和性能之间找到一个平衡。
FAT文件系统的核心组件是文件分配表(File Allocation Table),它是一个表格,用于记录存储设备上每个文件的分配情况。
每个表项的大小固定为12、16或32位(取决于FAT版本),用于表示磁盘上的一个簇(cluster)。
一个簇是FAT文件系统中分配存储空间的最小单位。
当文件被写入磁盘时,FAT文件系统将为该文件分配一个或多个簇来存储文件数据。
分配的簇号将记录在文件分配表中,并且会按照顺序链接在一起,形成一个簇链表。
通过遍历簇链表,操作系统就可以找到文件的每个簇,从而读取或写入文件数据。
在FAT文件系统中,目录也被视为一种特殊的文件。
目录包含文件和子目录的记录项,每个记录项都有一个文件名和对应的簇号。
通过遍历目录中的记录项,操作系统可以找到具体文件的位置和属性。
为了提高磁盘空间利用率,FAT文件系统使用了簇的概念。
簇的大小在格式化磁盘时被设定,通常为2KB、4KB或8KB。
这样一来,当一个文件的大小不是簇大小的整数倍时,会出现空闲空间浪费的情况。
例如,一个2KB的文件会占用一个簇的空间,而剩余的空间将会被浪费掉。
FAT文件系统还支持文件的组织层次,即目录结构。
目录结构是以层次结构组织的,每个目录都可以包含文件和子目录。
根目录是整个文件系统的起点,而其他目录则通过层层嵌套的方式对文件进行组织。
此外,FAT文件系统还提供了一些特性来增强文件系统的可用性,例如长文件名支持、文件属性和权限、文件碎片整理等。
FAT文件系统的概要分析
F A I文件系统的概要分析
江德龙 李 巍
( 1 . 烟 台东方威思顿 电气有 限公 司 ,山东 烟台 2 6 4 0 0 0;2 . 烟台市清洁能源检测中心 ,山东 烟 台 2 40 6 0 1)
【 摘 要】 微 软公 司的 w i n d o w s 系列操作 系统在我 国民用和 商
区 F A T 区 的 下 一 扇 区 根 目 录 区 的 下 一 扇 区 F A T表 的份数 根 目录 中 目录 项 数 * 3 2字节 总扇 区数 一 其 他 三 区 的扇 区数之 和
业电脑操 作 系统 占有很大的份额 ,其推 出的 F A T文件 系统 和 NT F S 文 件 系统 同样 应 用 广 泛 。 F A T 的 文 件 系 统 作 为 应 用 时 间 最 长 的 w i n d o w s文件 系统 , 研 究其结构和格式 内容对理解和 掌握计算机 的 文件 系统有着积极的意义。本文概要地分析 了 F A T文件 系统 。
根 目录 Leabharlann 目录和 数据 区 2 . 2 F A T表 区
【 关键词 】 F A T 1 2 ;F A T 1 6 ;F A T 3 2 ;B P B;P A T表 区; 目录;
数据
引 言
F A T ( F i l e A 1 l o c a t i o n T a b l e )文 件 系 统 是 由 M i c r o s o f t W i n d o w s 、M s - D o s支持 的文件系统 。在计算机 中应用很广泛 F A T文 件系统 有 3种格 式:F A T 1 2 、F A T 1 6 、F A T 3 2 。它们 的分类是根据 F A T 表结构 中 F A T表项的所 占 B I T位来区分的。所 占的 B I T位越 多,也 就意味 着它们支持的磁盘空间越 多。在 早期 的计算机 中,C P U处理 速度 、存储介质容量远不 能和今 日相 比。F A T 1 2文件系统足 以应付 。 随着计 算机 技术的发展,F A T文件 系统必然加 以修 改和 扩充,F A T 1 6 和F A T 3 2就 是 这样 的 出 现 的 。 1 文 件 系统 的 区域 划 分 文件系统将磁盘划分为物理 区和 逻辑区。物理 区涵盖逻辑 区。 逻辑 区是物理区 的子集 。操作 系统最初 通过物理区的最初一个扇 区 ( 第 一分区表) ,找到逻辑区,从而实现文件和数据 的读写 。第一分 区表 位 于 物 理 区 的 最 初 一 个 扇 区 ,也 就 是 常 说 的 电脑 磁 盘 的 0柱 面 的 0磁 头 l扇区。其他分区由主分区表依次推 出。 F A T文件系统就位于每个分 区上 。 F A T文件系统将其 分为保 留 区、F A T表区、根 目录 区、目录和数据 区。可 以这么理解 ,根据逻 辑磁盘数 ,磁 盘有相应数 目的 F A T文件系统 ( 保留 区、F A T表 区、 根 目录 区、 目录和数据区 )与之对应 。 2 F A T文件 系统各 个区的简介 2 . 1 保 留 区 B P B( B I O S P a r a m e t e r B l o c k )是一个重要数据结构 。它位于本 分区的第 一个扇区。这个扇区的结构定义根据 F A T文件 的格式不 同 而有 所 不 同 。 F A T l 2 / F A T l 6 B P B结构伪码表示 ( 中括号里 的数字为所 占用 的字 节数 ){ 跳转指令 [ 4字节 ( 以下略去字节 二字)] :类型字符 串[ 8 3 ; 每扇 区字节 数[ 2 ] ; 每簇扇 区数 [ 1 ] ; 保 留区中的保 留扇区数 [ 2 ] ; F A T 表的份 数[ 1 ] ;F A T 1 2 / 1 6的根 目录 中 目录项数 [ 2 ] ;F A T 1 2 / 1 6总扇区 数的低两位 [ 2 3 ; 存储介质类 型[ 1 ] ; F A T 1 2 / 1 6 F A T 表所 占的扇 区[ 2 ] : 每磁道扇 区数[ 2 ] ;磁头 数[ 2 ] ;F A T 分区之 前的隐藏扇 区数[ 4 ] ;总 扇 区数 [ 4 ] ;磁盘驱动器参数 [ 1 ] ;保 留 [ 1 ] ;扩展 弓 I 导标志 [ 1 ] ;卷 标号 [ 4 3 ;磁盘卷标 [ “] ;文件类型字符串 [ 8 ] ;) F A T 3 2 B P B结构伪码表示 : f 跳转 指令 [ 4 ] ;类型字符 串[ 8 ] :每 扇 区字节数 [ 2 ] :每簇扇 区数 [ 1 ] ;保 留区中的保留扇 区数 [ 2 ] ;F A T 表 的份 数[ 1 ] ;为 0 [ 2 ] ;为 0 [ 2 ] ;存储介质类型 [ 1 ] ;为 O [ 2 ] ; 每磁道扇 区数[ 2 ] ;磁 头数[ 2 ] ;F A T分区之 前的隐藏扇 区数[ 4 ] ;总 扇 区数[ 4 ] ;F A T 3 2表所 占的扇 区数 [ 4 ] ;F A T 3 2状态字 [ 2 ] ;F A T 3 2 版本 号[ 2 ] ;F A T 3 2 根目 录所在 的簇号 [ 4 ] ;F A T 3 2的 F S I N F 0所 占 扇 区[ 2 ] ;F A T 3 2保 留区引导记录备份扇 区[ 2 ] ;保留 [ 1 2 ] ;磁盘驱动 器参数 [ 1 ] ; 保留 [ 1 ] ; 扩 展引导标 志[ 1 ] ; 卷标号 [ 4 ] ; 磁盘卷标 [ 1 1 ] ; 文件类型字符 串[ 8 】 ;} 这个扇 区给出了 F A T文件系统的核心参数 。根据这些参数可 以 算出F A T 表 区、根 目录区、 目录和数据区的起始地址和大小 。
文件系统fat和ntfs的原理
文件系统fat和ntfs的原理FAT和NTFS是两种常见的文件系统,它们在计算机存储中起着重要的作用。
本文将分别介绍FAT和NTFS的原理,以及它们在文件存储中的特点和应用。
一、FAT文件系统的原理FAT(File Allocation Table)文件系统是最早应用于个人计算机的一种文件系统。
它的原理是将存储设备(如硬盘、U盘等)划分为若干个簇(Cluster),每个簇由若干个扇区(Sector)组成。
FAT 文件系统通过使用文件分配表(File Allocation Table)来记录每个簇的使用情况,以便于管理文件的存储和检索。
在FAT文件系统中,文件和目录被组织为一个层次结构,最顶层是根目录(Root Directory),根目录下可以包含文件和子目录。
每个文件或目录的相关信息,如名称、大小、属性等,都存储在目录项(Directory Entry)中。
而目录项的内容则通过文件分配表来确定文件或目录所占用的簇的位置。
FAT文件系统的优点之一是兼容性强,几乎所有操作系统都能够识别和访问FAT格式的存储设备。
此外,FAT文件系统还具有简单、易于实现和维护的特点。
二、NTFS文件系统的原理NTFS(New Technology File System)文件系统是微软公司开发的一种高级文件系统,它首次引入于Windows NT操作系统。
相对于FAT文件系统,NTFS具有更多的功能和更好的性能。
NTFS文件系统的原理是将存储设备划分为一个个的簇,每个簇的大小可以根据实际需求进行调整。
与FAT不同的是,NTFS使用了一种称为MFT(Master File Table)的结构来管理文件和目录的存储。
在NTFS文件系统中,每个文件和目录都有一个唯一的MFT记录,该记录存储了文件的元数据(如文件名、大小、权限等)以及文件的数据存储位置。
MFT记录中的数据可以直接存储在记录本身中,也可以通过指针指向其他数据簇。
FATFS文件系统剖析(全)
FATFS文件系统剖析1:FAT16:数据按照其不同的特点和作用大致可分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区,相比fat12多了DBR区Main boot record: MBR(0--1bdh)磁盘参数存放DPT(1beh--1fdh)磁盘分区表55,aa 分区结束标志DBR(Dos Boot Record)是操作系统引导记录区的意思FAT区(有两个,一个备份):对于fat16,每一个fat项16位,所以可寻址的簇项数为65535(2的16次方)。
而其每簇大小不超过32k,所以其每个分区最大容量为2G。
fat32,每一个fat项32位,可寻址簇数目为2的32次方。
DIR区(根目录区):紧接着第二FAT表(即备份的FAT表)之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。
定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。
DATA区:实际文件内容存放区。
FAT32:暂时放在这里,不讨论!Fatfs:嵌入式fat文件系统,支持fat16,fat32。
包含有ff.h,diskio.h,integer.h,ffconf.h 四个头文件以及ff.c 文件系统实现。
当然要实现具体的应用移植,自己要根据diskio.h实现其diskio。
c 底层驱动。
diskio.h : 底层驱动头文件ff.h : 文件系统实现头文件,定义有文件系统所需的数据结构ff.c : 文件系统的具体实现如下开始逐个文件加以分析:integer.h :仅实现数据类型重定义,增加系统的可移植性。
ffconf.h : 文件系统配置---逐个配置,先配置实现一个最小的fat文件系统,下面来分析各配置选项:#define _FFCONF 8255 //版本号#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ //在这里与先前版本有些许变化,是通过配置头配置两种不同大小的文件系统,这里配置为0。
fat原理
fat原理fat原理是一种常用的文件系统架构,它使用文件分配表(File Allocation Table,FAT)来管理存储设备上的文件和文件夹。
FAT文件系统最初由微软公司开发,旨在为早期的计算机系统提供简单而有效的文件管理功能。
FAT文件系统的原理基于以下几个核心概念:1. 文件分配表(File Allocation Table):FAT文件系统使用文件分配表来跟踪存储设备上的文件和文件夹。
该表记录了存储设备上每个文件的起始位置、文件长度以及下一个块的位置。
2. 簇(Cluster):FAT文件系统将存储设备划分为多个固定大小的区块,称为簇。
每个簇可以存储一个或多个连续的扇区。
文件系统使用簇作为文件的基本分配单位,这样可以避免大文件存储时的碎片化问题。
3. 目录(Directory):FAT文件系统将存储设备上的文件和文件夹组织为一个层次化的目录结构。
每个目录可以包含多个文件和子目录,通过目录树可以方便地定位和管理文件。
4. 文件入口(File Entry):FAT文件系统中的每个文件和文件夹都有一个对应的文件入口。
文件入口中包含了文件名、扩展名、文件属性、起始簇号等信息。
5. 文件链接(File Linking):当一个文件需要占用多个簇时,FAT文件系统使用文件链接来连接这些簇。
通过文件入口中的起始簇号和下一个簇号,文件系统可以按顺序遍历所有的簇,以读取文件的完整内容。
6. 簇链(Cluster Chain):如果一个文件需要占用多个簇,存储设备的FAT表将记录这些簇以形成一条簇链。
通过这个簇链,文件系统可以快速定位并读取文件的任何部分。
通过以上原理,FAT文件系统实现了简单而高效的文件管理。
它适用于各种存储设备,如硬盘、U盘和SD卡,被广泛应用于许多操作系统中。
然而,随着计算机技术的不断发展,FAT 文件系统的局限性逐渐显现,如文件大小限制和性能不足等。
因此,现在更多的操作系统和设备倾向于采用更先进的文件系统,如NTFS和ext4等。
FAT文件系统原理 四 转载12页word
FAT文件系统原理四转载FAT文件系统原理(四)(转载)2011/06/12 10:18FAT文件系统原理(四)★FAT16存储原理:当把一部分磁盘空间格式化为fat文件系统时,fat文件系统就将这个分区当成整块可分配的区域进行规划,以便于数据的存储。
一般来讲,其划分形式如图7所示。
我们把FAT16部分提取出来,详细描述一下:FAT16是Microsoft较早推出的文件系统,具有高度兼容性,目前仍然广泛应用于个人电脑尤其是移动存储设备中,FAT16简单来讲由图4.3.11所示的6部分组成(主要是前5部分)。
引导扇区(DBR)我们已经说过,FAT16在DBR之后没有留有任何保留扇区,其后紧随的便是FAT 表。
FAT表是FAT16用来记录磁盘数据区簇链结构的。
像前面我们说过的例子一样,FAT将磁盘空间按一定数目的扇区为单位进行划分,这样的单位称为簇。
通常情况下,每扇区512字节的原则是不变的。
簇的大小一般是2n(n为整数)个扇区的大小,像512B,1K,2K,4K,8K,16K,32K,64K。
实际中通常不超过32K。
之所以簇为单位而不以扇区为单位进行磁盘的分配,是因为当分区容量较大时,采用大小为512b的扇区管理会增加fat表的项数,对大文件存取增加消耗,文件系统效率不高。
分区的大小和簇的取值是有关系的,见表9(单击此处查看PDF版全文)图4.3.11 Fat16的组织形式引导扇区FAT1 FAT2(重复的)根文件夹其他文件夹及所有文件剩余扇区1扇区实际情况取大小同FAT1 32个扇区开始簇编号(从2开始)不足一簇表9 FAT16分区大小与对因簇大小分区空间大小每个簇的扇区簇空间大小0MB-32MB 1512个字节33MB-64MB 21k 65MB-128MB 42k 129MB-225MB 84k 256MB-511MB 16 8k 512MB-1023MB 32 16k 1024MB-2047MB 64 32k 2048MB-4095MB 128 64k注意:少于32680个扇区的分区中,簇空间大小可最多达到每个簇8个扇区。
FAT文件系统原理
硬盘 FAT 文件系统原理的详细分析一、硬盘的物理结构: 硬盘的物理结构:硬盘存储数据是根据电、磁转换原理实现的。
硬盘由一个或几个表面镀有磁性物质 的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图 1), 其中盘 片和磁头密封在无尘的金属壳中。
硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径 向移动到指定位置然后将数据存储或读取出来。
当系统向硬盘写入数据时,磁头中“写数据” 电流产生磁场使盘片表面磁性物质状态发生改变, 并在写电流磁场消失后仍能保持, 这样数 据就存储下来了;当系统从硬盘中读数据时,磁头经过盘片指定区域,盘片表面磁场使磁头 产生感应电流或线圈阻抗产生变化, 经相关电路处理后还原成数据。
因此只要能将盘片表面 处理得更平滑、磁头设计得更精密以及尽量提高盘片旋转速度,就能造出容量更大、读写数 据速度更快的硬盘。
这是因为盘片表面处理越平、转速越快就能越使磁头离盘片表面越近, 提高读、写灵敏度和速度;磁头设计越小越精密就能使磁头在盘片上占用空间越小,使磁头 在一张盘片上建立更多的磁道以存储更多的数据。
二、硬盘的逻辑结构: 硬盘的逻辑结构: 硬盘由很多盘片(platter)组成,每个盘片的每个面都有一个读写磁头。
如果有 N 个盘片。
就有 2N 个面,对应 2N 个磁头(Heads),从 0、1、2 开始编号。
每个盘片被划 分成若干个同心圆磁道(逻辑上的,是不可见的。
)每个盘片的划分规则通常是一样的。
这样 每个盘片的半径均为固定值 R 的同心圆再逻辑上形成了一个以电机主轴为轴的柱面(Cylind ers), 从外至里编号为 0、 2……每个盘片上的每个磁道又被划分为几十个扇区(Sector), 1、 通常的容量是 512byte,并按照一定规则编号为 1、2、3……形成 Cylinders×Heads×S ector 个扇区。
FAT文件系统结构分析
17、文件恢复注意事项
• 如果某文件被删除,而该分区又被写入了新文件,则误删文 件的目录项和簇位置可能被覆盖,导致文件无法被恢复。因 此在文件被误删除后是禁止往该分区写入任何信息的。 • 恢复文件时,为了避免恢复错误带来的影响,应当将恢复的 数据写入到其他盘的新文件中,即尽量不对原数据造成影响。 • 有的情况下数据是不可能恢复的,如数据被覆盖、低级格式 化、磁盘该位置物理损坏等。
2、簇
• 在FAT文件系统中,存储文件的基本单位是簇。一个簇由 1~128个扇区组成,但必须是2的n次方倍。 • 软盘的一个簇由一个扇区组成,硬盘分区的簇通常由8个扇 区组成,计4KB。 • 在一个分区中的簇大小是固定的,其大小在引导扇区的BPB (BIOS参数块)中给出。
3、簇大小
• 操作系统以簇为单位给文件分配空间,通常每个文件会浪费 掉0.5簇空间。 • 如果把簇空间设置的大些,则会造成浪费空间较多,如果簇 空间过小,则会造成FAT表增大,使得链表加长,同样会浪 费空间,而且使访问速度降低。 • 簇大小一般由格式化程序自动指定,在32位系统中一般为 4KB~16KB。
FAT32的BPB参数描述-1
偏移 0H 3H 0BH 0DH 0EH 10H 11H 长度 3B 8B 2B 1B 2B 1B 2B 跳转指令,跳至后面引导记录开始处(FAT32从5AH处开始) 文件系统和版本的OEM标志(MSDOS 5.0或MSWIN4.1) 每扇区字节数(通常为200H) 每簇扇区数(值为2的N次方,通常小于64) 保留扇区数(本分区中FAT表之前的扇区总数,通常FAT16为1,FAT32为20H或24H) FAT表个数(通常为2) FAT16系统为根目录最大项,FAT32系统为0 描 述
FAT系统簇号标记说明
FATFS文件系统剖析(全).
FATFS文件系统剖析1:FAT16:数据按照其不同的特点和作用大致可分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区,相比fat12多了DBR区Main boot record: MBR(0--1bdh)磁盘参数存放DPT(1beh--1fdh)磁盘分区表55,aa 分区结束标志DBR(Dos Boot Record)是操作系统引导记录区的意思FAT区(有两个,一个备份):对于fat16,每一个fat项16位,所以可寻址的簇项数为65535(2的16次方)。
而其每簇大小不超过32k,所以其每个分区最大容量为2G。
fat32,每一个fat项32位,可寻址簇数目为2的32次方。
DIR区(根目录区):紧接着第二FAT表(即备份的FAT表)之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。
定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。
DATA区:实际文件内容存放区。
FAT32:暂时放在这里,不讨论!Fatfs:嵌入式fat文件系统,支持fat16,fat32。
包含有ff.h,diskio.h,integer.h,ffconf.h 四个头文件以及ff.c 文件系统实现。
当然要实现具体的应用移植,自己要根据diskio.h实现其diskio。
c 底层驱动。
diskio.h : 底层驱动头文件ff.h : 文件系统实现头文件,定义有文件系统所需的数据结构ff.c : 文件系统的具体实现如下开始逐个文件加以分析:integer.h :仅实现数据类型重定义,增加系统的可移植性。
ffconf.h : 文件系统配置---逐个配置,先配置实现一个最小的fat文件系统,下面来分析各配置选项:#define _FFCONF 8255 //版本号#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ //在这里与先前版本有些许变化,是通过配置头配置两种不同大小的文件系统,这里配置为0。
了解电脑文件系统FAT和NTFS的区别
了解电脑文件系统FAT和NTFS的区别在计算机科学领域,文件系统是指操作系统用来组织和存储计算机中的文件和目录的方法。
常见的文件系统包括FAT(File Allocation Table)和NTFS(New Technology File System)。
本文将详细介绍这两种文件系统的区别。
一、FAT文件系统FAT文件系统最早由微软公司开发,被广泛应用于DOS和早期的Windows操作系统上。
它的设计简单,具有一定的兼容性和易用性。
1. 文件分配方式:FAT文件系统采用的是基于文件分配表的方式来分配和管理磁盘空间。
文件分配表记录了磁盘上每个簇(一组连续的磁盘扇区)的使用情况。
FAT文件系统通过查询文件分配表来确定文件的物理位置。
2. 文件名和路径:FAT文件系统支持短文件名和长文件名两种命名格式。
短文件名最多只能使用8个字符的文件名和3个字符的文件扩展名。
而长文件名则支持更长的文件名,并可以使用特殊字符和空格。
3. 文件大小和磁盘容量限制:FAT16是FAT文件系统的一种变体,它支持的最大文件大小为2GB,磁盘容量上限为2TB。
而FAT32则支持的最大文件大小为4GB,磁盘容量上限为2TB。
二、NTFS文件系统NTFS文件系统是微软为Windows NT系列操作系统而开发的一种高级文件系统。
相比于FAT文件系统,NTFS具有更多的功能和更高的性能。
1. 安全性和权限控制:NTFS文件系统支持文件和目录的权限设置,可以通过给用户和用户组分配不同的访问权限来实现安全控制。
这种权限控制能力在多用户环境下尤为重要。
2. 文件分配方式:NTFS文件系统采用了类似于UNIX的索引分配方式,它使用一个B+树结构来管理文件的物理位置。
相比于基于文件分配表的FAT文件系统,NTFS能够更高效地分配和管理磁盘空间。
3. 文件名和路径:NTFS文件系统支持使用Unicode字符进行文件名的命名,可以使用更多种类的字符。
FAT
FA T文件系统是文件在磁盘中的一种组织形式,其目的无非是便于操作系统在磁盘中找到需要的文件。
FA T文件系统有三个版本:FA T12,FA T16,FA T32。
其原理一样,只是在管理的磁盘空间容量有差别,是递增的关系。
一块新的磁盘需要格式化后才可以使用,而格式化的目的便是组织磁盘的文件系统。
刚到手的磁盘内部空间是一个大的整体,格式化后,磁盘内部空间被划分为五个部分:MBR,DBR,FA T,根目录,数据区。
文件系统是从FA T部分开始的。
MBR部分并不是所有磁盘都有,记录磁盘最重要的结构信息,包括一小段执行代码(主引导代码)、磁盘特征和硬盘分区表。
DBR为引导扇区,FA T是文件分配表,根目录记录文件信息,数据区存储文件数据。
每部分的组织形式如下:MBR(主引导记录扇区)基本结构:(1)主引导程序(偏移地址0000H~0088H),它负责从活动分区中装载并运行系统引导程序。
(2)出错信息数据区偏移地址(0089~00E1为出错信息,10E2H~10BD全为0字节)(3)分区表(DPT,Disk Partition Table).含4个分区项偏移地址01BEH~01FDH,每个分区表项长16个字节,共64字节为分区项1,分区项2,分区项3,分区项4).其中,加下划线的16个字节数据就是分区项1(即主分区)的参数.(4)结束标志偏移地址(01EFH~01FFH的两个字节值为结束标志55AA,如果该标志错误系统就不能启动).主要功能:(1)检查硬盘分区表是否完好(2)在分区表中寻找可引导的活动分区(3)将活动分区的第一逻辑扇区内容装入内存。
在DOS/WINDOWS分区中,此扇区内容称为DOS引导记录。
应着重理解:分区表:分区表中记录有DBR的地址DBR(引导记录)基本结构:(1)跳转指令,占用3个字节的跳转指令将跳至引导代码,其内容随DOS版本变化。
(2)厂商标识和DOS版本号。
该部分总共占用8个字节,其内容随DOS版本而不同。
了解电脑文件系统FATNTFS和exFAT的区别与使用场景
了解电脑文件系统FATNTFS和exFAT的区别与使用场景了解电脑文件系统FAT、NTFS和exFAT的区别与使用场景电脑文件系统是一种组织和管理计算机硬盘或其他存储设备上文件和目录的方法。
常见的电脑文件系统包括FAT、NTFS和exFAT。
本文将介绍这三种文件系统的区别和使用场景。
一、FAT文件系统FAT(File Allocation Table)是DOS(Disk Operating System)和早期的Windows操作系统所使用的文件系统。
它的特点是简单、容易实现和兼容性好。
FAT文件系统将硬盘或存储设备划分为多个区块(cluster),并在磁盘上维护一个表格来记录文件和目录的存储位置。
FAT文件系统的优点是兼容性好,几乎所有的操作系统都能够读写FAT格式的存储设备。
然而,它也存在一些缺点,比如文件和目录的最大容量受到限制,文件名长度有限制,无法实现高级的访问权限控制等。
使用场景:FAT文件系统适用于需求简单的场景,比如在一些老旧的嵌入式设备上(如音频播放器、数码相机等),或者在需要与多个操作系统交互的存储设备上(如USB闪存驱动器)。
二、NTFS文件系统NTFS(New Technology File System)是Windows NT系列操作系统引入的文件系统,它采用了更先进的设计和管理方法。
与FAT文件系统相比,NTFS的功能更加强大,支持更大的存储容量和更高级的功能。
NTFS文件系统的特点包括:支持文件和目录的压缩和加密、支持动态磁盘、支持访问控制列表(ACL)和权限管理、支持文件系统日志和故障恢复等。
NTFS文件系统的优点是功能丰富,具备高级的权限管理和数据安全性保护能力。
然而,NTFS文件系统在某些低资源设备上可能存在着一定的兼容性问题。
使用场景:NTFS文件系统适合用于大容量存储设备,比如桌面电脑、服务器以及其他需要高级功能和数据安全性的场景。
三、exFAT文件系统exFAT(Extended File Allocation Table)是针对大容量存储设备而设计的文件系统。
FAT文件系统分析
FAT文件系统的数据结构中有两个重要的结构:文件分配表和目录项:文件和文件夹内容储存在簇中,如果一个文件或文件夹需要多余1个簇的空间,则用FAT表来秒速如何找到另外的簇。
FAT结构用于指出文件的下一个簇,同时也说明了簇的分配状态。
FAT12、FAT16、FAT32这三种文件系统的主要区别在于FAT项的大小不同。
FAT文件系统的每一个文件和文件夹都被分配到一个目录项,目录项中记录着文件名、大小、文件内容起始地址以及其他一些元数据。
在FAT文件系统中,文件系统的数据记录在“引导扇区DBR”中。
引导扇区位于整个文件系统的0扇区,是文件系统隐藏区域的一部分,我们称其为DBR(DOS Boot Recorder ——DOS引导记录)扇区,DBR中记录着文件系统的起始位置、大小、FAT表个数及大小等相关信息。
在FAT文件系统中,同时使用“扇区地址”和“簇地址”两种地址管理方式。
这是因为只有存储用户数据的数据区使用簇进行管理(FAT12和FAT16的根目录除外),所有簇都位于数据区。
其他文件系统管理数据区域是不以簇进行管理的,这部分区域使用扇区地址进行管理。
文件系统的起始扇区为0号扇区。
FAT32的保留区FAT32文件系统的开始部分有一个由若干扇区组成的保留区,保留区的信息会记录在DBR扇区中,比较常见的为32、34或38个扇区。
引导扇区:引导扇区是FAT32文件系统的第一个扇区,也称DBR扇区。
包含以下基本信息:·每扇区字节数·每簇扇区数·保留扇区数·FAT表个数·文件系统大小(扇区数)·每个FAT表大小(扇区数)·根目录起始簇号·其他附加信息说明:我们可以通过每个FAT表的大小扇区数乘以FAT的个数得到FAT区域的大小;通过保留扇区数和FAT区域的大小就可以得知数据区的起始位置,也即文件系统第一簇的位置。
由根目录的簇号和第一簇的位置就可以得到根目录的位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FAT文件系统原理一、硬盘的物理结构:硬盘存储数据是根据电、磁转换原理实现的。
硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1),其中盘片和磁头密封在无尘的金属壳中。
硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置然后将数据存储或读取出来。
当系统向硬盘写入数据时,磁头中“写数据”电流产生磁场使盘片表面磁性物质状态发生改变,并在写电流磁场消失后仍能保持,这样数据就存储下来了;当系统从硬盘中读数据时,磁头经过盘片指定区域,盘片表面磁场使磁头产生感应电流或线圈阻抗产生变化,经相关电路处理后还原成数据。
因此只要能将盘片表面处理得更平滑、磁头设计得更精密以及尽量提高盘片旋转速度,就能造出容量更大、读写数据速度更快的硬盘。
这是因为盘片表面处理越平、转速越快就能越使磁头离盘片表面越近,提高读、写灵敏度和速度;磁头设计越小越精密就能使磁头在盘片上占用空间越小,使磁头在一张盘片上建立更多的磁道以存储更多的数据。
二、硬盘的逻辑结构。
硬盘由很多盘片(platter)组成,每个盘片的每个面都有一个读写磁头。
如果有N个盘片。
就有2N个面,对应2N个磁头(Heads),从0、1、2开始编号。
每个盘片被划分成若干个同心圆磁道(逻辑上的,是不可见的。
)每个盘片的划分规则通常是一样的。
这样每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以电机主轴为轴的柱面(Cylinders),从外至里编号为0、1、2……每个盘片上的每个磁道又被划分为几十个扇区(Sector),通常的容量是512byte,并按照一定规则编号为1、2、3……形成Cylinde rs×Heads×Sector个扇区。
这三个参数即是硬盘的物理参数。
我们下面的很多实践需要深刻理解这三个参数的意义。
三、磁盘引导原理。
3.1 MBR(master boot record)扇区:计算机在按下power键以后,开始执行主板bios程序。
进行完一系列检测和配置以后。
开始按bios 中设定的系统引导顺序引导系统。
假定现在是硬盘。
Bios执行完自己的程序后如何把执行权交给硬盘呢。
交给硬盘后又执行存储在哪里的程序呢。
其实,称为mbr的一段代码起着举足轻重的作用。
MBR(maste r boot record),即主引导记录,有时也称主引导扇区。
位于整个硬盘的0柱面0磁头1扇区(可以看作是硬盘的第一个扇区),bios在执行自己固有的程序以后就会jump到mbr中的第一条指令。
将系统的控制权交由mbr来执行。
在总共512byte的主引导记录中,MBR的引导程序占了其中的前446个字节(偏移0H~偏移1BDH),随后的64个字节(偏移1BEH~偏移1FDH)为DPT(Disk PartitionTable,硬盘分区表),最后的两个字节“55 AA”(偏移1FEH~偏移1FFH)是分区有效结束标志。
MBR不随操作系统的不同而不同,意即不同的操作系统可能会存在相同的MBR,即使不同,MBR也不会夹带操作系统的性质。
具有公共引导的特性。
我们来分析一段mbr。
下面是用winhex查看的一块希捷120GB硬盘的mbr。
你的硬盘的MBR引导代码可能并非这样。
不过即使不同,所执行的功能大体是一样的。
这是wowoco ck关于磁盘mbr的反编译,已加了详细的注释,感兴趣可以细细研究一下。
我们看DPT部分。
操作系统为了便于用户对磁盘的管理。
加入了磁盘分区的概念。
即将一块磁盘逻辑划分为几块。
磁盘分区数目的多少只受限于C~Z的英文字母的数目,在上图DPT共64个字节中如何表示多个分区的属性呢?microsoft通过链接的方法解决了这个问题。
在DPT共64个字节中,以16个字节为分区表项单位描述一个分区的属性。
也就是说,第一个分区表项描述一个分区的属性,一般为基本分区。
第二个分区表项描述除基本分区外的其余空间,一般而言,就是我们所说的扩展分区。
这部分的大体说明见表1。
注:上表中的超过1字节的数据都以实际数据显示,就是按高位到地位的方式显示。
存储时是按低位到高位存储的。
两者表现不同,请仔细看清楚。
以后出现的表,图均同。
也可以在winhex中看到这些参数的意义:说明:每个分区表项占用16个字节,假定偏移地址从0开始。
如图3的分区表项3。
分区表项4同分区表项3。
1、0H偏移为活动分区是否标志,只能选00H和80H。
80H为活动,00H为非活动。
其余值对mic rosoft而言为非法值。
2、重新说明一下(这个非常重要):大于1个字节的数被以低字节在前的存储格式格式(little endian format)或称反字节顺序保存下来。
低字节在前的格式是一种保存数的方法,这样,最低位的字节最先出现在十六进制数符号中。
例如,相对扇区数字段的值0x3F000000的低字节在前表示为0x0000003F。
这个低字节在前的格式数的十进制数为63。
3、系统在分区时,各分区都不允许跨柱面,即均以柱面为单位,这就是通常所说的分区粒度。
有时候我们分区是输入分区的大小为7000M,分出来却是6997M,就是这个原因。
偏移2H和偏移6H的扇区和柱面参数中,扇区占6位(bit),柱面占10位(bit),以偏移6H为例,其低6位用作扇区数的二进制表示。
其高两位做柱面数10位中的高两位,偏移7H组成的8位做柱面数10位中的低8位。
由此可知,实际上用这种方式表示的分区容量是有限的,柱面和磁头从0开始编号,扇区从1开始编号,所以最多只能表示1024个柱面×63个扇区×256个磁头×512byte=8455716864byte。
即通常的8.4GB(实际上应该是7.8GB左右)限制。
实际上磁头数通常只用到255个(由汇编语言的寻址寄存器决定),即使把这3个字节按线性寻址,依然力不从心。
在后来的操作系统中,超过8.4GB的分区其实已经不通过C/H/S的方式寻址了。
而是通过偏移CH~偏移FH共4个字节32位线性扇区地址来表示分区所占用的扇区总数。
可知通过4个字节可以表示2^32个扇区,即2TB=2048GB,目前对于大多数计算机而言,这已经是个天文数字了。
在未超过8.4GB的分区上,C/H/S的表示方法和线性扇区的表示方法所表示的分区大小是一致的。
也就是说,两种表示方法是协调的。
即使不协调,也以线性寻址为准。
(可能在某些系统中会提示出错)。
超过8.4GB的分区结束C/H/S一般填充为FEH FFH FFH。
即C/H/S所能表示的最大值。
有时候也会用柱面对1024的模来填充。
不过这几个字节是什么其实都无关紧要了。
虽然现在的系统均采用线性寻址的方式来处理分区的大小。
但不可跨柱面的原则依然没变。
本分区的扇区总数加上与前一分区之间的保留扇区数目依然必须是柱面容量的整数倍。
(保留扇区中的第一个扇区就是存放分区表的MBR或虚拟MBR的扇区,分区的扇区总数在线性表示方式上是不计入保留扇区的。
如果是第一个分区,保留扇区是本分区前的所有扇区。
附:分区表类型标志如图43.2 扩展分区:扩展分区中的每个逻辑驱动器都存在一个类似于MBR的扩展引导记录( Extended Boot Record, E BR),也有人称之为虚拟mbr或扩展mbr,意思是一样的。
扩展引导记录包括一个扩展分区表和该扇区的标签。
扩展引导记录将记录只包含扩展分区中每个逻辑驱动器的第一个柱面的第一面的信息。
一个逻辑驱动器中的引导扇区一般位于相对扇区32或63。
但是,如果磁盘上没有扩展分区,那么就不会有扩展引导记录和逻辑驱动器。
第一个逻辑驱动器的扩展分区表中的第一项指向它自身的引导扇区。
第二项指向下一个逻辑驱动器的EBR。
如果不存在进一步的逻辑驱动器,第二项就不会使用,而且被记录成一系列零。
如果有附加的逻辑驱动器,那么第二个逻辑驱动器的扩展分区表的第一项会指向它本身的引导扇区。
第二个逻辑驱动器的扩展分区表的第二项指向下一个逻辑驱动器的EBR。
扩展分区表的第三项和第四项永远都不会被使用。
通过一幅4分区的磁盘结构图可以看到磁盘的大致组织形式。
如图5:关于扩展分区,如图6所示,扩展分区中逻辑驱动器的扩展引导记录是一个连接表。
该图显示了一个扩展分区上的三个逻辑驱动器,说明了前面的逻辑驱动器和最后一个逻辑驱动器之间在扩展分区表中的差异。
除了扩展分区上最后一个逻辑驱动器外,表2中所描述的扩展分区表的格式在每个逻辑驱动器中都是重复的:第一个项标识了逻辑驱动器本身的引导扇区,第二个项标识了下一个逻辑驱动器的EBR。
最后一个逻辑驱动器的扩展分区表只会列出它本身的分区项。
最后一个扩展分区表的第二个项到第四个项被使用。
扩展分区表项中的相对扇区数字段所显示的是从扩展分区开始到逻辑驱动器中第一个扇区的位移的字节数。
总扇区数字段中的数是指组成该逻辑驱动器的扇区数目。
总扇区数字段的值等于从扩展分区表项所定义的引导扇区到逻辑驱动器末尾的扇区数。
有时候在磁盘的末尾会有剩余空间,剩余空间是什么呢?我们前面说到,分区是以1柱面的容量为分区粒度的,那么如果磁盘总空间不是整数个柱面的话,不够一个柱面的剩下的空间就是剩余空间了,这部分空间并不参与分区,所以一般无法利用。
照道理说,磁盘的物理模式决定了磁盘的总容量就应该是整数个柱面的容量,为什么会有不够一个柱面的空间呢。
在我的理解看来,本来现在的磁盘为了更大的利用空间,一般在物理上并不是按照外围的扇区大于里圈的扇区这种管理方式,只是为了与操作系统兼容而抽象出来CHS。
可能其实际空间容量不一定正好为整数个柱面的容量吧。
关于这点,如有高见,请告知http: ///或zymail@。
四、FAT分区原理。
先来一幅结构图:现在我们着重研究FAT格式分区内数据是如何存储的。
FAT分区格式是MICROSOFT最早支持的分区格式,依据FAT表中每个簇链的所占位数(有关概念,后面会讲到)分为fat12、fat16、fat32三种格式"变种",但其基本存储方式是相似的。
仔细研究图7中的fat16和fat32分区的组成结构。
下面依次解释DBR、FAT1、FAT2、根目录、数据区、剩余扇区的概念。
提到的地址如无特别提示均为分区内部偏移。
4.1 关于DBR.DBR区(DOS BOOT RECORD)即操作系统引导记录区的意思,通常占用分区的第0扇区共512个字节(特殊情况也要占用其它保留扇区,我们先说第0扇)。
在这512个字节中,其实又是由跳转指令,厂商标志和操作系统版本号,BPB(BIOS Parameter Block),扩展BPB,os引导程序,结束标志几部分组成。
以用的最多的FAT32为例说明分区DBR各字节的含义。