千机游戏提供最新游戏下载和手游攻略!

深入解析Windows系统启动流程及多系统引导机制

发布时间:2024-10-17浏览:16
  • BIOS+MBR引导过程

BIOS引导过程:开机自检>BIOS>MBR(主引导记录)–>DPT(磁盘分区表)>PBR(分区引导记录)>Bootmgr(引导管理器)/NTLDR>BCD(从vista开始的引导配置数据)/boot.ini(XP 引导配置文件)>Winload.exe>内核加载 >windows vista+/windows xp

  • 开机自检,BIOS先要对CPU初始化,然后跳转到BIOS启动处进行POST自检,(此过程如有严重错误,则电脑会用不同的报警声音提醒),接下来采用读中断的方式加载各种硬件,完成硬件的初始化。
  • 读入MBR(主引导记录),MBR主要功能是在分区表(DPT)中寻找可引导的活动分区(也叫激活主分区),并找到该分区的引导扇区(分区的第一个扇区)中的分区引导记录(PBR),载入PBR中的启动管理器(bootmgr.exe或NTLDR)。注意:MBR磁盘分区格式下,一个磁盘只允许有一个分区是活动的,因此启动文件(bootmgr、BCD)必须存放在活动的主分区内,这样才能找到系统载入程序。
  • 启动管理器读取该分区boot文件夹里的启动配置文本BCD(或根目录下boot.ini),然后根据启动设置文件定位并加载二级引导载入程序winload.exe来加载OS内核。如果有多个系统,启动配置文件就会有多个启动项,相应的bootmgr也会提供选择菜单,然后则根据用户选择来决定加载哪个系统的Winload(多系统引导选择)。
    • UEFI+GPT 引导过程

    UEFI引导过程:开机>UEFI>GPT分区表>ESP分区(也称EFI分区)>\efi\Microsoft\boot\bootmgfw.efi>efi\Microsoft\BCD>\Windows\system32\winload.efi。此过程没有MBR参与。

  • 开机启动自检,执行UEFI初始化模块;
  • UEFI执行后,会进行CPU、北桥、南桥及存储器初始化工作,当这部分设备就绪后,紧接着它就载入UEFI驱动执行环境(Driver Execution Environment,简称DXE)。当DXE被载入时,系统就可以加载硬件设备的UEFI驱动程序了。DXE使用了枚举的方式加载各种总线及设备驱动,UEFI驱动程序可以放置于系统的任何位置,只要保证它可以按顺序被正确枚举。借助这一点,我们可以把众多设备的驱动放置在磁盘的UEFI专用分区中(ESP分区),当系统正确加载这个磁盘后,这些驱动就可以被读取并应用了。在这个特性的作用下,即使新设备再多,UEFI也可以轻松地一一支持,由此克服了传统BIOS捉襟见肘的情形。UEFI能支持网络设备并轻松联网,原因就在于此。
  • 从EFI分区找到启动管理器(\efi\Microsoft\boot\bootmgfw.efi)。
  • 启动管理器导入EFI分区BCD文件(efi\Microsoft\BCD),然后根据其配置内容加载引导加载程序winload.efi(C:\Windows\system32\winload.efi)来加载OS内核。如果BCD中有多个配置项,则会让用户选择要启动的系统。如果有多个系统,启动设置文件就会有多个启动项,相应的bootmgr也会提供选择菜单,然后则根据用户选择来决定加载哪个系统的Winload(多系统引导原理)。
  • 在GPT磁盘格式下,windows系统的启动文件和启动配置文件(bootmgfw.efi、BCD)是存放在一个不可见的FAT格式的分区里的(也叫ESP分区或EFI分区)。

    多系统启动原理

    多系统启动(以Windows系统为例)中,BIOS+MBR和UEFI+GPT的引导方法基本上是一样的,都是通过启动配置文件(BCD或boot.ini)来显示启动菜单,当用户选中其中某个启动项后,启动管理器会加载不同分区的Winload以启动此分区下的操作系统。

    以下是通过BOOTICE修改启动配置文件(BCD),添加多系统启动项:

    名词解释

    BIOS:基本输入输出系统(Basic Input Output System)。它是一组固化到计算机主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。完成硬件的初始化后,开始读入磁盘中的主引导记录(MBR)。

    MBR:主引导记录(Master Boot Record)是位于磁盘最前边的一段引导(Loader)代码,主要有启动代码、硬盘分区表和结束标志字三部分组成。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,硬盘的主引导记录(MBR)是不属于任何一个操作系统的,它先于所有的操作系统而被调入内存,并发挥作用,然后才将控制权交给主分区(活动分区)内的操作系统。

    DPT:磁盘分区表(Disk Partition Table)属于主引导记录中的第二部分,占据主引导扇区的64个字节(偏移01BEH--偏移01FDH),可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节。

    PBR:分区引导记录 (Partition Boot Record)可以加载该分区的io.sys (dos / win9x) 或 ntldr(win2000 xp 2003) 或 bootmgr (vista/win2008/win7/win10 )。

    bootmgr:启动管理器(Boot Manager),是在Windows Vista、Windows 7、windows 8/8.1和windows 10中使用的新的启动管理器,以代替Windows NT系列操作系统(Windows XP、Windows 2003)中的启动管理器——NTLDR。

    NTLDR:是一个隐藏的、只读的系统文件,位置在系统盘的根目录,功能是读取boot.ini,之后装载所选操作系统。是windows nt 4.0/windows 2000/windows xp/windows server 2003的引导文件。

    BCD:启动设置数据(Boot Configuration Data) ,BCD是操作系统中的启动设置数据,在有vista或windows7的多重操作系统中,系统通过bootmgr程序导入BCD文件完成启动菜单的引导。可以在高级 系统设置-启动和故障恢复 中调整开机默认操作系统和等待时间。

    boot.ini:启动配置文件,Windows NT、Windows 2000、Windows XP、Windows Server 2003主要依赖Boot.ini文件来确定计算机在引导过程中显示的可供选取的操作系统类别、等待时间等。

    UEFI:统一的可扩展固件接口(Unified Extensible Firmware Interface), 这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。

    GPT:GUID磁盘分区表(GUID Partition Table)是一个实体硬盘的分区表的结构布局的标准。用于替代BIOS系统存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。

    用户评论

    冷青裳

    终于找到解释windows启动流程的文章了!我一直好奇我的电脑开机到底是怎么运作的,感觉理解起来还是蛮复杂的,毕竟涉及到 MBR, UEFI 和 bootloader 这些概念。以后再遇到电脑启动的问题可以参考一下!

        有11位网友表示赞同!

    凝残月

    这篇文章写的挺清晰的,用通俗易懂的语言解释了 Windows 系统引导的过程和多系统引导的原理,对于像我刚接触电脑的朋友来说非常有用!

        有5位网友表示赞同!

    呆檬

    多系统引导真是个不错的功能啊,可以方便地切换不同的操作系统,比以前要灵活太多了。可惜我的电脑配置比较低,可能无法同时安装多个系统...

        有12位网友表示赞同!

    ♂你那刺眼的温柔

    文章内容很实用,特别是讲解了 MBR 和 UEFI 的区别,这对于想深入了解系统引导原理的人来说非常重要。不过,我觉得可以增加一些图形化的解释,能够更直观地帮助读者理解。

        有10位网友表示赞同!

    初阳

    我对 Windows 系统引导过程一直没什么兴趣,但我发现多系统引导很有趣!现在大部分电脑都支持多系统引导了吧?我计划以后尝试在自己的电脑上安装一个Linux系统,体验一下不同的操作系统...

        有17位网友表示赞同!

    最迷人的危险

    说的不错啊,但我觉得这篇文章对于入门者来说还是有些难度,毕竟涉及到很多专业术语。希望能附带一些图示或者动画解释,让读者更容易理解。

        有17位网友表示赞同!

    逾期不候

    文章没讲到虚拟机引导的问题,感觉有点不完善。 毕竟很多用户都在使用虚拟机来运行不同的操作系统,了解虚拟机的引导过程也很重要啊!

        有9位网友表示赞同!

    惯例

    我最近升级了系统后,出现了启动问题。看了这篇博文之后才知道原来是 bootloader 出错导致的! 感谢作者分享宝贵的知识,让我明白了这个问题应该如何解决!

        有9位网友表示赞同!

    非想

    Windows 系统引导流程确实很复杂, 尤其是涉及到 BIOS 和 UEFI 的区别。 这篇文章解释得比较到位,但是有些地方还是需要再仔细思考一下...

        有8位网友表示赞同!

    太易動情也是罪名

    多系统引导功能真的太棒了! 我可以用一个电脑同时运行 Windows 和 Linux 系统,节省空间又方便快捷。 文章总结的都很清晰,让我更全面的了解了这个功能的使用方法。

        有6位网友表示赞同!

    海盟山誓总是赊

    我之前一直以为启动盘和 USB 盘的区别仅仅是存储大小,现在才知道竟然还有关于引导机制的区别!这篇文章真是开拓了我的视野...

        有7位网友表示赞同!

    盲从于你

    感觉文章只局限于Windows系统引导,对于其他系统的引导过程却没有涉及,希望能更加全面一点啊!

        有16位网友表示赞同!

    ﹏櫻之舞﹏

    我电脑总是出现蓝屏故障,可能是启动流程出错了?看了这篇博文之后,我开始了解启动错误的原因了,下次遇到问题可以用这篇文章来查阅解决方法!

        有20位网友表示赞同!

    仅有的余温

    文章很有深度,讲解了 Windows 系统引导的各个细节。不过对于菜鸟来说理解起来确实比较困难,建议作者能加入一些简单的例子或者案例进行辅助说明。

        有7位网友表示赞同!

    鹿先森,教魔方

    多系统引导功能真是太棒了啊!之前我用 XP 和 Win7 都是装在不同的硬盘上,现在终于可以用一个电脑同时运行两个操作系统了。这篇文章解释得很详细,让我受益匪浅!

        有11位网友表示赞同!

    心亡则人忘

    文章内容专业性很高,对于深入了解 Windows 系统启动流程的人来说非常有帮助。但是对于新手来说,一些术语还是比较难以理解,希望能增加一些基础知识的介绍。

        有18位网友表示赞同!

    红尘烟雨

    最近我想要在电脑上安装 Linux 系统来学习一下,看了这篇关于多系统引导的文章之后,觉得安装Linux变得不那么难了!

        有13位网友表示赞同!

    热点资讯