老式BIOS引导Windows启动流程揭秘
老式BIOS引导Windows启动流程揭秘
本系列文章阅读顺序:
- 计算机固件启动原理Windows系统引导启动流程第一篇
- 全面揭秘UEFI固件启动Windows全流程
- 核心配置BCD文件详解与BOOTICE编辑实战
- BIOS固件启动Windows系统
- 修复Windows系统引导的一般方法
BIOS固件启动Windows系统
有了UEFI固件的基础,理解BIOS固件启动Windows能够更加轻松.
BIOS固件作为老式的固件,一定会在不久的将来被淘汰.但是现在有一定量的计算机使用这种固件,所以还是有必要学习研究.
BIOS固件启动Windows系统对磁盘的要求
和UEFI不同,BIOS固件对安装有Windows的磁盘有特殊的要求.具体表现为:
- 磁盘分区表必须是MBR
- 必须要有一个激活主分区(活动分区)
BIOS固件对Windows系统版本没有要求.
BIOS固件的启动方式
与UEFI依赖文件启动的模式不同,BIOS固件通过运行代码启动系统,因此可操作性更低.
分区表:
目前为止,磁盘的分区表有两种类型:MBR和GPT(又叫GUID).MBR是一种年代久远的分区表类型,GPT是一种新型的分区表类型.
BIOS固件只能识别MBR分区表,UEFI固件两种都能识别.
这两种分区表类型可以互相转换,并不会影响硬盘里的原有数据(无损转换).
采用MBR分区表的磁盘最多支持分出4个主分区,只能识别不超过2TB的磁盘.然而,可以通过创建逻辑分区的方法来分出更多的分区.
采用GPT分区表的磁盘最多支持128个分区,能识别不超过9.4ZB的硬盘.
可见,GPT是一种更加先进的分区表类型,管理起来更加灵活.
只要磁盘是MBR分区表,且磁盘完好,它就可以被BIOS识别.
BIOS引导启动的第一步,就是读取磁盘的主引导记录MBR.
主引导记录(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内运行的程序.他对标的就是bootmgfw.efi.
也就是说,BOOTMGR就相当于UEFI固件里面的bootmgfw.efi.它们的功能类似,都是Windows启动管理器.
它的位置是固定不变的,只能位于活动分区的根目录里.因为PBR认为它只能在那里.
活动分区的PBR的作用之一就是找到这个BOOTMGR,然后运行它.
BOOTMGR运行后,就与UEFI的启动流程大体相似了.
BOOTMGR的工作
BOOTMGR一般位于活动分区的根目录里,而且活动分区一般是C盘.所以他一般在C盘根目录里面.
属于受操作系统保护的文件.如果不在文件资源管理器里勾掉”隐藏受操作系统保护的文件”这一项,即使显示隐藏的项目,文件资源管理器也不会显示它.
因为他对于Windows启动实在是太重要了.
BOOTMGR的作用与UEFI里的bootmgfw.efi是一样的:读取BCD文件并加载列出里面的操作系统菜单.
BIOS模式启动的BCD文件的位置在活动分区的boot文件夹里.一般情况下,位于 C:\boot\BCD
编辑BIOS的BCD文件
和UEFI下的BCD文件相比,只有一点不同之处:
- 启动文件变为
\Windows\system32\winload.exe
其他配置与UEFI一致.
这很好理解.UEFI下一定运行efi程序,所以是winload.efi.BIOS下运行的程序就只能是winload.exe了.
BOOTMGR列出BCD文件里面的菜单后,用户任意选择一个有效的系统回车进入.
然后,BOOTMGR根据BCD文件里的信息,运行位于 \Windows\System32 文件夹里的 winload.exe.
之后,winload.exe加载Windows操作系统内核.
BIOS引导启动到此结束.
UEFI引导流程图

BIOS引导流程图

本系列文章阅读顺序:
- 计算机固件启动原理Windows系统引导启动流程第一篇
- 全面揭秘UEFI固件启动Windows全流程
- 核心配置BCD文件详解与BOOTICE编辑实战
- BIOS固件启动Windows系统
- 修复Windows系统引导的一般方法