通电后CPU首先执行的是主板引导程序,主板引导程序可分为BIOS和UEFI。BIOS是最早的方案,搭配MBR分区使用,BIOS逐渐被UEFI代替,UEFI一般搭配GPT分区使用,所以引导过程会有两种情况:
1.UEFI + GPT
2.BIOS + MBR

如何查看自己的计算机是什么引导方式:在“此电脑”上右键选择“管理”,弹出“计算机管理”选择“磁盘管理”,如果能找到一个“EFI系统分区”,那么就是UEFI引导方式。
                                                                UEFI
UEFI以灵活扩展、引导更省时等特性,成为了BIOS的代替方案
UEFI一般搭配GPT分区技术使用,虽然也可以搭配MBR,但是由于MBR磁盘容量最大只能是2TB,所以默认都是使用GPT分区技术,GPT可以做到:
1.支持容量超过2TB的磁盘
2.使用16字节的GUID标识分区类型,不容易冲突
3.理论上分区数目不限制(受限于Windows只能最多识别128个分区)
4.分区容量几乎没有限制
5.提供CRC检验,检测数据损坏
6.备份分区表,提高可靠性
引导流程:
通电-->执行UEFI-->查找EFI分区-->执行bootmgfw.efi-->BCD-->执行winload.efi-->加载内核-->系统初始化

1.按下电源键,电源向主板以及其他设备供电,刚开始电压不稳,主板会持续发送RESET信号给CPU,CPU执行初始化。当电压稳定后,主板停止发送RESET信号,CPU开始执行指令;
2.CPU读取UEFI指令,执行UEFI初始化,执行其他设备的初始化;
3.查找EFI分区,EFI分区不需要一定是第一个分区;
4.加载\EFI\Boot\bootx64.efi;
5.bootmgfw,efi会读取BCD文件,BCD是一个数据库文件,如果包含多个系统,信息会包含在BCD中,通过显示一种系统列表供用户选择;
6.BCD中包含每个系统的引导文件路径,Windows的是\Windows\System32\winload.efi,加载到内存中并执行;
7.winload.efi读取\Windows\bootstat.dat文件,有需要则显示引导菜单,比如安全引导等等。将CPU执行权交给内核程序;
8.内核程序执行系统初始化。

                                                                BIOS
BIOS(Basic Input Output System)是最早的引导方案并使用了相当长的一段时间,所以在Win8、Win7、WinXP以及更早的版本都能找到BIOS的引导存在。BIOS只支持MBR分区技术,所以GPT并不适合BIOS。
MBR,中文名为主引导记录,是一段引导代码,在硬盘分区中不以文件形式存在。它只能被配置在MBR格式的分区表中,当MBR损坏时,开机过程会卡在某个黑屏报错环节,但是可以通过一些磁盘分区工具修复MBR
MBR分区表:
仅支持4个主分区,且必须设置一个激活主分区用于存放bootmgr或ntldr文件,以及bcd文件,用于启动系统。
最大支持到2T容量的单分区(注意不是单块硬盘)。如果你有一块3T容量的硬盘,可以通过分区工具将硬盘分为2个区,比如一个2T,另一个1T,那么
MBR分区表也可以识别。
兼容性好,不仅支持全系列windows系统启动引导,还全面支持linux等其他内核的系统。

引导流程:通电-->执行BIOS-->记载MBR-->查找活动分区-->加载PBR-->加载bootmar.exe-->加载winload.exe-->加载内核-->系统初始化

1.上电并稳定后,CPU执行地址0xFFFF0h处指令,此处为BIOS程序;
2.BIOS进行硬件自检,没有问题后加载硬盘的第一个扇区到内存0x7c00h处,第一个扇区为MBR(Master
Boot Record),MBR包含执行程序和分区表;
3.CPU开始执行MBR程序,查找第一个活动分区,把活动分区的第一个扇区加载到内存中,活动分区第一个扇区为PBR(Partition Boot Record);
4.CPU开始执行PBR,第一个指令就是跳过BPB(BIOS Parameter Block)到可执行代码处;BPB包含比较多参数,有族的大小、MFT记录大小、MFT位置等,用于读取NTFS文件;
5.PBR读取VBR(Volume BootRecord,占用分区开始的16扇区)剩余的15扇区到内存中;接着CPU跳转到0x07C0:027A处,执行BOOTMGR代码(第二个扇区中);
6.开始寻找bootmgr.exe,找不到则寻找ntldr.exe(win vista之前的系统);
7.CPU加载并跳转到bootmgr.exe处执行,读取BCD文件,如果含有多个系统,则列举显示供用户选择;
8.选择的是Windows则读取winload.exe文件到内存中,CPU跳转到winload.exe处执行,读取文件\windows\bootstat.dat,,有需要则显示引导菜单,比如安全引导等等;接着加载内核程序Ntoskrnl.exe,相关辅助HAL.dll、CI.dll、PSSHED.dll、BootVID.dll,把CPU执行权交给内核程序;
9.内核程序执行系统初始化。

BIOS引导更多的是通过MBR去引导系统,UEFI则主导整个引导过程

Windows引导过程(BIOS,UEFI)相关推荐

  1. Windows引导过程

    Windows引导过程 1  内核加载 在Intel x86系统上,Windows操作系统获得控制首先从硬盘的主引导记录(MBR,Master Boot Record)开始.MBR包含代码和数据,其代 ...

  2. UEFI下Windows引导过程

    引导文件 在UEFI安装完操作系统后,Windows至少使用两个分区,一个叫做ESP分区(EFI SYSTEM PARTITION),用于存放启动文件,另一个则是BIOS下正常的系统分区,不同的是,B ...

  3. windows引导过程以及多系统引导原理

      版权声明:未经作者允许,严禁用于商业出版,否则追究法律责任.网络转载请注明出处,这是对原创者的起码的尊重!!! 1 Windows的引导方式   目前主要的系统引导方式也有两种:传统的Legacy ...

  4. Windows操作系统引导过程

    Windows作为最流行的个人计算机操作系统,成为了我们学习.工作和生活的一部分.从计算机通电到Windows启动完成,这具体是怎样的过程?跟着小编一起去探索吧. Windows引导过程 Window ...

  5. Windows系统启动引导过程

    Windows系统引导过程以及多系统引导原理- 系统启动的两种引导方式 计算机系统引导方式主要有两种:一种是传统的BIOS模式,另一种是新型UEFI(全称统一的可扩展固件接口)模式.UEFI启动也可以 ...

  6. Windows NT引导过程源代码分析

    Windows 引导过程 Windows 内核中的各个组件和各种机制在起作用以前,必须首先被初始化.此初始化工作是在系统引导时完成的.当用户打开计算机的电源开关时,计算机便开始运行,但操作系统并不立即 ...

  7. UEFI BIOS模式下Windows系统启动过程以及引导文件修复方法

    UEFI BIOS→ESP分区→\efi\Microsoft\boot\bootmgfw.efi→efi\Microsoft\Boot\BCD→\Windows\system32\winload.ef ...

  8. uefiboot 文件_UEFI BIOS模式下Windows系统启动过程以及引导文件修复方法

    UEFI BIOS→ESP分区→\efi\Microsoft\boot\bootmgfw.efi→efi\Microsoft\Boot\BCD→\Windows\system32\winload.ef ...

  9. UEFI下windows启动过程

    引导文件  在UEFI安装完操作系统后,Windows至少使用两个分区,一个叫做ESP分区(EFI SYSTEM PARTITION),用于存放启动文件,另一个则是BIOS下正常的系统分区,不同的是, ...

最新文章

  1. Swift学习:自动引用计数
  2. QIIME 2用户文档. 11数据筛选Filtering data(2018.11)
  3. 2021年春季学期-信号与系统-第十一次作业参考答案-第三小题
  4. Wix 安装部署教程(十四) -- 多语言安装包之用户许可协议
  5. 20145307《信息安全系统设计基础》课程总结
  6. 接口返回的类型是html页面_1.10 PhalApi 2.x 接口文档
  7. 【JAVA 第三章 流程控制语句】课后习题 输出正整数的顺序相反数
  8. superset docker 部署
  9. jsp调用java的数据库连接,初学jsp,javabean连接数据库调用总是报错,疯了,求大神解决方案...
  10. php 封装一个sdk,PHP 之微信JSSDK类封装
  11. 【有内鬼,终止交易】风靡朋友圈的壁纸,实现代码竟如此简单 | 原力计划
  12. mysql 跨数据库联表查询
  13. 2018年度最佳网页设计与开发教程
  14. JAVA计算机毕业设计电商后台管理系统Mybatis+系统+数据库+调试部署
  15. Debian 系统找不到基本命令的解决方法
  16. RPC框架的使用场景
  17. Planning with Goal-Conditioned Policies读书笔记
  18. 基于epoll,socket与protobuf的简单帧同步游戏服务器
  19. 京东商品详情数据接口(APP端,H5端),监控京东商品历史价格及价格走势,接口代码对接教程
  20. STM8S003 AWU休眠唤醒 寄存器和库函数2种做法

热门文章

  1. matlab 山脊 提取,ArcGIS中利用水文分析提取山脊线山谷线
  2. Windows中 JDK下载与安装教程 JAVA环境变量配置、JDK基本介绍
  3. python可以自动拆分表格吗_Python 拆分表格并发送邮件
  4. 夏普清除小太阳和小人的方法
  5. 从eclipse官网下载eclipse
  6. Word文档中最后一页底端的表格制作
  7. mac中实用的录音软件有哪些?
  8. 互联网晚报 | 9月10日 星期五 | 美团启动数字人民币低碳出行试点;vivo X70系列正式发布;旷视科技科创板IPO过会...
  9. git将某远程分支的某次提交合并到另一远程分支
  10. 试算平衡表示例图_案例十一试算平衡表