1. 概述

    本文档介绍磁盘MBR相关概念和引导操作系统流程。

     

  2. MBR

  3. MBR简介

    MBR(Main  Boot  Record),是位于磁盘最前面的一段引导代码,存在于整个磁盘最开始的那个扇区,即0盘0道1扇区(该处用CHS方式表示MBR引导扇区地址,因此以1开始),它负责操作系统对磁盘进行读写时的分区合法性的判别、分区引导信息的定位,它由操作系统在对磁盘进行格式化的过程中产生的。

    通常,我们把包含MBR引导代码的分区称为主引导扇区,该扇区不属于磁盘上的任何分区,因而分区空间内的格式化命令不能清除主引导记录的任何信息。主引导扇区MBR由如图 2.1所示的4个部分组成。

    2.1 MBR结构图

    MBR中64字节的分区表由4个分区项组成,它由磁盘介质类型和用户在使用fdisk定义分区时确定的。在SylixOS中,对SD卡划分的主分区可少于4个,但最多不超过4个。每个分区表项为16字节,其内容含义如图 2.2所示。

    2.2分区表项含义说明

     

    1. 主引导程序(偏移地址0000H—0088H):负责从活动分区中装载并运行系统引导程序;

    2. 出错信息数据区:偏移地址0089H—00E1H为出错信息,00E2H—01BDH全为0;

    3. 分区表:分为4个分区项,偏移地址01BEH—01FDH,每个分区表项长16字节,共64字节;

    4. 结束标志字:偏移地址01FEH—01FFH的2个字节为结束标志55AA,如果该标志错误则系统不能启动。

  4. MBR引导系统过程

    当MBR拿到处理器的使用权后,MBR中的主引导程序需要在主分区中查找到活动分区,并加载其中的系统引导程序,这样就将处理器的控制权交给操作系统了。

    要完成该过程,MBR首先就要找到主分区中的活动分区,参考图 2.2说明,MBR结构中的分区表项的第一个字节为引导标志,若该字节值为80H,则表示该分区为活动分区,若为00H,则为非活动分区。

    下面以一张格式化为FAT32分区的SD卡为例,分析其分区表项的含义,如图 2.3所示。

    2.3分区表项举例

    当主引导程序寻找到活动分区后,将CPU的控制权交给此分区的引导程序——系统内核加载器。为了让MBR更方便找到内核加载器,内核加载器的入口地址通常在固定的位置,即活动分区的最开始的扇区,该扇区就被称作操作系统引导扇区,该扇区中的内核加载器即为操作系统的引导记录OBR(OS BOOT Record),所以操作系统引导扇区又被称作OBR扇区,它包括一个引导程序和一个被称为BPB的本分区参数记录表。

    引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件,如果是,就把第一个文件读入内存,并把控制权交予文件;BPB参数这块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元的大小等重要参数。

    此后,整个CPU的控制权就完全交给操作系统,MBR的引导任务也完成了。

     

  5. 参考资料

    1、《操作系统真相还原》