“带有 CSM 的 UEFI”启动模式到底是什么?

“带有 CSM 的 UEFI”启动模式到底是什么?

在下面这个问题有人告诉我,“带 CSM 的 UEFI”本质上是 BIOS 模式。这让我很困惑,因为多年来我学到的东西远非如此。

根据我的观察,我认为 CSM 是一种特殊的机制,允许以前“非规范”的 UEFI 操作系统启动。

以下是我的观察:

  1. UEFI 的全名是中央管理委员会

    UEFI 具有兼容性支持模块

    顾名思义,它是 UEFI 的“支持模块”。

  2. 我的电脑主驱动器上有三个分区。驱动器格式化为 GPT,三个分区分别为一个 ESP(EFI 系统分区)和两个主分区(每个分区为 Windows 10/Windows 7)。主板设置中的“启动模式”有三个选项:“传统”、“UEFI”和“带 CSM 的 UEFI”。

    如果设置为“Legacy”,计算机会告诉我“未找到操作系统”。没错。如果设置为“UEFI with CSM”,两个 Windows 都可以正常启动。如果设置为“UEFI”,则只有 Windows 10 可以启动。从安全启动日志中我可以看到 Windows 7 卡在了classpnp.sys

    我尝试\Windows\System32\winload.exe从两个卷中删除(我在 Windows To Go 环境中执行了此操作),并且没有任何问题,因此我恢复了该文件。

  3. 我在 MBR 中插入了另一个驱动器,其中包含两个分区。一个主驱动器使用 FAT32 激活,另一个主驱动器使用 NTFS 激活,并安装了另一个 Windows 7。但是,如果 MB 设置设置为“UEFI”或“带 CSM 的 UEFI”,我似乎无法启动它,但设置为“Legacy”时它可以完美启动。如果我编辑主磁盘上 EFI 分区中的 BCD 以添加此实验性 Windows 7 安装的条目,它会在“带 CSM 的 UEFI”下启动,但仍然卡classpnp.sys在“UEFI”中。

  4. 我有另一台带有 MSI B85 主板的计算机,该主板有一个名为“CSM”的开关。如果启用该开关,则“启动模式”中有两个可用选项,“UEFI”和“传统”。如果禁用该开关,则启动模式将锁定为 UEFI。在这种情况下,启用 CSM 的“UEFI”模式允许 Windows 7 启动,但如果禁用 CSM,它将无法启动。

上述实验让我相信“带有 CSM 的 UEFI”是 EFI 的一种特殊模式,那么为什么我仍然被告知它是 BIOS?

答案1

“UEFI 带 CSM”通常表示混合模式,其中既有原生 (UEFI) 启动,也有基于 CSM (BIOS) 的启动。在这种情况下,启动菜单将显示原生 UEFI 启动项和 CSM“可启动磁盘”项的混合。

但是,禁用 CSM 的一个重要副作用是它将允许激活某些仅限 UEFI 的功能(例如“快速启动”),同时阻止某些仅限 BIOS 的功能(例如 PCI 选项 ROM 支持)。

有可能“快速启动”(尽管是为了Windows 10 存在一些错误,并且会破坏启动过程。

答案2

我个人认为,UEFI ONLY 模式不应与 CSM ON 配对。无论如何。

在正常的 UEFI 引导加载程序中,有三种模式,通常,据我所知是:

[1] Legacy ONLY [msdos partitioning table] with CSM mode set to ON
[2] UEFI + Legacy [GPT partitioning table] with CSM mode set to ON
[3] UEFI ONLY [GPT partitioning table] with CSM mode set to OFF

经过仔细思考,我的脑海里浮现出以下内容:

也许一些 UEFI 引导加载程序只有两种模式:

[1] Legacy ONLY [msdos partitioning table] with CSM mode set to ON
[2] NONE
[3] UEFI ONLY [GPT partitioning table] with CSM mode set to OFF

其中案例 [2] 按照案例 [3] 的方式播放,且 CSM 模式设置为 ON。换句话说:

[1] Legacy ONLY [msdos partitioning table] with CSM mode set to ON
[2] UEFI ONLY [GPT partitioning table] with CSM mode set to ON.
[3] UEFI ONLY [GPT partitioning table] with CSM mode set to OFF

没有人

答案3

正如您所注意到的,操作系统可能需要兼容性支持模块才能进行 UEFI 启动,而不仅仅是传统启动。Windows 7 就是这种情况。事实上,有些名牌电脑甚至没有 CSM,根本无法启动 Windows 7。

我还注意到启用/禁用它还会产生其他影响,例如更改启动期间使用的显示器(在多显示器系统中)或屏幕分辨率。根据我的经验,还需要将其关闭才能进行 UEFI 网络启动。否则,只能访问传统的网络启动固件,无法在 UEFI 模式下启动操作系统。

答案4

也许先问什么是 CSM 选项可能会更好吗?

人们确实把仍然只是 UEFI 协议/驱动程序的东西搞得一团糟(“BIOS”一词同时用作“固件类型”、“OpROM 技术”和“MBR 启动”的简写,但这无济于事)。

话虽如此,我不知道你的笔记本电脑的情况,但如果它的年龄与你的 2013 LGA 1150 主板相似,那么它可能搭载了同样老旧的固件,如 Aptio 4(它本身来自过渡时代)。反过来,它可能包含一些 UEFI 固件时代遗留下来的强制仅启动类似 BIOS 的程序。

因此,尽管添加严格属于 CSM 功能子集的选项实际上毫无意义,但还是使用了三态切换(每个设置大致对应于一个 UEFI 类)。也就是说,如果没有 UEFI 或 UEFI 之外,这个东西就无法存在(请查看我在第一个链接中提到的白皮书以了解更多详细信息)。

但出于某种原因,您的 OEM 决定重新构建其逻辑,以便拥有“单独”的启动轨道,即使从技术上讲,这并非“独有”的(至少在 Linux 上是这样的……Windows 有点麻烦)。也许他们想尽可能避免用户不知不觉以老式的方式启动?或者也许他们在编写设置菜单代码时只考虑了支持 W7 的最低限度的额外服务,因为那些在 W8 发布日期前销售的系统梦想着加快升级路径?

因为这是另一个你忽略的因素:W7 不会在纯 UEFI 环境中启动(至少开箱即用)。它要么是完整的传统安装,要么是与 CSM 绑定的 UEFI 安装(主要用于视频输出目的,有趣的是,你的第三点已经非常接近黑客混淆分区方案)。哦,唉classpnp.sys 通常几乎没有任何意义。

所以.. 长话短说,从您在这里所说的内容来看,“带有 CSM 的 UEFI”因此只是 CSM,只不过它只是对本机 UEFI 感知操作系统的辅助,而不是正常的“全套” BIOS 仿真(不清楚是否只是因为放弃 MBR 解析,因为只接受 UEFI 可执行文件,或者因为在“设置 BIOS 中断调用和旧式 VBIOS”后删除了所有额外的代码)。

从某种意义上说,它确实做到了它所写的,但从另一个角度来看,它也是一个非常似是而非的绰号(另外,请注意,您的桌面有这个选项命名 LEGACY+UEFI这就已经把意思表达清楚了)。

相关内容