如何判断 Windows 安装程序是在 EFI 还是 BIOS 中启动?

如何判断 Windows 安装程序是在 EFI 还是 BIOS 中启动?

我有一个 Windows 7 x64 安装 USB,想知道安装程序是否已启动到 EFI 或 BIOS 模式。

  • 我找到了解决方案这里,但它不起作用,因为notepad找不到:
    \Windows\Panther\setupact.log
    

答案1

现在,我将直奔主题并向您展示如何找到该日志文件。

我使用零售版 Windows Vista DVD 光盘执行了此操作,只是为了演示这一点。但即使您从 USB 闪存驱动器启动,或者使用 Windows 7,情况也应该相同。

从 Windows DVD 或 USB 启动时,您首先会看到一个对话框,您可以在其中选择语言和键盘布局。执行此步骤并单击下一个

然后点击现在安装按钮。

当您进入要求您输入产品密钥的屏幕时,按Shift+F10即可进入命令提示符。

你的标记现在应该在X:\Sources>

如何在所有 Windows 目录中搜索日志文件

要查看文件夹中的日志文件,您可以输入dir ..\*.log /s

如何从命令提示符在记事本中打开日志文件

您正在寻找的文件名为setupact.log。您可以在结果中看到它吗?它应该位于X:\Windows\panther

要在记事本中打开此文件而不更改目录,您可以键入notepad ..\windows\panther\setupact.log

如果文件存在(应该存在),则此操作将在记事本中打开它。现在在记事本中,按Ctrl+F并输入打回来然后按Enter

您应该会看到包含该词的多个条目,但您感兴趣的条目的标题为Callback_BootEnvironmentDetectEnter反复按 ,直到找到它。

如何在记事本的日志中找到“回调”一词

就我的情况来说,它说Callback_BootEnvironmentDetect:FirmwareType 1

我认为这是因为这是在 Windows Vista 上,而且由于这是一个 BIOS 系统,我猜 Type 1 代表 BIOS。因此,如果您在 UEFI 系统上对 Vista 执行相同操作,则很可能显示 Type 2。对于 Windows 7,相同的行可能只会显示 UEFI 或 BIOS。

简而言之...

Windows Vista:

Callback_BootEnvironmentDetect:FirmwareType 1表示 BIOS

Callback_BootEnvironmentDetect:FirmwareType 2表示 UEFI

Windows 7的:

Code:Callback_BootEnvironmentDetect: Detected boot environment: BIOS

Code:Callback_BootEnvironmentDetect: Detected boot environment: UEFI

您可能还想查看有关如何将 Windows 7 部署到基于 UEFI 的计算机。

您可能已经注意到,大多数人交替使用 EFI 和 UEFI,但 UEFI 是后来发展起来的,而 EFI 是旧有的。如果我没记错的话,它代表通用可扩展固件接口。但不要混淆,它们通常意味着同一件事。您的主板手册中可能会写着 EFI 或 UEFI,您需要启用它。

答案2

打开命令提示符(以管理员身份),然后运行:

bcdedit /enum

这将枚举 BCD 设置,您将获得类似于以下的输出:

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {3c6390c7-c6ce-11e1-8e2f-c6d882f2969a}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {3c6390cb-c6ce-11e1-8e2f-c6d882f2969a}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {3c6390c7-c6ce-11e1-8e2f-c6d882f2969a}
nx                      OptIn

浏览列表并查找Windows Boot Loader。如果您的系统以 EFI 模式启动,则path值将为\Windows\system32\winload.efi(请注意.efi扩展名 - 否则将恢复为.exe)。

来源

http://www.uefi.org/events/UEFI-Plugfest-WindowsBootEnvironment.pdf

答案3

现在 Windows 8 及更高版本包含一个未记录的环境变量,用于检查系统启动的固件类型,也就是说FIRMWARE_TYPE,从 Cmd 中查看它的用法:

echo %FIRMWARE_TYPE%

可能的值:UEFI、Legacy、Unknown

答案4

Microsoft 建议的方法是进行简单的注册表查询。在命令提示符下运行此命令

reg.exe query HKLM\System\CurrentControlSet\Control /v PEFirmwareType

如果返回值为 1 或 0x1,则表示您的 PC 运行在 BIOS 模式下。如果返回值为 2 或 0x2,则表示您的 PC 运行在 UEFI 模式下。

https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/boot-to-uefi-mode-or-legacy-bios-mode

相关内容