wintoflash 发表于 2026-6-18 09:59:49

[0620] bootmgfw.efi bcd菜单启动efi程序 (例如grub)

本帖最后由 wintoflash 于 2026-6-20 14:11 编辑

本项目实现了 x64 UEFI 下 Windows Boot Manager (bootmgfw.efi) 通过 BCD 菜单启动 UEFI 应用程序 (如 GRUB) 的功能。



下载
   
   
   
    GitHub

源码
https://github.com/a1ive/efiloader GPLv3许可协议

测试方法

1. 将 efiloader.efi, shell.efi, add_menu.bat 解压到 ESP 分区根目录
2. 执行 add_menu.bat 批处理
3. 重启,在启动菜单中选择 "EFI LOADER"

添加到BCD菜单
可以自定义 GUID 和 efiloader.efi 的路径。注意必须启用 nointegritychecks。
set guid={14530529-6666-8888-abcd-12345678abcd}
bcdedit /create %guid% /d "EFI LOADER" /application bootapp
bcdedit /set %guid% device boot
bcdedit /set %guid% path \efiloader.efi
bcdedit /set %guid% nointegritychecks true
bcdedit /set {bootmgr} displayorder %guid% /addlast
自定义要启动的EFI文件路径 (默认为\shell.efi)
bcdedit /set %guid% loadoptions \EFI\okr.efi

光盘启动
光盘启动时,efiloader.efi 需要位于ISO内,要启动的EFI文件(如shell.efi)需要位于 El-Torito UEFI IMG 内。
结构如下所示:
\bootmgr.efi
\efiloader.efi
\boot\boot.sdi
\EFI\microsoft\boot\bcd
\shell.efi
\EFI\BOOT\BOOTX64.EFI

注意事项

1. shell.efi 为要启动的目标 UEFI 应用程序,可任意替换为自己需要启动的程序
2. 要启动的EFI应用程序必须位于 ESP 分区或ISO El-Torito UEFI IMG内
3. 不支持安全启动

wintoflash 发表于 2026-6-20 12:25:27

本帖最后由 wintoflash 于 2026-6-20 13:27 编辑

20260620更新
支持Win7 bootmgfw.efi (v1)
支持arm64/ia32 (未实机测试)

wintoflash 发表于 2026-6-18 10:00:58

本帖最后由 wintoflash 于 2026-6-18 15:23 编辑

技术说明
efiloader.efi 是一个 Windows Boot Application,由 Windows Boot Manager 启动,随后会从 Boot Manager 的应用程序上下文切换回 UEFI 固件上下文。
Windows 引导应用程序的启动执行上下文与普通 UEFI 应用程序不同。Boot Manager 已经切换到了自身的应用程序上下文,因此直接调用 BS , RT 或 ConOut 可能会死机。
本项目使用来自 BOOT_APPLICATION_PARAMETER_BLOCK 的固件描述符来恢复 x64 固件上下文:

[*]CR3
[*]GDTR
[*]IDTR
[*]LDTR
[*]CS
[*]DS、ES、FS、GS、SS


感谢
本项目参考了以下项目的工作

[*]https://github.com/imbushuo/boot-shim
[*]https://github.com/reactos/reactos
[*]https://github.com/Mattiwatti/EfiGuard

窄口牛 发表于 2026-6-18 10:15:11

厉害了Word哥。

2010laodu 发表于 2026-6-18 10:19:52

感谢分享

a66 发表于 2026-6-18 10:23:31

厉害,支持大佬

it323 发表于 2026-6-18 10:31:41

支持原创,谢谢!

azhong123456 发表于 2026-6-18 10:33:25

it323 发表于 2026-6-18 10:31
支持原创,谢谢!

可惜不支持安全启动

wintoflash 发表于 2026-6-18 10:41:38

azhong123456 发表于 2026-6-18 11:33
可惜不支持安全启动
要是随随便便就能启动未签名程序,那还要安全启动干什么?

ebaqiang 发表于 2026-6-18 10:46:05

非常优秀,支持原创

hlowld 发表于 2026-6-18 11:07:03

支持一个,具有开创性的原创

sn4735 发表于 2026-6-18 11:08:29

关注一下,考虑测试启动联想一键恢复。感谢作者开发作品

dayeye 发表于 2026-6-18 11:46:16

本帖最后由 dayeye 于 2026-6-22 22:36 编辑


再也不用跟“Windows Boot Manager”争第一启动项了。

promrhxq 发表于 2026-6-18 11:50:01

感谢分享好东东

进士小站 发表于 2026-6-18 12:27:23

看来在ESP分区启动带常用工具的PE更方便了{:1_195:}

忧心的启 发表于 2026-6-18 12:47:40

还得是创新啊,要不然一直固定思维也搞不出活啊。感谢。

guong 发表于 2026-6-18 12:50:49

支持创新分享

dayeye 发表于 2026-6-18 13:07:25

已测两台电脑,OK.
包括硬盘单NTFS分区的UEFI引导启动。
可见,只要主板支持,不局限于ESP分区。

wdtx 发表于 2026-6-18 14:48:13

本帖最后由 wdtx 于 2026-6-18 14:49 编辑

能否从bcd菜单启动grubfm文件管理器呢?

834772509 发表于 2026-6-18 14:59:09

支持创新

wintoflash 发表于 2026-6-18 15:36:54

wdtx 发表于 2026-6-18 15:48
能否从bcd菜单启动grubfm文件管理器呢?

帖子里就是啊

book11ba 发表于 2026-6-18 16:32:27

各大引导之间,终于可以随意套娃了

liwei_show 发表于 2026-6-18 18:07:56

感谢大佬分享新作品

yyz219195888 发表于 2026-6-18 18:42:14

下载一个,谢谢

2012andyle113 发表于 2026-6-18 19:04:00

这个脑洞开的不错,挺实用的

wdtx 发表于 2026-6-18 20:03:49

本帖最后由 wdtx 于 2026-6-19 07:50 编辑

安装试了,可以启动grub文件管理器

yanlq632 发表于 2026-6-18 20:09:06

感谢大佬分享新作品

yanlq632 发表于 2026-6-18 20:09:17

感谢大佬分享新作品

baby666 发表于 2026-6-18 20:17:16

牛逼啊老大

nianyueriPE 发表于 2026-6-18 22:18:02

nb

zyy 发表于 2026-6-18 23:42:07

学习学习{:1_193:}
页: [1] 2 3 4
查看完整版本: [0620] bootmgfw.efi bcd菜单启动efi程序 (例如grub)