前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BIOS与UEFI介绍与使用

BIOS与UEFI介绍与使用

作者头像
全栈工程师修炼指南
发布2022-09-28 20:50:15
3.5K0
发布2022-09-28 20:50:15
举报
文章被收录于专栏:全栈工程师修炼之路

[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启动为什么那么快? UEFI相比传统的启动方式少了一个启动时候自检的过程,所以启动时间大幅度缩短;

WeiyiGeek.启动流程
WeiyiGeek.启动流程

WeiyiGeek.启动流程

对比补充

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或者主板启动进行设置:

代码语言:javascript
复制
#老机器引导配置 (不启动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设置屏幕,而不是在计算机启动时按下某个键;
WeiyiGeek.UEFI
WeiyiGeek.UEFI

WeiyiGeek.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分区”,并且格式化分区;

代码语言:javascript
复制
- ESP分区(UEFI System Partition):用于才有UEFI BIOS的电脑系统来启动操作系统;分区内存存放 `引导管理程序,驱动程序,系统维护工具等等`
- MSR分区(微软保留分区)是GPT磁盘上用于保留空间以备用的分区;例如在将磁盘转换成为冬天磁盘时候会采用这些空间;

3.给ESP分区分配盘符,然后打开UEFI的 引导修复文件;选择刚刚分配的ESP分区的盘符,然后在选择”开始修复”,选择Window目录

注意事项:

  • 尽量不要选择自动模式,因为在确定自己的启动方式后,安装系统所用的U盘,甚至硬盘引导都要配套
  • VMware设置客户端操作系统 版本可以影响引导启动: 虚拟机设置 -> 常规 - > 选择客户端操作系统
  • VMware 修改固件类型(支持UEFI):虚拟机设置 -> 选项 -> 高级 -> 固件类型进行选择

0x02 设置U盘引导

Step1.下载PE工具箱并生成引导ISO文件:

WeiyiGeek.生成PE引导箱
WeiyiGeek.生成PE引导箱

WeiyiGeek.生成PE引导箱

Step2.采用软媒魔方得USB引导制作工具:

WeiyiGeek.多PE系统引导
WeiyiGeek.多PE系统引导

WeiyiGeek.多PE系统引导


0X03 引导修复

UEFI引导基本原理:

efi文件结构

代码语言:javascript
复制
#注意需要先挂载ESP分区
efi\boot\bootx64.efi
efi\microsoft\boot\bcd

efi启动过程 :UEFI-BIOS启动时候自动查找硬盘下ESP分区的bootx64.efi,然后又bootx64.efi引导下的BCD文件,由BCD引导指定系统文件c:\windows\system32\winload.efi

(1)采用BCDboot自动修复:

代码语言:javascript
复制
#(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修复 Step1.打开diskgenius软件有没有这两个分区:ESP和MSR如果没有需要建立并进行挂载; Step2.打开BOOTICE引导管理,1.选择:BCD编辑2.点:其它BCD文件3.点引号内“…”打开 Step3.找到ESP分区盘符efi>microsoft>boot>BCD打开BCD Step4.找到后找智能编辑,如果没有启动项就需要添加新建引导保存当前系统设置,如果有则跳过

WeiyiGeek.智能编辑
WeiyiGeek.智能编辑

WeiyiGeek.智能编辑

Step5.设置启动设备、属性等,启动分区就是系统安装的分区;

Step6.UEFI再点修改启动顺序:

WeiyiGeek.UEFI
WeiyiGeek.UEFI

WeiyiGeek.UEFI

  • 1.点:Windows boot manager(这个就是Windows启动项)。
  • 2.启动分区:选择ESP盘符。
  • 3.启动文件:\EFI\Microsoft\Boot\bootmgfw.efi,如果不是,把这串路径复制到红框3内。
  • 4.点:保存当前启动设置,最好把“下一次启动该项”打勾。
WeiyiGeek.bootManager
WeiyiGeek.bootManager

WeiyiGeek.bootManager

补充:uefi添加修复启动项设置完毕,如果是双系统需要添加启动项(安装上述即可),在修复UEFI的时候必须进入UEFI模式;

代码语言:javascript
复制
控制启动管理器: bcdedit  
主启动代码更新: bootsect  
启动文件修复:bcdboot

其它问题:

  • 1.手工运行ghost并不会修复esp分区
  • 2.用老大们的一键还原,现在慢慢加上了还原后esp引导修复功能,如实测深山的一键还原就自带esp分区uefi引导修复
  • 3.用微软原版系统光盘安装或PE下安装,当然都会自动修复esp引导。
0x0n 补充参考

推荐工具:

注意WePE安装至开机启动项详细规格:http://www.wepe.com.cn/learnmore.html

  • Legacy启动时:可安装到32和64位系统开机启动项
  • EFI启动时:只可安装到64位系统开机启动项,支持PE密码最长16位
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 快速入门
    • BIOS
      • UEFI
        • 对比补充
        • 0x01 设置传统与UEFI模式
        • 0x02 设置U盘引导
        • 0X03 引导修复
        • 0x0n 补充参考
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档