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以及双系统需要知道的一些事 的相关文章

  • [OpenAirInterface实战-14] :OAI nFAPI VNF/PNV持续集成测试的xml配置文件详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 120850348 目录 1 nFAPI
  • 计算机网络体系结构 - 运输层

    一 运输层协议概述 运输层为应用进程之间提供端到端的逻辑通信 二 运输层的端口 端口 port 也称为协议端口号 protocol port number 对上层的应用进程进行标识 端口用一个16位端口号进行标志 端口号只具有本地意义 端口
  • Tomcat单实例安装部署

    自说 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器 属于轻量级应用服务器 主要用于处理动态web数据 部署java环境 上传jdk包 使用xftp上传 解压 tar zxvf u01 jdk 8u333 linux i58
  • C规范编辑笔记(四)

    往期文章 C规范编辑笔记 一 C规范编辑笔记 二 C规范编辑笔记 三 正文 大家好 今天来给大家分享一下C规范编辑笔记第四篇 距离我们C规范编辑笔记第三篇也快过去了一个月 这次继续分享一波 1 以大写形式声明常量 为避免误解 常量值必须根据
  • 我可以使用 EFI 在本地文件系统上写入吗

    我正在开发这个项目 以便在操作系统通过 EFI 应用程序启动后立即将文件写入本地文件系统 我需要知道是否可能 如果是的话 请指导我一点 谢谢 好吧 我会好好提醒你的 首先枚举系统中的所有 FS 协议 EFI BOOT SERVICES bs
  • 从 UEFI 应用程序内部运行 UEFI shell 命令

    我是 UEFI 应用程序开发新手 我的要求是 我需要从 UEFI 应用程序运行 UEFI shell 命令 app efi 源代码 需要指导我如何做到这一点 Example cpUEFI shell 中的命令用于将文件从一个路径复制到 其他
  • 是否可以从 BIOS 中的程序调用硬盘上的 Windows 库?

    我正在尝试编写一个程序 该程序将成为 BIOS 选项 开机自检后 我希望应用程序有一个漂亮的 GUI 而不是基于文本 这有多种原因 本地化就是其中之一 我的问题是我们受到可以刷新到 BIOS 的应用程序大小的限制 是否可以使用MASM32
  • Linux 中是否有可以唯一标识 VM 实例的 UUID 类型值?

    我有一个在 Linux 中运行的应用程序 每个人都会尝试从操作系统获取 UUID 并向中央服务器报告 我想确保所有实例都使用全局唯一的 UUID 运行 如果 Linux 位于裸机上 则它只能读取 UUID 例如 从 dmidecode 命令
  • 我的 BIOS 设置中没有启用 Hyper-V 的选项

    我是 Windows Phone 8 应用程序开发新手 我安装了SDK 8 0 当我运行应用程序时 它显示一条错误 告诉我启用 Hyper V 在搜索过程中我发现这个 MSDN 文档BIOS 中有解决方案 但是当进入我的BIOS设置时 却没
  • 面对内卷严重的2023年,测试人员该怎样修炼?

    这几天马上就要双12大促 相信大家都准备花了不少钱吧 其实在每一次大促的背后各大电商平台还在遭受一次又一次的的黑产攻击 拿阿里巴巴去年双十一举例 2684 亿交易额的背后 有一天内 22 亿次的黑产攻击 近几年网络安全事件层出不穷 相信大家
  • 读取 BIOS 级汇编中的输入? [关闭]

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

    我一直在汇编 游戏 中编写引导加载程序 引导加载程序使用 BIOS WAIT 函数 int 0x15 ah 0x86 来实现帧之间的延迟 我正在使用 BOCHS 进行调试 一切都运行良好 时机非常完美 我还制作了一个可启动的isoisoge
  • 如何在 16 位 x86 实模式下通过 BIOS 访问 USB 端口?

    我是装配世界的新手 我正在尝试编写一些汇编代码来与串行 并行 VGA 键盘等硬件设备进行通信 我在 x86 intel 处理器的实模式下执行此操作 通过从我亲自编写的用于加载汇编代码的 boostrap 启动我的代码 嗯 根据我从阅读教程中
  • 为什么引导加载程序中的字节“0xea 0000 ffff”会导致计算机重新启动?

    我正在研究引导加载程序 发现了这个有趣的组件 Sends us to the end of the memory causing reboot db 0x0ea dw 0x0000 dw 0xffff 通过评论我知道它的作用 将计算机发送到
  • 如何在启动操作系统之前进行一些安全验证?

    我有一个可启动闪存盘 其中包含定制的 Ubunto 我想将闪存盘传递给未知的人 但它存在一些安全问题 我想确保未知的人无法更改闪存盘内容 因此 我想计算闪存内容的哈希值并在每次启动时验证它 并在验证失败或哈希不匹配时防止启动操作系统 为此
  • 使用 int 13h 读取的扇区数量多于磁道上的扇区数量

    顺序是什么int 13h with ah 02h会读19部门起始于 C H S 0 0 1 提供了 2 个磁头 每磁道 18 个扇区 每面 80 个磁道的 软盘 磁盘几何结构 或者 更一般地说 当它到达磁道 0 的末尾 磁头 0 时会发生什
  • 没有操作系统直接运行的程序叫什么名字?

    当我试图提出有关该主题的其他问题时 我很难正确表达我的问题 那么直接在相关计算机上运行的程序的正确名称是什么 一个可以描述内核和引导加载程序的术语 因为它们是在没有操作系统的情况下直接执行的 C 标准称之为 独立环境 我觉得这个术语和我见过
  • 我的 Docker 无法在 Windows 10 Pro 上启动

    我在 Windows 10 专业版 PC 上设置 Docker 时遇到了一些问题 当我尝试打开它时 我收到此崩溃报告 崩溃报告截图 https i stack imgur com uwkDZ png 这是框内的文字 System Inval
  • BIOS 是否将 512 字节引导加载程序复制到 0x7c00

    我正在编写内核 在写这么复杂的东西之前 我认为对内核 引导加载程序 寄存器 BIOS 等进行一些理论阅读不仅会有所帮助 而且是必要的 本文 http lennartb home xs4all nl bootloaders node3 htm
  • BIOS 将哪些信息加载到 RAM 中?

    我知道 启动时 BIOS 会在内存 0x7c00 上加载预定义设备驱动器的第一个扇区 512 字节 然后跳转到该地址 因此 0x7c00 到 0x7dff 的内存被占用 RAM 是否还有其他部分被占用 如果我正在编写操作系统 我可以将除 0

随机推荐