以白痴视角看BIOS--BIOS固件启动系统简析

以白痴视角看BIOS--BIOS固件启动系统简析

BIOS固件与UEFI固件是当今电脑的两种固件.老机器都使用BIOS主板,新机器都使用UEFI主板.

虽然现在越来越多的老机器都已经被淘汰,但是在电脑维修的过程中,我们仍然有可能面对一台10多年前的BIOS一筹莫展.

今天,我介绍一下BIOS固件的启动过程,供大家学习参考.

(有关UEFI固件的启动过程,请看我的第19,20,21篇文章《Windows计算机启动过程分析1/2》及《21Windows系统安装小结》)


何为BIOS

BIOS是英文"Basic Input Output System"的简称,中文名称就是"基本输入输出系统"。在IBM PC兼容系统上,是一种业界标准的固件接口.BIOS是电脑启动时加载的第一个软件.

(以上内容引自百度百科)

与UEFI的功能类似,BIOS的主要功能也是负责在启动Windows系统之前加载基础配置来引导Windows操作系统的.

BIOS的引导启动流程


对磁盘的要求

我们知道,通常情况下,操作系统一定要安装在磁盘里.

BIOS通过读取磁盘上的一系列文件与代码才能够正确引导操作系统.所以,BIOS作为一种业界标准的固件接口,我们必须让磁盘符合BIOS的口味.否则,BIOS就"不认识"这个磁盘.

那么,BIOS对磁盘到底有什么要求呢?


  • 磁盘的分区表为MBR分区表.

分区表:

目前为止,磁盘的分区表有两种类型:MBR和GPT(又叫GUID).MBR是一种年代久远的分区表类型,GPT是一种新型的分区表类型.

BIOS固件只能识别MBR分区表,UEFI固件两种都能识别.

这两种分区表类型可以互相转换,并不会影响硬盘里的原有数据(无损转换).

  • 采用MBR分区表的磁盘最多支持分出4个主分区,只能识别不超过2TB的磁盘.然而,可以通过创建逻辑分区的方法来分出更多的分区.

  • 采用GPT分区表的磁盘最多支持128个分区,能识别不超过9.4ZB的硬盘.

可见,GPT是一种更加先进的分区表类型,管理起来更加灵活.

只要磁盘是MBR分区表,且磁盘完好,它就可以被BIOS识别.


主引导记录(MBR)

首先,请注意,这里存在一个"重名"的问题:

主引导记录的名字叫MBR.有一种磁盘分区表类型也叫MBR.所以,为了避免混淆,主引导记录我们直接称之为三个字母:MBR,分区表类型我们称之为"MBR分区表".


什么是MBR呢?

主引导记录(MBR,Master Boot Record)是采用MBR分区表的硬盘的第一个扇区所存储的一段代码.

简单来说,MBR是一段代码.它位于一个磁盘的第一个扇区.


MBR是做什么的?

MBR主要有两个功能.

  • 记录下来整个硬盘的分区结构.比如,一个MBR分区表类型的磁盘有3个分区,这些分区都位于磁盘的第多少扇区等等,这些信息都记录在MBR里,供BIOS读取.

  • 记录活动分区.如果一个MBR分区表磁盘上装有操作系统,则这个磁盘上装有操作系统的分区一定是活动分区.如果磁盘没有操作系统,只是存储数据,那么该磁盘的活动分区可有可无.

    哪个分区是活动分区被记录在MBR里,使用1字节空间.

活动分区的设定可以使用工具软件(如DiskGenius)手动选择.

那么,BIOS的引导流程迈出了第一步:通过读取MBR,BIOS已经知道了哪个分区装有操作系统了.

所以接下来,就都是那个活动分区里的事了.


分区引导记录(PBR)

分区引导记录(PBR),全称Partition boot record.与MBR类似,它也是一段代码.

它与主引导记录相接续,负责启动系统的下一步.

如果说MBR管理的是整个磁盘,那么PBR管理的就是它所在的分区.

对于使用MBR分区表的磁盘,每一个分区都有他自己的PBR.PBR的位置在他所属的分区的最前部.

  • 普通分区的PBR记载的内容就是有关这个分区的各种参数,比如分区的文件系统类型,分区大小等等.
  • 活动分区的PBR还记载BOOTMGR的位置.

BOOTMGR又是什么?

BOOTMGR是一个文件,是Windows的加载启动器,是一个在BIOS内运行的程序.

它的位置是固定不变的,只能位于活动分区的根目录里.因为PBR认为它只能在那里.


活动分区的PBR的作用之一就是找到这个BOOTMGR,然后运行它.

BOOTMGR运行后,就与UEFI的启动流程大体相似了.


BOOTMGR的工作

BOOTMGR一般位于C盘的根目录里,属于受操作系统保护的文件.如果不在文件资源管理器里勾掉"隐藏受操作系统保护的文件"这一项,即使显示隐藏的项目,文件资源管理器也不会显示它.

因为他对于Windows启动实在是太重要了.

BOOTMGR的作用与UEFI里的bootmgfw.efi是一样的:读取BCD文件并加载列出里面的操作系统菜单.

BCD文件是操作系统启动的配置文件.里面记载了操作系统的信息,包括磁盘上有几个操作系统,以何种模式启动等等.

想要详细的了解BCD文件,请阅读我的第20篇文章:《20Windows计算机启动过程分析2》里面的相关内容.

BIOS模式启动的BCD文件的位置在活动分区的boot文件夹里.一般情况下,位于 C:\boot\BCD

列出BCD文件里面的菜单后,用户任意选择一个有效的系统回车进入.然后,BOOTMGR根据BCD文件里的信息,运行位于 \Windows\System32 文件夹里的 winload.exe.

之后,winload.exe加载Windows操作系统,BIOS引导启动到此结束.



总结

BIOS的启动流程如下:

通电->读取MBR->找到活动分区->读取活动分区的PBR->PBR找到并运行BOOTMGR->BOOTMGR读取BCD文件->用户选择操作系统->运行winload.exe->启动Windows系统

  • BIOS只能识别使用MBR分区表的磁盘.

  • MBR记录硬盘的分区具体情况,哪一个分区是活动分区.

  • 所有分区都有自己的PBR,记录所属分区的各种信息.

  • 活动分区的PBR记录BOOTMGR的位置(根目录下)和该分区的其他信息.

  • BCD文件记录所有操作系统的启动配置,启动模式等.

posted @ 2025-11-30 23:14  吕了了  阅读(0)  评论(0)    收藏  举报