找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 344|回复: 18

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

  [复制链接]
发表于 5 小时前 | 显示全部楼层 |阅读模式
本帖最后由 wintoflash 于 2026-6-18 12:10 编辑

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

efiloader.gif

下载
    efiloader.zip (3.23 MB, 下载次数: 34)

测试方法

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

添加到BCD菜单
可以自定义 GUID 和 efiloader.efi 的路径。注意必须启用 nointegritychecks。
  1. set guid={14530529-6666-8888-abcd-12345678abcd}
  2. bcdedit /create %guid% /d "EFI LOADER" /application bootapp
  3. bcdedit /set %guid% device boot
  4. bcdedit /set %guid% path \efiloader.efi
  5. bcdedit /set %guid% nointegritychecks true
  6. bcdedit %bcd% /set {bootmgr} displayorder %guid% /addlast
复制代码


光盘启动
光盘启动时,efiloader.efi 需要位于ISO内,shell.efi需要位于 El-Torito UEFI IMG 内。
结构如下所示:
  1. [ISO]\bootmgr.efi
  2. [ISO]\efiloader.efi
  3. [ISO]\boot\boot.sdi
  4. [ISO]\EFI\microsoft\boot\bcd
  5. [IMG]\shell.efi
  6. [IMG]\EFI\BOOT\BOOTX64.EFI
复制代码


注意事项

1. 本项目处于实验阶段,请尽量选择高版本 bootmgfw.efi 进行测试
2. shell.efi 为要启动的目标 UEFI 应用程序,可任意替换为自己需要启动的程序
3. shell.efi 必须位于 ESP 分区根目录,暂不支持其他分区/路径/文件名
4. 不支持安全启动
5. 不支持网络启动

评分

参与人数 5无忧币 +30 收起 理由
dayeye + 5 赞一个!
cuicongyuan + 5 赞一个!
nytc006 + 5 很给力!
江南一根葱 + 10 打破微软封闭垄断、争取引导自主权,离不开 ...
ksafei + 5 很给力!

查看全部评分

 楼主| 发表于 5 小时前 | 显示全部楼层
本帖最后由 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
回复

使用道具 举报

发表于 4 小时前 来自手机 | 显示全部楼层
厉害了Word哥。
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层
厉害,支持大佬
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层
支持原创,谢谢!

点评

可惜不支持安全启动  详情 回复 发表于 4 小时前
回复

使用道具 举报

发表于 4 小时前 来自手机 | 显示全部楼层
it323 发表于 2026-6-18 10:31
支持原创,谢谢!

可惜不支持安全启动

点评

做梦  详情 回复 发表于 4 小时前
回复

使用道具 举报

 楼主| 发表于 4 小时前 | 显示全部楼层
azhong123456 发表于 2026-6-18 11:33
可惜不支持安全启动

要是随随便便就能启动未签名程序,那还要安全启动干什么?
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层
非常优秀,支持原创
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
支持一个,具有开创性的原创
回复

使用道具 举报

发表于 3 小时前 来自手机 | 显示全部楼层
关注一下,考虑测试启动联想一键恢复。感谢作者开发作品
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
本帖最后由 dayeye 于 2026-6-18 11:49 编辑

这是给微软的底裤上开了个洞。
再也不用跟“Windows Boot Manager”争第一启动项了。
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
感谢分享好东东
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层
看来在ESP分区启动带常用工具的PE更方便了
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层
还得是创新啊,要不然一直固定思维也搞不出活啊。感谢。
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层
支持创新分享
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层
已测两台电脑,OK.
包括硬盘单NTFS分区的UEFI引导启动。
可见,只要主板支持,不局限于ESP分区。
回复

使用道具 举报

发表于 13 分钟前 | 显示全部楼层
本帖最后由 wdtx 于 2026-6-18 14:49 编辑

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

使用道具 举报

发表于 2 分钟前 | 显示全部楼层
支持创新
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-6-18 15:01

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表