Windows 8.1 UEFI x64无法启动UEFI映像


1

这个问题问这个后出现一个。看起来Win8.1 UEFI x64启动管理器无法启动除Windows本身以外的任何东西(winload.efi)。尝试从中启动任何其他UEFI映像(.efi)会给出错误代码0xC000007B,我很确定这不是因为文件丢失而是因为文件“无效”,因为我重命名该文件时错误更改为0xC000000F。我已经禁用了安全启动但没有任何运气。

目前我正在尝试集成rEFInd bootloader。我可以说它是UEFI映像正在工作,因为它能够使用固件从USB闪存驱动器启动。但是,使用Windows启动管理器会得到与上述相同的结果(错误代码0xC000007B)。目前我的BCD配置是(图片):

命令行截图http://imageshack.com/a/img811/7857/kbth.png

F:\rEfit\refind存储refind的目录一样,“refind_x64.efi”是程序映像。

注意:我也想知道只允许在UEFI Windows中启动的UEFI映像(.efi文件)以及非UEFI的格式(如ntldrbootmgr)是什么?

编辑:将rEFInd移动到标准目录(“EFI”)并没有解决问题。


我已将您的图像内嵌嵌入,但复制粘贴可以提高可读性。您可以cmd通过右键单击从窗口复制文本,然后选择标记,拖动要复制和按下的文本块Enter。然后,您可以将其粘贴到SU编辑器并应用格式(预格式化的块将很好用)。
gronostaj

Answers:


3

1年后,我又遇到了同样的问题。幸运的是这次我找到了解决方案。要在Windows Boot-Manager中添加加载非Windows UEFI映像的OsLoader,您需要手动编辑BCD注册表。在RegEdit中有一个名为“HKEY_LOCAL_MACHINE \ BCD00000000”的密钥 - 它从Windows EFI System-Partition加载并编辑它的子密钥直接编辑BSD文件。它下面有一个名为“描述”的键,但我们将专注于另一个名为“Objects”的键。在它下面你需要一个新的对象(或修改现有的)。然后在target-object-GUID-name下,你需要将“Description”Type值编辑为“0x10100003”(这意味着固件应用程序osloader - 此查找的信用点转到此页面)。就是这样 - 然后该对象的'path'和'device'元素指定一个UEFI文件,该文件将在选择OS-Loader时加载。

大警告:

不要做以上只是为了测试它 - 以这种方式加载Uefi将其烧录到Uefi Boot配置中并在加载后 - 您可能无法再次启动到Windows(除非您加载的应用程序未重置Uefi Boot Cfg) - 所以只有在你确定的情况下才能使用它。

我这样做然后我应该使用Uefi Boot Cfg手动修复我的Windows启动。哪个更适合使用。

编辑:我忘了添加你首先需要拥有编辑“HKEY_LOCAL_MACHINE \ BCD00000000”的权限,这很简单 - 只需点击它上面的属性并更改权限;)。

编辑:这个发现表明,编辑Windows BSD最强大(也很容易 - 至少对我而言)的方式是使用注册表。我这样做的行为 - 不可能使用BCDedit,BCD WMI完成。


设置0x10100003似乎也有BCD更新UEFI固件以及在启动菜单中添加新条目(符合我的规范)。但是,我仍然会遇到0xC000000D错误。我可以从UEFI固件选项启动。但是,Windows不喜欢gummibootx64.efi文件中的Fat32分区。我必须使用Windows 8.1的启动管理器,因为我的平板电脑上有触摸 - 开机时没有虚拟键盘!
Eric Duncan

这段代码0x10100003既不代表真正的osloader(0x10200003)也不代表真正的EFI对象,如启动管理器(0x10100002),对我而言,它似乎更像是一个bug。也就是说,它可能只是因为当前BootMgFw.EFI中的错误而出现在菜单中。此外,它似乎没有BootMgFw.efi代码链加载其他EFI应用程序:尽管扩展,winload.efimemdiag.efi不是EFI应用程序,然后是“启动应用程序”; 即使在测试签名时,他们也需要由Microsoft专门签名。
AntoineL 2015年

1

EFI是一个预启动环境。因此,EFI本身不是Windows工具,Linux工具或任何其他操作系统级工具。我想明确这一点,因为你的一些短语听起来好像你认为EFI是Windows的一部分。事实并非如此。

rEfit\refind对于EFI引导程序,该路径是不常见的。这些程序通常驻留在EFIESP上目录的子目录中,如EFI\refind或在EFI\Microsoft。虽然这样的非标准位置不太可能是您问题的根源,但我不能排除这种可能性。因此,使用更正常的位置是我的第一个建议。

我对bcdedit你所显示的Windows 命令的输出不是很熟悉,所以我不能评论它; 但是,我建议您查看从Windows安装的rEFInd安装说明。你完全有可能在输入其中一个命令时犯了错误。

如果这没有帮助,那么尝试从另一个操作系统安装rEFInd。据推测,你已经安装了rEFInd来启动Windows以及其他东西。对于大多数Linux用户而言,如果Windows工具不能正常工作,您应该可以从Linux安装rEFInd。


是的 - 将它移动到“EFI”文件夹并没有解决我的问题。但我不想将rEFInd用作主启动管理器 - 而是我想从它启动Windows XP并将其与Windows 8启动菜单链接。
Nemo759

还有其他建议吗?
Nemo759 2013年

没有人????为什么 - 我的意思是这很疯狂 - 您是否尝试过将UEFI Windows与其他操作系统一起使用?
Nemo759

虽然EFI模式Windows启动管理器理论上能够链式加载其他EFI启动加载器,但我还没有看到如何设置它的明确解释。因此,我唯一的建议是使用rEFInd作为主启动管理器。它是高度可配置的,所以如果你不喜欢它,你可以改变它。请略读rEFInd配置文件文档
罗德史密斯

对于记录,ESP分区(存储EFI二进制文件/引导程序)应该是FAT32,以便在Linux和Windows上“共享”。它们通常也通常在Windows中隐藏(您可以在磁盘管理中看到它)。最初的问题是作者尝试引导位于其ESP分区中的其他EFI固件 - 因为EFI允许在单个分区中使用多个引导过滤器。只需选择你想要的东西。我和作者一样,必须在8.1中使用Windows启动管理器。我的理由是它的平板电脑支持的触摸屏没有键盘!
Eric Duncan

0

所有efi启动管理器/加载器都需要在ESP分区上; 你不能在你的F:驱动器上重新启动,它可能被格式化为NTFS驱动器。EFI系统查看特定的分区分区,该分区标记为“ESP”并格式化为fat32。EFI系统没有其他文件系统的驱动程序。

refind包含ext2 / 4 reiserfs btrfs和iso9660的驱动程序,但正如您所见,您的Windows EFI加载程序位于\ EFI \ Microsoft \ Boot \ bootmgfw.efi。这个分区不能从windows中查看,因为它是隐藏的,但是如果你使用linux live(例如gparted)启动,那么你将能够看到它。然后你需要将refind放在\ EFI \ refind中,这样rEFInd加载器位于\ EFI \ refind \ bootx64.efi

然后你可以尝试从windows加载器链接到它,但是将你的系统指向refind的.efi文件作为默认加载器会好得多,因为这将扫描你的系统,并为你提供代表efi / legacy启动选项的图标。您。我使用refind,当我打开我的笔记本电脑时,我有一个Windows 7图标,一个Windows 8图标,一个ubuntu图标,一个fedora图标和一个ubuntustudio图标可供选择。如果我有可引导的usbs或dvds插入,它们也会出现一个图标。

它在默认设置下运行良好,但也可以轻松自定义。您将无法从fat32 ESP分区以外的任何分区加载efi引导加载程序,尽管一旦从ESP分区加载了refind,它就可以访问其他分区上的加载器efi和传统加载器。


1
您可能希望编辑以包含一些换行符和校对读取此内容。现在它是不可读的。
YLearn 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.