[TOC]
0x00 快速入门
描述:英特尔已经宣布计划在2020年之前将所有芯片组完全替换为UEFI
,所以说BIOS即将迎来生命周期的最后一个周期;但是我们现在UEFI附带的新电脑仍将其称为“BIOS”,符合用户的叫法;
2007年,英特尔,AMD,微软和PC制造商就新的统一可扩展固件接口(UEFI)规范达成一致。 这是一个全行业标准管理的统一扩展固件接口,并不完全由英特尔推动。
UEFI和BIOS都是低级软件
,所谓低级软件就是指它们会在引导操作系统之前启动时启动,但UEFI是更现代的解决方案,支持更大的硬盘驱动器,更快的启动时间
,更多的安全功能以及方便的图形和鼠标游标。
说到操作系统的引导就不得不提到操作系统的文件系统,为下面的知识进行一个扩展;
File System
File System(文件系统)是存储媒介中文件存储的组织方式。
- 不同的文件系统类型有不同的速度,灵活性,安全性和占用空间。
- 不同操作系统只支持特定的文件系统类型。
常见的文件系统类型有 FAT16,FAT32,NTFS,EXT3,EXT4,HFS, xfs 等。
BIOS
什么是BIOS?
答: BIOS 英文全称(Basic Input Output System)即基本输入输出系统,它是位于计算机主板上的芯片中的低级软件且已经存在很长时间了,计算机启动时BIOS加载,BIOS负责唤醒计算机的硬件组件,确保它们正常运行然后运行引导加载程序来引导Windows或任何其他已安装的操作系统。并且可以在BIOS设置屏幕中配置各种设置。诸如计算机硬件配置,系统时间和引导顺序等;
启动流程:
- 开机-POST或者开启自检-查找引导设备上存储的主引导记录和MBR-加载BootLoader-进入系统
局限性:
- 只能从2.1TB或更少的驱动器启动,
限制是由于BIOS的主引导记录(MBR分区)系统的工作方式
。 - 必须以16位处理器模式运行,并且只有1 MB空间可供执行,导致
初始化多个硬件设备时会出现问题
,所以就是单项单项检查导致启动时间较慢;
补充:CMOS缩写代表互补金属氧化物半导体,指BIOS在主板上存储各种设置的以电池供电的存储器,在现代系统中这种方法已被闪存(也称为EEPROM)取代
传统启动方式:即是我们所说的 Legacy 模式
UEFI
什么是UEFI?
答: UEFI(Unified Extensible Firmware Interface )即通一扩展引导接口,它还以更标准化的方式引导启动EFI可执行文件,而不是从驱动器的主引导记录运行代码。
特点:
- UEFI支持图形化操作包括图形和鼠标光标支持
- 启动时间大幅缩短
- 支持更大硬盘驱动器(2.1TB以上),理论限制为9.4ZB zettabytes
- UEFI可以以32位或64位模式运行,并具有比BIOS更多的可寻址地址空间,
意味着您的引导过程更快/BIOS设置更加清晰
- 支持安全启动可以检查操作系统的有效性,以确保没有恶意软件篡改引导进程。
- UEFI固件本身支持网络功能
有助于进行远程故障排除和配置
常见组合:
- UEFI + GPT(分区)启动方案
- BIOS + MBR(分区)启动方案
硬盘的分区结构:
- MBR分区表:Master Boot Record即硬盘主引导记录分区表,只支持容量在 2.1TB 以下的硬盘只能管理2.1TB,最多只支持4个主分区或三个主分区和一个扩展分区,扩展分区下可以有多个逻辑分区。
- GPT分区表:GPT全局唯一标识分区表(GUID Partition Table),与MBR最大4个分区表项的限制相比,GPT对分区数量没有限制,但Windows最大仅支持128个GPT分区,GPT可管理硬盘大小达到了18EB。
只有基于UEFI平台的主板才支持GPT分区引导启动
。 - ESP分区:EFI system partition分区用于采用了EFI BIOS的电脑系统用来启动操作系统。
分区内存放引导管理程序、 驱动程序、系统维护工具等
。如果电脑采用了EFI系统或当前磁盘用于在EFI平台上启动操作系统,建议ESP分区为FAT16格式,容量最好大于100M,无其他特殊要求
。 - MSR分区:即微软保留分区,是GPT磁盘上用于保留空间以备用的分区,例如在将磁盘转换为动态磁盘时需要使用这些 分区空间。
UEFI启动为什么那么快? WeiyiGeek.启动流程
UEFI相比传统的启动方式少了一个启动时候自检的过程,所以启动时间大幅度缩短;
对比补充
BIOS vs UEFI
BIOS(Basic Input/Output System)和 UEFI(Unified Extensible Firmware Interface )是不同的计算机启动固件(Fireware),需要硬件(通常为主板)支持,相互代替的,其中 UEFI 是比较新的方式。
BIOS
经典的启动固件,会调用磁盘的 MBR,然后由 MBR 中的 loader 继续加载操作系统。UEFI
UEFI 用来代替 BIOS,并克服 BIOS 的缺点,大多数的 UEFI 固件会提供兼容 BIOS 的启动方式。
MBR vs GPT
描述:MBR 与 GPT 用于存储硬盘的分区信息,是不同的硬盘分区表类型
。
- MBR
MBR 表示 MBR 分区表,MBR 分区表在硬盘开头处存放了特殊的启动分区,称为 MBR(Master Boot Record,主启动记录),包含 Boot Loader 和硬盘逻辑分区。MBR 支持最大约2T的硬盘,最多能划分4个主分区,更多分区需要使用拓展分区实现。
(MBR在行文中可以表示 MBR 分区表和主启动记录两个意思,注意甄别。) - GPT
GPT 表示 GUID(Globally Unique Identifier) 分区表,是 UEFI 规范的一部分,用于替换 MBR 的分区方式。GPT 没有分区数和分区大小限制。
简单描述磁盘发展史
Wikipedia 上有许多关于磁盘的资料,在磁盘分区上,我猜测的发展脉络是这样的:
- 1.磁盘跟内存一样直接物理寻址去访问数据;
- 2.为了方便,建立数据 Index,有了 File System;
- 3.需要多个分区,搞出了 Partition Tabel。
注意事项:
- (1) 磁盘分区表类型与磁盘文件系统类型不是同一个事物,前者是比如指代 MBR/GPT 分区类型。后者指代NTFS;
- (2) BIOS/UEFI 跟 MBR/GPT 是不同层级的,BIOS/UEFI 是 Fireware,MBR/GPT 是分区表。
- (3) Windows 通常会要求 UEFI 的启动方式使用 GPT,不然不给继续安装。推荐的使用方式: BIOS + MBR 或 UEFI + GPT:
0x01 设置传统与UEFI模式
描述:我们需要进入BIOS或者主板启动进行设置: WeiyiGeek.UEFI1
2
3
4
5
6
7
8
9
10
11#老机器引导配置 (不启动UEFI)
Fast Boot : Enabled
Launch CSM : Disabled
#新机器(启用UEFI)
UEFI/Legacy Boot: UEFI BIOS
SECURE BOOT :Disabled #关闭才能从U盘启动,Windows 8 中增加了一个新的安全功能,Secure Boot内置于UEFI BIOS中,用来对抗感染MBR、BIOS的恶意软件
#Windows 8 缺省将使用Secure Boot,在启动过程中,任何要加载的模块必须签名(强制的),UEFI固件会进行验证, 没有签名或者无法验证的,将不会加载。
#其他方式
比如在Windows8以上可能需要通过Windows启动选项菜单访问UEFI设置屏幕,而不是在计算机启动时按下某个键;
Auto(自动)/Both:自动按照启动设备列表中的顺序启动优先采用UEFI方式
;
UEFI only(仅UEFI):只选择具备UEFI启动条件的设备启动全新的启动模式
Legacy only(仅Legacy):只选择具备Legacy启动条件的设备启动最传统的模式
CSM选项:兼容模块
专为兼容只能在legacy模式下工作的设备以及不支持或不能完全支持UEFI的操作系统而设置(老显卡、老设备)
传统BIOS模式启动引导修复:
- NTbootAutoFix引导修复工具
流行UEFI模式启动引导修复:(需要进入UEFI模式的PE)
- UEFix(UEFI 引导修复)
- BOOTICE 编辑器(注意需先挂载:ESP分区)
- Linux 系统 UEFI 编辑工具 efibootmgr
传统BIOS引导模式改为UEFI引导模式并修复流程
0.对已有磁盘进行调整分区大小,将磁盘的两端各留1GB的空闲空间;
1.转换该磁盘的分区表类型为GUID格式并且保存
2.选择前面的1GB的空闲分区,右键再选择”建立ESP(300MB)/MSR分区”,并且格式化分区;
- ESP分区(UEFI System Partition):用于才有UEFI BIOS的电脑系统来启动操作系统;分区内存存放 `引导管理程序,驱动程序,系统维护工具等等`
- MSR分区(微软保留分区)是GPT磁盘上用于保留空间以备用的分区;例如在将磁盘转换成为冬天磁盘时候会采用这些空间;
3.给ESP分区分配盘符,然后打开UEFI的 引导修复文件;选择刚刚分配的ESP分区的盘符,然后在选择”开始修复”,选择Window目录
注意事项:
- 尽量不要选择自动模式,因为在确定自己的启动方式后,安装系统所用的U盘,甚至硬盘引导都要配套
- VMware设置客户端操作系统 版本可以影响引导启动:
虚拟机设置 -> 常规 - > 选择客户端操作系统
- VMware 修改固件类型(支持UEFI):
虚拟机设置 -> 选项 -> 高级 -> 固件类型进行选择
;
0x02 设置U盘引导
Step1.下载PE工具箱并生成引导ISO文件: WeiyiGeek.生成PE引导箱
Step2.采用软媒魔方得USB引导制作工具: WeiyiGeek.多PE系统引导
0X03 引导修复
UEFI引导基本原理:
efi文件结构
1
2
3#注意需要先挂载ESP分区
efi\boot\bootx64.efi
efi\microsoft\boot\bcdefi启动过程 :UEFI-BIOS启动时候自动查找硬盘下ESP分区的bootx64.efi,然后又bootx64.efi引导下的BCD文件,由BCD引导指定系统文件c:\windows\system32\winload.efi
(1)采用BCDboot自动修复:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#(1)指定esp分区修复环境为64位8PE,bios/uefi启动进入下都可以
Step1.启动64位8PE,并用esp分区挂载器或diskgenuis挂载esp分区
Step2.打开cmd命令行,输入以下命令并运行
$bcdboot c:\windows /s o: /f uefi /l zh-cn
# 其中:c:\windows 硬盘系统目录,根据实际情况修改
# /s o: 指定esp分区所在磁盘,根据实际情况修改
# /f uefi 指定启动方式为uefi
# /l zh-cn 指定uefi启动界面语言为简体中文
# 注:64位7PE不带/s参数,故7PE不支持bios启动下修复
#(2)不指定esp分区修复
#\环境为64位7或8PE,只有uefi启动进入PE才可以不用挂载esp分区,直接在cmd命令行下执行:
bcdboot c:\windows /l zh-cn
# 其中 c:\windows 硬盘系统目录,根据实际情况修改
# /l zh-cn 指定uefi启动界面语言为简体中文
# 注:在8PE中我们也可以在uefi启动进入pe后,挂载esp分区用方法
(2)采用BOOTICE进行UEFI修复 WeiyiGeek.智能编辑 WeiyiGeek.UEFI
Step1.打开diskgenius软件有没有这两个分区:ESP和MSR如果没有需要建立并进行挂载;
Step2.打开BOOTICE引导管理,1.选择:BCD编辑2.点:其它BCD文件3.点引号内“…”打开
Step3.找到ESP分区盘符efi>microsoft>boot>BCD打开BCD
Step4.找到后找智能编辑,如果没有启动项就需要添加新建引导保存当前系统设置,如果有则跳过
Step5.设置启动设备、属性等,启动分区就是系统安装的分区;
Step6.UEFI再点修改启动顺序:
- 1.点:Windows boot manager(这个就是Windows启动项)。
- 2.启动分区:选择ESP盘符。
- 3.启动文件:\EFI\Microsoft\Boot\bootmgfw.efi,如果不是,把这串路径复制到红框3内。
- 4.点:保存当前启动设置,最好把“下一次启动该项”打勾。
WeiyiGeek.bootManager
补充:uefi添加修复启动项设置完毕,如果是双系统需要添加启动项(安装上述即可),在修复UEFI的时候必须进入UEFI模式;1
2
3控制启动管理器: bcdedit
主启动代码更新: bootsect
启动文件修复:bcdboot
其它问题:
- 1.手工运行ghost并不会修复esp分区
- 2.用老大们的一键还原,现在慢慢加上了还原后esp引导修复功能,如实测深山的一键还原就自带esp分区uefi引导修复
- 3.用微软原版系统光盘安装或PE下安装,当然都会自动修复esp引导。
0x0n 补充参考
推荐工具:
- it天空:https://www.itsk.com
- u盘魔术师 : https://www.sysceo.com
- WePe : http://www.wepe.com.cn/
- 软媒魔方:https://mofang.ruanmei.com/
注意WePE安装至开机启动项详细规格:http://www.wepe.com.cn/learnmore.html
- Legacy启动时:可安装到32和64位系统开机启动项
- EFI启动时:只可安装到64位系统开机启动项,支持PE密码最长16位