问题标签 [efi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5218 浏览

windows - 如何通过批处理脚本检测 EFI 分区是否已安装在 Windows 中?

我正在尝试编写一个批处理脚本来检测 EFI 分区是否已安装在 Windows 中。

最终,我的目标是mountvol /S仅在 EFI 分区尚未挂载时才使用(挂载 EFI 系统分区)。

带有该命令的diskpart实用程序本身list volume具有一些潜在有用mountvol的信息,但看起来这两个都需要一些字符串解析。

有没有更好的办法?

0 投票
1 回答
1598 浏览

bios - intel atom 中的 EFI 或 BIOS??。

我有一个带有 fedora 的 intel atom。我在 /boot/efi/EFI/redhat 中看到了 efi 配置文件,但 efi 配置文件指定它是一个 dos/windows 应用程序。

我使用 dmidecode cmd 发现该系统仍然使用 BIOS。这是输出

句柄 0x0004,DMI 类型 0,24 字节

BIOS 信息

我无法理解实际启动系统 BIOS 或 efi 的原因。此外,由于 efi 相对较新,有人可以建议从哪里开始,因为我想用 efi 编写应用程序,我相信它是用 c 语言编写的

0 投票
3 回答
5540 浏览

c++ - 从 WinPE 检测 BIOS:Legacy 或 UEFI,使用 vbs // 将结果从 .exe 输出到 .txt

这是我的场景:

我有一台具有 2 种可能配置的服务器:不需要特殊处理的 2 TB 硬盘或需要 UEFI BIOS 和 GPT 分区来启动操作系统的 3 TB 硬盘。

我正在尝试创建一个能够检测 BIOS 是“旧版”还是“UEFI”并相应地执行部署脚本的单一安装 USB 密钥。

我努力寻找可以区分但无济于事的 WMI。

我最接近解决方案的是这篇文章: http ://social.technet.microsoft.com/Forums/en-US/winserverManagement/thread/6cbb488d-3062-4aad-b712-7a9e4d045b13

detectefi.exe 在检测 BIOS 类型方面效果很好,但我无法输出它的结果,所以我不知道如何使用它。

我有两个问题:

  1. 是否有任何 WMI 可以用来区分我的 2 个设置。

  2. (如果问题 1 的答案是否定的)有没有办法将 C++ 编译的 .exe 文件的结果输出到 .txt 或任何其他形式并利用结果(我根本没有 C++ 技能)

0 投票
1 回答
4810 浏览

windows - 将 Windows 7 UEFI 条目写入 NVRAM

我目前正在编写一个脚本来对我负责的多台实验室机器使用 Windows 7 进行映像,不幸的是它们是 UEFI Dell 机器,它们以一种愚蠢的方式工作。在我使用戴尔设置实用程序创建映像的机器上,Windows 的启动菜单中有一个 UEFI 条目,它加载了 /boot/Microsoft/bootx64.efi 文件或类似的文件,当我对机器进行映像时,一切正常,除了当我启动它们时,我得到了很好的旧“找不到可启动设备错误”,当我进入戴尔设置实用程序时,没有 Windows 条目。我可以手动添加一个指向此 UEFI 分区和启动文件的条目,然后它会在启动时正常启动并奇怪地向 NVRAM 添加另一个条目,该条目以典型名称“Windows 启动管理器”或其他名称指向同一文件。我一直在尝试找到某种方法来添加此 NVRAM 条目,而无需手动进入戴尔设置,因为我正在对大量机器进行映像,这只会使过程复杂化。我最初尝试在映像完成后链式加载 grub 引导加载程序以检测 Windows 安装并启动它,理论上这会将条目添加到 NVRAM 本身并阻止我拥有两个条目或不得不自己与机器交互。我也找不到任何有关在 linux 端直接向 NVRAM 添加条目的信息,这与我通过戴尔设置实用程序完成的操作相同。有人对此有经验吗?我最初尝试在映像完成后链式加载 grub 引导加载程序以检测 Windows 安装并启动它,理论上这会将条目添加到 NVRAM 本身并阻止我拥有两个条目或不得不自己与机器交互。我也找不到任何有关在 linux 端直接向 NVRAM 添加条目的信息,这与我通过戴尔设置实用程序完成的操作相同。有人对此有经验吗?我最初尝试在映像完成后链式加载 grub 引导加载程序以检测 Windows 安装并启动它,理论上这会将条目添加到 NVRAM 本身并阻止我拥有两个条目或不得不自己与机器交互。我也找不到任何有关在 linux 端直接向 NVRAM 添加条目的信息,这与我通过戴尔设置实用程序完成的操作相同。有人对此有经验吗?无法找到有关在 linux 端直接向 NVRAM 添加条目的任何信息,这与我通过戴尔设置实用程序完成的操作相同。有人对此有经验吗?无法找到有关在 linux 端直接向 NVRAM 添加条目的任何信息,这与我通过戴尔设置实用程序完成的操作相同。有人对此有经验吗?

谢谢

0 投票
3 回答
11530 浏览

assembly - 使用 UEFI 编写操作系统

由于学校的原因,我最近没有太多编码,但我决定我想再次开始从事 OS 开发工作。然而,最近我听说 EFI 可以替代 BIOS。我想为使用 EFI 而不是 BIOS 的平台开发操作系统。我很难弄清楚从哪里开始。谁能指出我正确的方向?也许解释一下 EFI 对操作系统开发意味着什么,也许告诉我我可以使用哪些测试环境(最好是虚拟的)。坦率地说,我不太确定 EFI 到底是什么。我还应该花时间研究 ARM 组装吗?我知道 x86 Assembly,但我觉得它也已经过时了。我真的很迷茫,我很想听听你的意见。

谢谢

0 投票
1 回答
1417 浏览

storage - 当前的 EFI BIOS 是否原生支持 AHCI?

我对当前 EFI BIOS 中的 AHCI 支持有一个疑问...

在我们插入外部存储卡(例如PCie-SATA)并连接SATA驱动器之前,BIOS总是会调用该卡上的Option ROM进行一些初始化并在POST期间提供UI进行配置......然后我们可以选择它作为启动设备 !

我的问题是:(哪种情况是正确的?)

  • (案例1)当前的EFI BIOS原生支持这种外部卡的AHCI(这里的“原生”是指EFI BIOS不调用Option ROM并且可以完全配置这个卡本身然后启用AHCI功能......)
  • (案例 2)当前的 EFI BIOS 仅原生支持 Intel 或 AMD 的 AHCI 控制器
  • (case 3)当前的 EFI BIOS仍然调用 Option ROM (不管是内部控制器还是外部控制器) 来支持 AHCI 功能

问候,

0 投票
2 回答
4863 浏览

operating-system - 以 EFI 模式启动是否意味着我将无法访问 BIOS 中断?

我正在尝试开发一个简单的操作系统。我以前做过一些汇编程序,不得不用INT 10h它来在屏幕上显示字符。我了解 UEFI 支持旧版 BIOS,并且可能仍然可以使用INT 10h服务。但是,如果我选择构建纯 UEFI 可启动操作系统,我应该避免使用INT 10h? 还是我看事情的方式不对?

换句话说,深入printfstdout(屏幕)最终会调用 BIOSINT 10h吗?还是问题 - “SYS_WRITE函数调用是否基于 INT 10h?” 更合适?

我还需要创建一个 512 字节的引导扇区并将它们作为磁盘(或磁盘映像)上的第 0 个扇区吗?位置0x7c00还有意义吗?

0 投票
1 回答
971 浏览

testing - 如何在 UEFI shell 下的内存测试中检测 ECC 错误

我编写了一个 EFI 二进制文件来测试 UEFI shell 下的物理 DIMM,过程非常简单 - 首先将测试模式写入物理地址,然后将其读出并与原始模式进行比较。但是,DIMM 可能会遇到可纠正或不可纠正的错误。通常所有可纠正的 ECC 都会被硬件自动纠正,BIOS 会处理这个问题(记录这个错误并清理错误寄存器),不可纠正的错误通常会导致 BIOS 发出 NMI,然后系统挂起。

问题是我的测试程序不知道错误发生 - 可纠正的错误被 BIOS 固件掩盖,不可纠正的错误使系统挂起......

有什么方法可以让测试程序知道发生 ECC 错误吗?如果您有任何建议,我将不胜感激。谢谢!

0 投票
6 回答
6901 浏览

c# - How do I detect if WinPE(4) has booted from a UEFI or BIOS?

I am looking for a way to reliably detect when I boot into WinPE 4 (powershell) (or WinPE 3 (vbs) as an alternative), have I booted from a UEFI or BIOS System? (without running a third party exe as I am in a restricted environment)

This significantly changes how I would be partitioning a windows deployment as the partitions layout changes and format. (GPT vs. MBR, etc)

I have one working that is an adaptation of this C++ code in powershell v3 but it feels pretty hack-ish :

This seems pretty over the top just to get a simple flag.

Does anyone know if there is there a better way to get this done?

0 投票
2 回答
3471 浏览

efi - 操作系统旁边的 UEFI 运行时服务

我有在操作系统旁边运行一个小服务的想法,但我不确定这是否可能。我试图通过阅读一些文档来弄清楚,但没有走远,所以我的问题来了。

我阅读了有关 UEFI 运行时服务的信息。
是否有可能在固件中有一个小模块,它在所使用的操作系统旁边运行,并将有关设备位置的信息发送到互联网上的地址?

据我所知,一旦 UEFI 将控制权交给操作系统内核,就不可能在后台运行某些东西。

为了澄清我的意图,我想在我的笔记本电脑上有类似的东西。有 Prey 项目,但它安装在操作系统中。我正在使用没有自动登录的 Linux 发行版。如果有人会窃取它,他们可能只会安装 Windows。