硬盘数据结构

  谈及硬盘的数据结构,人们总想到从前的FAT16和现在的FAT32。其实不然,FAT16也好,FAT32也好,都只是硬盘存储数据的格式之一,而FAT(FILE ALLOCATION TABLE)即文件分配表也只是硬盘数据结构中的一部分,一个完整硬盘的数据应该包括五部分:MBR、DBR、FAT、DIR区和DATA区。

 MBR(MAIN BOOT RECORD)即主引导记录区,它位于整个硬盘的0磁道0柱面1扇区,包括硬盘引导程序和分区表。引导程序完成的任务就是检查分区表是否正确以及确定哪个分区为操作系统可引导,并在程序结束时把该分区的启动程序(例如DOS的IO.SYS)调入内存交予控制权。分区表很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如DOS 的FDISK.EXE)产生的,它不依赖于任何操作系统,而且硬盘引导程序也不是一成不变的,我们可以任意编写,只要它能完成前述的任务。这也是为什么能实现多系统启动的原因。

 DBR(DOS BOOT RECORD)即操作系统引导记录区,通常位于硬盘的0磁道1柱面1扇区,是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BIOS PARAMETER BLOCK)的本分区参数记录表。其实每个逻辑分区都有一个DBR,其参数视分区的大小、操作系统的类别而有所不同。引导程序的主要任务是判断本分区根目录前两个文件是否是操作系统的引导文件(例如DOS的IO.SYS和MSDOS.SYS),如是,就把第一个文件读入内存,并把控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(allocation unit,以前也称之为簇)的大小等重要参数。DBR由高级格式化程序产生(例如DOS 的FORMAT.COM)。

 FAT区紧接在DBR之后,其大小由本分区的大小及文件分配单元的大小决定。由于FAT对于文件管理非常重要,从一开始操作系统的设计者们就给FAT作了一个备份,即在原FAT的后面再建一个一模一样的FAT。由此产生了第一FAT表和第二FAT表的称谓,这种双FAT的做法一直延续到现在,可见FAT对于硬盘数据的重要性。关于FAT的格式历来就有很多选择,Microsoft 的DOS及WINDOWS采用的是单元链格式,也即是我们所熟悉的FAT12、FAT16和FAT32格式,但除此以外并非没有其它格式的FAT,像WINDOWS NT、OS/2、UNIX、NOVELL等都有自己的文件分配(管理)格式。 光有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。

 DIR是DIRECTORY即根目录区的简写,它紧接在第二FAT表之后,记录着根目录下每个文件(目录)的起始单元(这是最重要的)、文件的属性(子目录也属文件的属性)等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。这样的文件定位方式(也可称为文件寻址方式)是由单元链结构决定的,也就是说,只有Microsoft 的DOS和WINDOWS需要这样定位文件,而其它操作系统并非如此。 在DIR区之后,才是真正意义上的数据存储区,即DATA区。 DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义。在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化,例如DOS下的FORMAT程序),并没有把DATA区的数据清除,而是重写了FAT表而已,至于分区硬盘,也只是修改了MBR和DBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。但即便如此,如MBR、DBR、FAT、DIR之一被破坏的话,也足够咱们这些所谓的DIY老鸟们忙乎半天了,因为1GB的空间就意味着2百万个扇区啊!当然,借助一些工具软件可以较有效地解决这些问题,呵呵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值