操作系统引导

BIOS与MBR详解
本文介绍了BIOS的基础知识及其包含的主要程序,并详细解释了MBR(主引导记录)的结构与作用。同时探讨了BIOS如何加载MBR,以及MBR如何选择分区启动操作系统的过程。

 

BIOS基础知识

Basic Input Output System,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。形象地说,BIOS应该是连接软件程序与硬件设备的一座"桥梁",负责解决硬件的即时要求。

BIOS中包含以下几个主要程序:

1.     自诊断程序/(加电自检程序):通过读取CMOS RAM中的内容识别硬件配置,并对其进行自检和初始化;

2.     CMOS设置程序:引导过程中,用特殊热键启动,进行设置后,存入CMOS RAM中;

3.         系统自举装载程序:在自检成功后将磁盘的引导程序装入内存,让其运行以装入操作系统;

4.         主要IO设备的驱动程序和中断服务/(基本外围设备的驱动程序): 由于BIOS直接和系统硬件资源打交道,因此总是针对某一类型的硬件系统,而各种硬件系统又各有不同,所以存在各种不同种类的BIOS

MBR

MBRMaster Boot Record,中文意为主引导记录。

一个扇区的硬盘主引导记录MBR

·pre-boot区(预启动区)(偏移地址0000H--0088H),占446字节。

·出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。
·
分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4
·
结束标志字,偏移地址01FE--01FF2个字节值为结束标志55AA,如果该标志错误系统就不能启动。

0000-0088

 

Master Boot Record

主引导程序

主引导

程序

0089-01BD

出错信息数据区

数据区

01BE-01CD

分区项116字节)

 

分区表

 

01CE-01DD

分区项216字节)

01DE-01ED

分区项316字节)

01EE-01FD

分区项416字节)

01FE

55

结束标志

01FF

AA

MBR的大小是512字节,这正好是磁盘一个扇区的大小。它是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它。但我们可以用ROM-BIOS中提供的INT13H2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。

pre-boot区(预启动区)该区包含着查找引导分区的代码(例如Grub程序和默认的判断活动分区程序)。

BIOSMBR

开启计算机电源后,启动BIOS,运行POST程序,POST将检测系统的总内存以及其他硬件设备的状况,将磁盘第一个物理扇区(MBR)加载到内存。启动MBR中的pre-boot引导程序,进一步选择分区,并从该分区上去读取引导文件(如XP系统的PBRPartition Boot Record)),加载操作系统(XP系统的PBR会去找这个分区的ntldr,之后解析是boot.ini,选择启动的系统后load注册表,交控制权给ntoskrnl,然后加载驱动,系统配置等等)。

 

事实上,操作系统的引导还有其他方式,可以是不基于MBR的。EFI - Extensible Firmware Interface (可扩展固件接口)EFI 原生支持的操作系统采用全新的 GPT (Globally Unique Identifier Partition Table Format,全局唯一识别分区表格式) 技术。苹果公司推出的酷睿双核 MacBook Pro 电脑率先引入 EFI 技术而成为另类,但这也给许多有意在 Mac 机上安装 Windows 的用户带来了困扰。

 

分区类型

一块磁盘,如果基于MBR引导,分区原则如下:

主分区(注意扩展分区也是一个主分区)的最大个数是四个,扩展分区的最大数为一个。这个是由MBR中只能存放4条磁盘分区记录决定的。

l         主分区   主分区就是写入MBR的磁盘分区记录对应的分区,它可以直接格式化,可以成为活动分区。

l         扩展分区   逻辑概念上的分区,它会被写入MBR,但是它本身不对应磁盘,必须在将扩展分区上建立逻辑分区后,才能进行读写。

l         逻辑分区   在扩展分区上建立起来的分区(Windows环境只能建立最多23个,字母数字限制)。

l         活动分区   针对MBR的默认pre-boot检测程序能够识别为可以启动的分区。正常情况下,它具有引导操作系统的能力。从这个角度出发,活动分区必须在主分区上(如果在逻辑分区上,是无法从PDT中查找到相应的分区),可以设置多个分区为活动分区, MBRpre-boot程序会给出启动菜单,有时则会报错(如安装windows系统,它禁止多个活动分区存在)。

l         可引导的系统分区    只要包含了正常的操作系统引导文件,能够顺利完成操作系统装载并进入运行状态的分区。

MBR和分区

利用MBR实现引导,就是通过加载MBRpre-boot程序,运行它来实现系统选择和引导。例如使用Grub,它就可以选择用于启动的分区,只要这个分区确实可以启动,而它完全可以是逻辑分区。Grub能够解析自己预定的指令,只要提供Grub能够解析的配置文件,就可以利用它,加载该可启动分区的启动文件,从而启动操作系统。

 

利用分区工具可以修改MBRPDT,这些分区工具保证了只要修改了磁盘分区的结构,那么MBR就会做相应的改动。而对某个分区进行格式化,只是将磁盘分区的文件系统建立起来,用于对该分区的数据读写,完全不涉及MBR的记录信息。

 

小结:

假设两种情况,一种是默认的MBR引导程序,一种是将Grub写入MBR引导。

加电——启动BIOS(读取配置信息)——自检(检查硬件配置)——载入MBR(假设从硬盘启动)——执行pre-boot——选择到某个可引导分区,执行该分区的引导程序——操作系统启动。

两种情况的不同之处在于pre-boot程序的不同。默认的MBR中该区程序段的作用是判断哪个分区被标记为活动分区,然后选择该分区。

Grub托管之后呢,就会读取Grub的配置文件,选择分区(只要是可启动的分区)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值