最近因为更换一台DELL XPS的SSD遇到启动修复的麻烦,上网查找了不少资料,特此做个小结。咱们这里不做太具体的技术探究,只把术语和概念说清楚。

PC系统(主要是IBM-PC x86 或者 x86_64)从加电到加载操作系统要经过三个主要的部件——BIOS,硬盘分区,引导程序。

BIOS

BIOS 是Basic Input/Output System的缩写,简而言之是一组固化在主板上的程序,主要负责硬件的输入输出,带有系统的基本信息,并且做开机自检 POST(Power-On Self-Test) 。主要有三个厂商,AWARD,AMI和Pheonix。BIOS分为两大类——Legacy BIOS和UEFI( Unified Extensible Firmware Interface) BIOS。以前的模式就是Legacy BIOS,现在比较多使用UEFI BIOS,至于为何要变,当然就是因为后面两个东西变了,导致引导产生新的问题,所以要跟着改变了。

启动的时候BIOS先做自检,然后找到所有可以引导的设备,跟着就去硬盘(或者软盘)分区读取引导信息。BIOS在启动这块儿无论哪个版本都大差不差,尽管细节有很多不同,但不是本文的主要内容,有兴趣可以自己搜索或者Wiki。

硬盘分区

首先说一下“硬盘”这个词,以前是指磁盘,现在泛指HDD、SDD、USB等等。硬盘生产出来以后虽然BIOS是能认识,但操作系统还是不认识。操作系统需要分为多个逻辑空间并且格式化以后才能真正用起来。我们在这里说的“分区”泛指分区和格式化两个操作。

分区也很简单,就是在一个叫分区表的地方标记硬盘某个区域是一个分区,然后指明这个分区是什么类型的,比如:FAT,NTFS,EXT3等等。

分区完成后操作系统就可以看到了,但真正要读写数据还是差了点儿东西——格式化。格式化就是检查一下分区的状态丫,配置一下分区的最小单元等等信息。有了这些信息操作系统就才可以随心所欲地使用这个分区了。

分区也有两大类,MBR和GPT。

MBR(Master Boot Record)

MBR就是旧的分区方式,以前只能分4个区,开始的时候4个都是主分区,每个主分区都可以引导不同的操作系统。有一点不太人性化的地方就是那个主分区要引导,就要用工具把那个分区设置成为活动分区。

4个分区当然很快就发现不够用了。以后更新了一下,变成可以分3个主分区和一个扩展分区,扩展分区不能引导操作系统,但可以划分很多个逻辑分区。微软比较省,以前只支持一个主分区和一个扩展分区,而且同时只能够挂载26个盘(26个英文字母),当然微软新版本的分区管理没有这些限制。

要留意一个问题,MBR不能管理超过2TB的分区,由于MBR主要涉及引导,所以其实最大的影响就是超过2TB的分区不能引导。操作系统加载以后操作系统本身可以管理超过2TB的分区,但旧版操作系统不能管理大分区是另外一个问题,与MBR无关。

GPT(GUID Partition Table)

简单来说,GPT用GUID描述分区,没有数量、容量和引导的限制,不需要设置活动分区,用配置表选择就可以了。但唯一的限制是必须使用UEFI BIOS引导啦。

下面再说说GPT里面常见的两个分区——ESP和MSR。ESP是独立分区,主要用于存储引导管理程序、驱动程序等内容,就像MBR里面所说的活动分区。全新安装Windows的硬盘通常会创建这个分区,需要支持多个操作系统引导的也建议使用。MSR是微软Windows的保留分区,是GPT磁盘上用于保留空间以供备用的分区。例如在将磁盘转换为动态磁盘时会使用这些空间。MSR分区也用于防止将GPT磁盘接到低版本系统后,硬盘被当作未格式化的空硬盘而继续操作(例如重新格式化)导致数据丢失。

分区工具

这里不得不提一下硬盘分区的工具。每一个操作系统都会自带硬盘分区工具,如:fdisk (win/Lin),diskpart,windows磁盘管理等。对于自己版本的操作系统支持肯定是最好的,但对于多操作系统的引导或者不想破坏数据的情况下改变分区就不友好了,这种情况下就要求助于第三方分区工具,如:diskgenius,PatitionMagic,Acronis Disk Director Suite,DM等。

MBR和GPT的比较

参考知乎上面的材料,我抽象了一下两种分区的设计思想。MBR基本都是写死,BIOS控制前半部的引导过程,直接把棒子交到操作系统引导程序NTLDR、BOOTMGR、GRUB等的手上。而GPT都是软件定义的,因为可以直接访问分区(ESP),所以设备类型、大小、位置、驱动,操作系统位置、版本啥都是在BCD里面定义的。UEFI BIOS启动以后,先把棒子交给EFI,EFI通过读取BCD的配置找到要引导程序(NTLDR、BOOTMGR、GRUB等)。

PBR(Partition Boot Record,分区引导记录)

硬盘活动分区的第一个扇区。这个扇区叫做“分区引导记录”(PBR)。分区引导记录标识了用于引导操作系统的程序位置。

引导过程小结

一般来说有三种引导的组合,以windows为例

  1. Legacy BIOS+MBR
    Legacy BIOS->MBR->活动分区->\bootmgr->\Boot\BCD->\Windows\System32\winload.exe
  2. UEFI BIOS + MBR
    Windows没有这种组合,Linux鲜有这种组合,我就当没有这种组合,嘿嘿
  3. UEFI BIOS + GPT
    UEFI BIOS->ESP(FAT格式)->\EFI\Microsoft\boot\bootmgfw.efi->\EFI\Microsoft\BCD->\Windows\system32\winload.efi

各种操作系统的典型启动过程

操作系统版本

BIOS部分

分区部分

操作系统部分

自检

加载引导扇区

加载引导记录

启动管理器

DOS 6.22

POST

找到硬盘上的主引导记录MBR

读取硬盘分区表
读取活动分区

把控制权交给活动分区中的PBR IO.sys

MSDOS.sys

Command.com
config.sys
autoexce.bat

Win98

POST

找到硬盘上的主引导记录MBR

读取硬盘分区表
读取活动分区

把控制权交给活动分区中的PBR IO.sys

MSDOS.sys

与DOS类似,最后加上win.com进入win98的GUI

WinXP

POST

找到硬盘上的主引导记录MBR

读取硬盘分区表
读取活动分区

把控制权交给活动分区中的PBR

NTLDR

boot.ini

ntoskrnl.com
等等

Win7

POST

找到硬盘上的主引导记录MBR

读取硬盘分区表
读取活动分区

把控制权交给活动分区中的PBR

BOOTMGR

BCD

winload.com

Win10

读取GPT

加载引导记录

EFI\BOOT\bootx64.efi(bootia32.efi) 或EFI\MICROSOFT\BOOT\bootmgfw.efi

BCD

winload.efi

RHEL5

POST

找到硬盘上的主引导记录MBR

读取硬盘分区表
读取活动分区

把控制权交给活动分区中的PBR

LILO

RHEL7

读取GPT

加载引导记录

GRUB

典型启动问题处理

先说引导修复的大原则。就是看3个地方——BIOS、分区、引导。BIOS比较简单,BIOS要注意挑选合适的硬盘,Legacy BIOS对MBR,UEFI BIOS对GPT。新的BIOS可以同时支持Legacy和UEFI,要看清楚。分区最好用分区工具看,MBR留意三个地方,主分区、活动分区,分区是否小于2TB。只有同时满足这三个情况MBR启动才能生效。GPT没有MBR这么多事,但也有新的问题——BCD。BCD要配置正确的分区信息才能找到winload.efi。其中往往容易忽视的是GUID,因为GUID是全球唯一的,通过Ghost复制基本上都会产生错误。所以Ghost安装Win10(UEFI模式)一定要用BCD工具修复。

NTLDR is missing

解决方案:基本上可以断定是文件缺失,该分区有引导的信息,缺没有这些引导的文件。

BOOTMGR is missing

解决方案:基本上可以断定是文件缺失,该分区有引导的信息,缺没有这些引导的文件。

Can't find winload.com (winload.efi)

解决方案:如果是Ghost安装,要注意BCD的配置是否正确指向分区。通过BCDboot,BOOTICE等工具修复。

参考文献

【科普】UEFI+GPT、Legacy+MBR引导模式介绍 & 引导修复

UEFI+GPT,Legacy+MBR引导模式介绍和引导修复

https://jingyan.baidu.com/article/eb9f7b6dac24c3869364e801.html

Windows 7开机启动流程(原理)

PC系统启动过程简介以及Windows引导修复相关推荐

  1. 操作系统启动过程——硬件自检+系统引导+系统加载+系统登录

    以下的内容都是在网上搜集并整理的,希望有问题的朋友在提问之前能先在这里看一看,不要浪费了众多为网络奉献的众多网友的心血! 电脑及操作系统的启动过程是一个很复杂的过程,对于我们大多数只是希望把电脑玩的更 ...

  2. Grub 之常用命令和Windows引导修复(二)

    33 : Serial device not configured  解释 :33 号错误表示串口还没有配置.这一般发生在你执行 terminal serial 的时候  34 : No spare ...

  3. kali linux引导文件修复,Kali+Windows引导修复

    问题:由于Windows更新导致Linux引导丢失 工具:kali系统U盘一个 制作kali系统盘 工具: Win32 Disk Imager unetbootin kali-iso文件 U盘-8G以 ...

  4. U盘大小只有几kb的恢复办法以及老毛桃修复windows引导错误

    u盘恢复: 1.cmd打开黑色终端 2.diskpart 3.list disk 4.select disk # 5.clean #代表磁盘的序列号,主要看大小就知道是哪个磁盘了. 删除之后在磁盘管理 ...

  5. linux系统的启动过程 5个步骤,第5章 Linux系统启动过程.ppt

    <第5章 Linux系统启动过程.ppt>由会员分享,可在线阅读,更多相关<第5章 Linux系统启动过程.ppt(26页珍藏版)>请在人人文库网上搜索. 1.第5章 Linu ...

  6. 计算机启动操作系统的过程,操作系统启动过程

    操作系统启动过程简单分为四部分,从BIOS自检.系统引导.启动内核.初始化系统.其中每个部分又分为多个子部分,操作系统的建立是一个相对比较复杂的事情.以下以Linux2.6.32版本为基础,介绍操作系 ...

  7. linux从接通电源到操作系统启动,第4章-Linux引导过程及原理要点.ppt

    <第4章-Linux引导过程及原理要点.ppt>由会员分享,可在线阅读,更多相关<第4章-Linux引导过程及原理要点.ppt(98页珍藏版)>请在人人文库网上搜索. 1.Li ...

  8. Linux的简介与系统启动过程

    Linux的简介与系统启动过程 文章目录 Linux的简介与系统启动过程 Linux简介 英文解释 Linux开源 Linux 的发行版 Linux应用 Linux vs Windows Linux安 ...

  9. uefi启动linux过程_Linux UEFI与备份还原(引导修复)

    这篇文章主要介绍UEFI启动流程.Linux系统下的备份还原以及grub引导修复. UEFI相关知识 UEFI启动要求硬盘上有一个特殊的分区--EFI系统分区.它是FAT32格式带有efi.boot标 ...

  10. linux 更改 引导分区,Linux系统引导过程及引导修复

    0.Linux系统引导过程: 1.通电 2.bios初始化 3.磁盘引导阶段 4.grub2文件引导程序 5.内核加载 6.系统初始化镜像 7.系统启动级别 8.超级用户密码 以下内容是针对各过程会出 ...

最新文章

  1. 剑指云内存数据库,阿里云在下一盘大棋
  2. 我可以在Markdown中使用“ target =“ _ blank””创建链接吗?
  3. 【CodeVS】p1299 切水果
  4. 随机算法python_梅森算法生成随机数的Python实现
  5. win10安装jboss7_win7系统上jboss6 设置https访问
  6. 吴恩达给 74 岁老父亲发证了!8 年完成 146 门课程!
  7. 《网易编程题》计算糖果
  8. 【神经网络】线性模型非线性模型,感知机与神经网络
  9. Css基本语法及页面引用
  10. HDU 1815, POJ 2749 Building roads(2-sat)
  11. python game_Python游戏
  12. 摄像头视频画面接入,使用iframe标签嵌入到页面中(海康威视、萤石)
  13. android pad刷机,平板刷机图文教程详解!小编手把手教你安卓平板电脑怎么刷机
  14. 动态爬虫之手机版QQ空间登录
  15. Cousera 无法播放视频 解决办法 widows 和 linux
  16. three.js顶点篇
  17. ftp服务器项目,ftp服务器项目手册.doc
  18. 深度学习研究基因组学
  19. android记账app开发全过程,android开发实战-记账本APP(一)
  20. Linux ln -sfn命令

热门文章

  1. UE4内容浏览器改文件夹名称后无法删除空文件夹
  2. SOLIDWORKS 2023出详图和工程图新增功能
  3. 浅析360在系统的进程自保护及突破
  4. go 学习笔记之学习函数式编程前不要忘了函数基础
  5. 【字节前端青训营】跟着月影学JavaScript——前端代码优化三大原则之各司其职,夜间模式小案例
  6. C#创建临时文件夹方法
  7. 修改tomcat的临时文件夹_解决:tomcat重新部署会删除临时文件以及临时文件夹
  8. Ubuntu 16.04 常用软件安装
  9. SmartBI入门(二)配置SmartBI
  10. 128兆内存能运行的linux,128兆内存能干嘛?