UEFI与BIOS(CSM)下安装Windows以及双系统需要知道的一些事

2023-11-07

EFI是什么

我之前的一篇博客计算机启动的基本过程提到了BIOS是个程序,存储在BIOS芯片中. 而现在的新式电脑用的基本都是UEFI启动,早期的过渡电脑用的都是EFI启动.

其实EFI或UEFI的一部分也是存储在一个芯片中,由于它们在表面形式、基本功能上和BIOS差不多,所以习惯上我们也把存储EFI/UEFI的芯片叫做EFI/UEFI BIOS芯片,EFI/UEFI也叫做EFI/UEFI BIOS,但在实际上它们和BIOS根本是不一样的.

EFI和BIOS一样,主要在启动过程中完成硬件初始化,但它是直接利用加载EFI驱动的方式,识别系统硬件并完成硬件初始化,彻底摒弃读各种中断执行.

CSM是什么

大多数 x86 和 x86-64 架构的计算机上的 EFI 都包含一个叫做兼容支持模块Compatibility Support Module(CSM)的组件,这使得 EFI 能够使用旧的 BIOS 风格的引导机制来引导操作系统. 这会非常方便,因为它向后兼容. 以技嘉X570主板为例, 在boot页面下默认CSM模式是开启的
在这里插入图片描述

UEFI是什么

当EFI发展到1.1的时候,英特尔决定把EFI公之于众,于是后续的2.0吸引了众多公司加入,EFI也不再属于英特尔,而是属于了Unified EFI Form的国际组织,EFI在2.0后也遂改称为UEFI,UEFI,其中的EFI和原来是一个意思,U则是Unified(一元化、统一)的缩写,所以UEFI的意思就是“统一的可扩展固件接口”,与前身EFI相比,UEFI主要有两个改进.

首先是UEFI具有完整的图形驱动功能,显示的设置界面是显卡高分辨率按640x480或1024x768显示.

其次是UEFI具有一个独特的功能,安全启动,而EFI是没有安全启动(Secure Boot)的,安全启动实际上通俗的解释是叫做固件验证.

开启UEFI的安全启动后,主板会根据TPM芯片(或者CPU内置的TPM)记录的硬件签名对各硬件判断,只有符合认证的硬件驱动才会被加载. 而Win8以后的Windows则是在操作系统加载的过程中对硬件驱动继续查签名,符合Windows记录的硬件才能被Windows加载,这在一定程度上降低了启动型程序在操作系统启动前被预加载造成的风险,但是这也会造成系统安装变得垄断, 所以在后面提到的安装双系统时需要关闭Secure Boot.

安装Windows时需要注意什么

读到这里你可能会问了, 上面的知识对我装系统有什么影响呢? 因为网上很多装系统教程只告诉大家用什么软件, 以什么目标系统类型去烧录U盘, 但是却没有告诉大家什么情况下用什么该用这种类型, 什么情况下不该用这种类型.

烧录启动盘的软件推荐使用Rufus. 如果你要安装系统的目标硬盘是MBR格式, 那么选择分区类型为MBR, 目标系统类型选择BIOS(或UEFI-CSM). 反之如果是GPT格式, 那么使用UEFI(非CSM)格式. 如下两图.
在这里插入图片描述
在这里插入图片描述
如果你不能确定自己的硬盘格式, 使用DiskGenius软件, 在左上角可以查看到当前硬盘的格式. 如下图. 如果你的硬盘容量大于2T, 那么就要使用GPT格式了,否则二者皆可. DiskGenius也可以提供分区转换服务. 这样你就可以自由转换分区格式并选择目标系统类型了.
在这里插入图片描述
当选择了目标系统为CSM格式时, 你需要在BIOS中设置CSM为开启状态. 此时Secure Boot也会关闭.

同样地, 当选择了目标系统为UEFT格式时, 你需要关闭CSM. 但是这里注意, 如果你有安装双系统的需求, 这里需要关闭Secure Boot.

另外这里多说一点, 如果你用到了装机U盘比如大白菜来帮助你装机, 此时你需要开启CSM, 否则你将启动不了大白菜的装机PE系统.

另外我的技嘉X570主板在关闭CSM后, BIOS会莫名奇妙卡起来, 进入任何系统也是会变得非常地缓慢, 重装BIOS或者系统都不管用. 所以建议大家可以的话还是要开启CSM来装.

安装双系统时需要注意什么

如上所说, Secure Boot使得Windows系统处于"垄断"模式下, 所以, 安装双系统最重要的就是关闭Secure Boot. 这可以通过开启CSM, 或者是关闭CSM后(即在UEFI模式下), 单独关闭Secure Boot.

其次, 烧录时选择的目标系统类型和安装Windows的选择思路是一样的.

这里注意, 尽量在安装双系统前, 提前开辟出未分配的空间以供使用, 这样在选择与Windows Boot Manager共存时可以直接使用, 否则系统可能会推荐你安在别的地方.

另外, 你需要禁用Windows的快速启动功能. 这个页面描述了如何禁用此功能,不禁用的话会导致文件系统损坏。请注意此功能与BIOS里面的的快速启动选项不同。

关于双系统的安装和卸载细节, 网上的教程有很多, 我比较推荐

手把手教你Windows Linux双系统的安装与卸载详解 UEFI 模式下安装 Linux

参考

  1. IT之家学院:BIOS、EFI与UEFI详解
  2. 详解 UEFI 模式下安装 Linux
  3. 关于CSM和UEFI你要知道的一些事
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UEFI与BIOS(CSM)下安装Windows以及双系统需要知道的一些事 的相关文章

  • yolo v3 fatal : Memory allocation failure

    torch版的 yolov3报错 fatal Memory allocation failure parser add argument n cpu type int default 8 help number of cpu threads
  • 插入排序总结

    插入排序 Insertion Sort 的算法描述是一种简单直观的排序算法 它的工作原理是通过构建有序序列 对于未排序数据 在已排序序列中从后向前扫描 找到相应位置并插入 排序思路 假设按照升序排序 1 从索引为1的元素开始向前比较 一旦前
  • ES索引库的别名的使用--不停服实现索引库的重建切换

    ES 的别名不停停服切换索引 线上发布 场景 我们现在线上正在使用 ES索引库 V 没有使用ES索引库别名 两个问题 现在由于字段更新 把线上的数据重新写入了V1库 现在如何在不断服的情况下 完美的实现 从V 切换到V1 索引库 后续如果再
  • 1024,干程序才懂得节日!

    1024程序员节 1024程序员节是广大程序员的共同节日 1024是2的十次方 二进制计数的基本计量单位之一 针对程序员经常周末加班与工作日熬夜的情况 部分互联网机构倡议每年的10月24日为1024程序员节 在这一天建议程序员拒绝加班 程序
  • 什么是protocol分层,垂直service??计算机网络详解【计算机网络养成】

    内容导航 分组丢失和延时 发生原因 四种分组延时 节点处理延迟 排队延迟 传输延时 Transmission 传播延时 Propagation 使用cmd命令tracert 和 tracerert 来检查延迟 分组丢失 吞吐量 有效的数据量
  • DES加密算法详解——看这一篇就够了!

    目录 一 DES简介 二 DES算法入参 三 DES加密算法步骤解析 1 IP置换 M gt M0 2 密钥K控制的16轮运算 M0 K1 K16 gt M16 2 1 子密钥Kn的计算 2 1 1 PC 1置换 2 1 2 循环左移运算
  • 在idea中安装并且使用easy code插件 ,以及在idea中配置mysql数据库

    在idea中安装并且使用easy code插件 以及在idea中配置mysql数据库 1 从导航栏进入设置页面 2 点击plugins选项 在输入框中输入easy code查找 并点击installed安装 下载安装好了以后需要重启软件 点
  • 星星之火-22: 什么是手机小区重选?跳槽

    小区重选 cell reselection 指手机在空闲模式下 通过监测邻区和当前小区的信号质量以选择一个最好的小区提供服务信号的过程 选择了一家新公司 并不意味着永久待在一家公司 当前服务的公司 有可能由于经营状况变变糟 薪资水平下降 也
  • 是否可以从 BIOS 中的程序调用硬盘上的 Windows 库?

    我正在尝试编写一个程序 该程序将成为 BIOS 选项 开机自检后 我希望应用程序有一个漂亮的 GUI 而不是基于文本 这有多种原因 本地化就是其中之一 我的问题是我们受到可以刷新到 BIOS 的应用程序大小的限制 是否可以使用MASM32
  • 在linux下构建edk2

    我开始用 edk2 编写一个小而简单的应用程序 因此 要编写一个简单的 edk2 UEFI 应用程序 我是这样开始的 git克隆https github com tianocore edk2 git edksetup sh BaseTool
  • prometheus|云原生|轻型日志收集系统loki+promtail的部署说明

    一 日志聚合的概念说明 日志 每一个程序 服务都应该有保留日志 日志的作用第一是记录程序运行的情况 在出错的时候能够记录错误情况 简单来说就是审计工作 例如nginx服务的日志 kubernetes集群的pod运行日志 Linux系统的系统
  • 我的 BIOS 设置中没有启用 Hyper-V 的选项

    我是 Windows Phone 8 应用程序开发新手 我安装了SDK 8 0 当我运行应用程序时 它显示一条错误 告诉我启用 Hyper V 在搜索过程中我发现这个 MSDN 文档BIOS 中有解决方案 但是当进入我的BIOS设置时 却没
  • 读取 BIOS 级汇编中的输入? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在创建一个非常低级的应用程序 并且我已准备好引导加载程序 我本质上必须重建 scanf 函数 因为
  • 中断 0x15 函数 0x86(BIOS WAIT)在真实硬件上的运行速度比在虚拟机上慢得多?

    我一直在汇编 游戏 中编写引导加载程序 引导加载程序使用 BIOS WAIT 函数 int 0x15 ah 0x86 来实现帧之间的延迟 我正在使用 BOCHS 进行调试 一切都运行良好 时机非常完美 我还制作了一个可启动的isoisoge
  • 启动时自动运行 EFI 应用程序

    I can 构建并手动执行 http sourceforge net apps mediawiki tianocore index php title Getting Started Writing Simple ApplicationUE
  • 在内核模式下读取/写入 Linux 上的 EFI 变量

    我正在研究 Linux UEFI 我想通过我的驱动程序代码访问 efi 变量 目前我正在寻找像 efi get variable 这样的 linux efi h API 但我不知道如何从我的驱动程序代码中调用这些 API struct ef
  • 如何在 16 位 x86 实模式下通过 BIOS 访问 USB 端口?

    我是装配世界的新手 我正在尝试编写一些汇编代码来与串行 并行 VGA 键盘等硬件设备进行通信 我在 x86 intel 处理器的实模式下执行此操作 通过从我亲自编写的用于加载汇编代码的 boostrap 启动我的代码 嗯 根据我从阅读教程中
  • 如何在启动操作系统之前进行一些安全验证?

    我有一个可启动闪存盘 其中包含定制的 Ubunto 我想将闪存盘传递给未知的人 但它存在一些安全问题 我想确保未知的人无法更改闪存盘内容 因此 我想计算闪存内容的哈希值并在每次启动时验证它 并在验证失败或哈希不匹配时防止启动操作系统 为此
  • x86 asm 图形设置的分辨率高于 640x480?

    我刚刚开始使用汇编语言 感觉像学习新东西 并且遇到了一些问题 到目前为止 我一直在浏览的所有教程都没有回答 或者太旧而无法知道 1 我尝试了一些搜索 也许我只是不知道正确的关键字 但我找不到用于更改屏幕分辨率等的图形模式的更新列表 我发现的
  • 如果默认禁用 A20 线,如何在 0xFFFFFFF0 处访问 BIOS ROM?

    我正在阅读有关 A20 线的信息http wiki osdev org A20 Line http wiki osdev org A20 Line 这似乎表明 A20 线默认被禁用 在Pentium上 如果硬复位后立即输出的地址为0xFFF

随机推荐