MBR启动过程

BIOS-->MBR(主引导记录)-->DPT(硬盘分区表)-->DBR(分区引导扇区)-->BootMgr-->BCD-->Winload.exe(bootmgfw.efi)-->内核加载-->

BIOS中存储硬盘启动顺序,选择从哪块硬盘启动。

该硬盘的0柱面,0磁头,1扇区为MBR,存储主引导记录信息(具体,主引导程序446字节+DPT硬盘分区表64字节+磁盘有效标志55AA,共512字节,即一个扇区大小)。

硬盘分区表(64字节)存储4个主分区信息,其中一个必是激活的主分区。

查找激活的主分区里bootmgr文件,bootmgr指向BCD引导配置文件文件,BCD文件中有开机引导项目等信息,比如添加win7就是编辑BCD文件,之后加载winload.exe,加载内核和系统。

MBR硬盘分区结构 


EFI启动流程

BIOS-->ESP分区-->启动管理器bootxxx.efi-->加载BCD文件-->读取winload.efi

启动管理器(bootxxx.efi)会首先加载BCD文件,从BCD中读取所有启动项,如果有多个启动项并且没有默认启动项就会有一个菜单来显示,当用户选中其中某个启动项后,启动管理器就会从对应的分区(通过分区GUID)中读取winload.efi,如果这时找不到winload.efi,或者winload.efi签名校验失败,就会蓝屏0xc000000e,即找不到引导文件,加载完winload.efi后,控制权就正式交给winload.efi。(该段原文:https://blog.csdn.net/yeshahayes/article/details/52806095)

MBR和EFI启动过程的更多相关文章

  1. Windows启动过程(MBR引导过程分析)

    catalogue . 电脑启动过程 . MBR分析(master boot record) - 位于整个硬盘的 扇区 . DBR(DOS boot record) - 位于柱面0,磁头1,扇区1,即 ...

  2. 主引导记录MBR/硬盘分区表DPT/主分区、扩展分区和逻辑分区/电脑启动过程

    主引导扇区主引导扇区位于整个硬盘的0柱面0磁头1扇区{(柱面,磁头,扇区)|(0,0,1)},bios在执行自己固有的程序以后就会jump到MBR中的第一 条指令.将系统的控制权交由mbr来执行.主引 ...

  3. Linux系统在启动过程中mbr主引导程序被破坏的解决方案

    首先,mbr主引导程序被破坏是指系统在启动过程中,磁头找不到/boot分区(windows的启动分区在c盘). 1)下面我们模拟主引导分区被破坏的情况:(在启动分区划分446M的存储大小) 2)重启( ...

  4. red hat 7 启动过程(EFI)

    不同版本的Linux系统的启动过程在某些地方是不一样的,现在先来介绍一下red hat 7 的启动过程(EFI). (加电→图形登录界面) 接通电源 按下电源键 EFI固件启动 初始化硬件 从EFI启 ...

  5. (转)硬盘结构,主引导记录MBR,硬盘分区表DPT,主分区、扩展分区和逻辑分区,电脑启动过程

    硬盘结构硬盘有很多盘片组成,每个盘片的每个面都有一个读写磁头.如果有N个盘片.就有2N个面,对应2N个磁头(Heads),从0.1.2开始编号.每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以电 ...

  6. 【转载】Linux启动过程

    转自:http://cizixs.com/2015/01/18/linux-boot-process 简介 我们都知道:操作系统运行的代码是在硬盘上的,最终要跑到内存和 CPU 上,才能被我们使用. ...

  7. 【转载】简述Linux的启动过程

    原文:简述Linux的启动过程 本文将简单介绍一下Linux的启动过程,希望对那些安装Linux的过程中遇到了问题的朋友有些帮助 声明:本人没用过UEFI模式和GPT分区格式,所有关于这两部分的内容都 ...

  8. Linux 启动过程详解

    目录 1. Linux启动过程 2. 启动过程概述 3. 引导加载阶段 4. 内核阶段 4.1 内核加载阶段 4.2 内核启动阶段 5. 早期的用户空间 6. 初始化过程 6.1 SysV init ...

  9. 在GPT格式的硬盘上,使用EFI启动的方式,安装Win7 64位系统

    Win7 sp1 原装系统,用UltraISO(软碟通) 把U 盘制成Win7 安装的启动U盘 将bootmgfw.efi和shell.efi 加到已制好启动U盘的根目录,并在efi/boot/路径下 ...

随机推荐

  1. Android Native 内存泄漏系统化解决方案

    导读:C++内存泄漏问题的分析.定位一直是Android平台上困扰开发人员的难题.因为地图渲染.导航等核心功能对性能要求很高,高德地图APP中存在大量的C++代码.解决这个问题对于产品质量尤为重要和关 ...

  2. [笨方法学python]习题51自动化测试笔记

    习题51 本节自动化测试部分看不大懂,自己每步都打印出来,帮助理解.(代码标红部分为自己加入调试为打印变量值所用) tests/tools.py from nose.tools import * im ...

  3. 【Phabricator】教科书一般的Phabricator安装教程(配合官方文档并带有踩坑解决方案)

    随着一声惊雷和滂沱的大雨,我的Phabricator页面终于在我的学生机上跑了起来. 想起在这五个小时内踩过的坑甚如大学隔壁炮王干过的妹子,心里的成就感不禁油然而生. 接下来,我将和大家分享一下本人在 ...

  4. micropython TPYBoard v201 简易的web服务器的实现过程

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 前言 TPYBoard v201开发板上搭载了以太网 ...

  5. C语言入门6-选择结构--f语句-switch

    一.     什么是选择结构? 选择结构,也称为分支结构!! 选择结构就是根据    给定的判定条件,判断结果, 并根据  判断的结果   来控制程序的流程 (流程图中,   菱形框 是有来判断的 , ...

  6. [leetcode] #213 House Robber II Medium (medium)

    原题链接 比子母题House Robber多了一个条件:偷了0以后,第n-1间房子不能偷. 转换思路为求偷盗[0,n-1)之间,以及[1,n)之间的最大值. 用两个DP,分别保存偷不偷第0间房的情况. ...

  7. [译].Net中的内存

    原文链接:https://jonskeet.uk/csharp/memory.html 人们在理解值类型和引用类型之间的差异时因为“值类型在栈上分配,引用类型在堆上分配”这句话造成了很多混乱.这完全是 ...

  8. python 读取文件1

    1.脚本 from sys import argv script,filename = argv txt = open(filename) print ("the filename is % ...

  9. 15. Java异常处理

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  10. 15分钟让你了解如何实现并发中的Barrier

    说到Barrier,很多语言中已经是标准库中自带的概念,一般情况下,只需要直接使用就行了.而最近一些机缘巧合的机会,我需要在c++中使用这么个玩意儿.但是c++标准库里还没有这个概念,只有boost里 ...