您的位置: 网站首页 > 电子与嵌入式 > 计算机组装与维护 > 第6章 硬盘的分区与管理 > 【6.4 硬盘的数据结构】

6.4 硬盘的数据结构

 

6.4  硬盘的数据结构

了解硬盘上文件存储的数据结构对我们安装系统很有帮助,FAT16FAT32格式已经广为人之,但是NTFSMS的核心机密,掌握它的人并不多,本节也只是简要介绍,让读者有个初步认识。

6.4.1  FAT16FAT32文件系统

对于FAT16FAT32文件系统,硬盘上的数据按照其不同的特点和作用大致可分为5部分:MBR区、OBR区、FAT区、DIR区和DATA区。其中,MBR由分区软件创建,而OBR区、FAT区、DIR区和DATA区由高级格式化程序创建。文件系统写入数据时只是改写相应的FAT区、DIR区和DATA区。也正是这5个区域共同作用,才使整个硬盘的管理有条不紊。下面对这5个区域分别进行介绍。

1.主引导扇区

主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录(Main Boot RecordMBR)和分区表(Disk Partition TableDPT)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80H00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如DOS Fdisk.exe)产生的,不同操作系统的这个扇区可能不尽相同。也可以自己去编写一个,只要它能完成前述的任务即可,这也是为什么能实现多系统启动的原因。

2.操作系统引导扇区

操作系统引导扇区(OS Boot RecordOBR)通常位于分区的第一个扇区,是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPBBIOS Parameter Block)的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如Windows 98IO.SYSMSDOS.SYS)。如是,就把第一个文件读入内存,并把控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。OBR由高级格式化程序产生。

3.文件分配表

DBR之后就是文件分配表(File Allocation TableFAT)区。同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。硬盘上的文件常常要进行创建、删除、增长和缩短等操作。这样的操作做得越多,盘上的文件就可能被分得越零碎(每段至少是1簇)。但是,由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。

4.目录区

根目录(DirectoryDIR)紧接在第二FAT表之后,FAT自己不能定位文件在磁盘中的位置,它必须和DIR配合才能准确定位文件的位置。DIR记录着每个文件(目录)的起始单元(这是最重要的)、文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。在DIR区之后,才是真正意义上的数据存储区,即DATA区。

5.数据区

DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,对于我们来说也只能是一些枯燥的二进制代码,没有任何意义。在这里有一点要说明的是,通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,只是重写了FAT表而已,至于分区硬盘,也只是修改了MBRDBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。

如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使MBR/FAT/DIR全部坏了,也可以使用磁盘编辑软件(比如DOS下的DiskEdit),只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复。

6.4.2 NTFS文件系统

NTFS是一个性能优良的文件系统,它基于可恢复文件结构而设计,可使用户数据文件不会有丢失或毁坏的危险,适用于一些要求安全性高、而且在磁盘上存储远远大于FAT文件系统所能处理的巨型文件等场合。

1NTFS

NTFS文件系统中,使用“卷”这个术语来表示一个逻辑磁盘。卷可以是一个基本分区,一个扩展分区中的逻辑磁盘,或者是一个被视为非DOS分区的磁盘上的一部分空间。而且,一个卷可以是被Windows NT指定为一个逻辑驱动器的磁盘空间,它不必是一个磁盘上的相邻空间。

2B-Tree文件管理

NTFS利用B-Tree文件管理方法来跟踪文件在磁盘上的位置。这种技术比在FAT文件系统中使用的链接表技术具备更多的优越性。文件名顺序存放,因而查找速度更快。在更大的卷上,B-Tree会在宽度上增长,而不会在深度上增长,因此,当目录增大时,NTFS并没有显示出明显的性能下降。

3.磁盘上的NTFS结构

 

6-35  设置簇的大小

FAT相同,NTFS也使用“簇”作为最小的分配单位。簇的大小,也称为簇因子,由NTFS格式化程序确定。从“我的计算机”文件夹来进行格式化时,可以控制簇的大小,如图6-35所示。NTFS支持的簇大小为5121024     20484096个字节,这些默认值是一种在簇太大而造成簇内空间浪费与簇太小而造成产生碎片这两者之间的折衷方案。NTFS只与簇发生关系,与物理扇区的大小无关。

NTFS中有一个被称为主文件表(MFT)的文件,卷中的每一个文件都在这个文件表中占有一行,MFT文件本身也在这个文件表中有相应的条目。有时,文件被分为若干个段,这时它在MFT表中就需要有多个记录。在这种情况下,MFT表中指向这个文件的第一个记录被称为基文件记录,基文件记录中包含有MFT表中与这个文件有关的其他记录的位置。每一个卷都包含一个引导文件以及其他一系列文件,其中包含有卷上每一个文件的有关信息(这些文件被称为元数据文件)。这些文件共同构成文件系统。

NTFS卷上的每一个文件都有一个与之相关的64位标识符,这个文件标识被称为文件参考号(文件索引号)。这个号码由两部分组成,一个是文件号,一个是顺序号。文件号是文件在MFT表中的位置,顺序号用于内部一致性检查。每当MFT文件记录位置被再次使用时,这个数值都要递增1