|
数据存储基础
主引导记录和分区表
主引导扇区位于整个硬盘的0柱面0磁头1扇区,LBA 0扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT
(Disk Partition Table)和引导标志。主引导扇区 (512 bytes) 可分成三部分:
(1) 前面446 bytes 为开机程序(即Pre-Boot程序-引导程序), 实际约200-400字节;操作系统版本不同,引导程序的字节多
少会有差异。
(2) 接着的64bytes就是partition table, 每16bytes代表一个logical HD;
(3) 最後2 bytes 一定是 55 AA (十六进位)
其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就
是操作系统引导扇区)调入内存加以执行。分区表以80H或00H为开始标志,共64字节。并以55AAH结束标志。
操作系统引导扇区
OBR(OS or Dos Boot Record)即操作系统引导扇区,通常位于硬盘的0柱面1磁头1扇区,LAB 63扇区(对于那些以多重引
导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区)。这是操作系统可直接访问的第一个扇区,它也包括一个引导
程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大
小、操作系统的类别而有所不同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如
MSDOS或者起源于MSDOS的Win9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一个文件读入内存,并把控制权交予该文件。
BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元
(Allocation Unit,以前也称之为簇)的大小等重要参数。OBR由高级格式化程序如Format命令产生。
文件分配表
FAT(File Allocation Table)即文件分配表,是DOS/Win9x系统的文件寻址系统,为了数据安全起见,FAT有两个,FAT二
为FAT一的备份, FAT16中FAT表紧接在DBR之后,FAT32中FAT表在稍后的位置并随分区的大小不同而起始位置略有不同。FAT表
取决于本分区的大小及文件分配单元的大小。FAT的格式历来有很多选择,Microsoft 的DOS及Windows采用我们所熟悉的
FAT12、FAT16和FAT32格式,但除此以外并非没有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的
文件管理方式。
目录区
DIR是Directory即根目录区的简写,DIR紧接在第二FAT表之后,只有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR
配合才能准确定位文件的位置。DIR记录着每个文件(目录)的起始单元(这是最重要的)、文件的属性等。定位文件位置时,
操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。但FAT32没有储存目录的目录区。在
DIR区之后,才是真正意义上的数据存储区,即DATA区。
数据区
DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何
意义。
硬盘分区方式
我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。
主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘
。扩展分区的概念稍为复杂,由于硬盘仅仅可以利用64个字节来表达存储空间,而每个分区的参数又要占用16个字节,因此,
主引导扇区最多只能存储4个分区的数据。4个分区往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入
了扩展分区的概念。
所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链
表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一
个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁
盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。
需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将
导致逻辑磁盘的丢失。 |
|