无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 62128|回复: 114

UEFI启动grub2引导win PE_2017.7.9—含自动判断 IA32/X64,选择显示 BCD 菜单模板

    [复制链接]
发表于 2017-2-18 20:02:29 | 显示全部楼层 |阅读模式
本帖最后由 comzhongwy 于 2017-7-9 00:07 编辑

这是较早的帖子
http://nonameteam.cc/thread-1914-1-1.html

目录
一、bootmgfw.efi 文件加载流程

二、Grub2 --> bootmgfw.efi 文件加载流程

三、U盘 UEFI 启动,x86 与 x64 PE 独立菜单模板


==========================================
一、bootmgfw.efi 文件加载流程

        UEFI启动时,若以Windows Boot Manager为默认
引导,文件加载流程如下图所示,其中:
\EFI\boot\bootx64.efi 由 \EFI\microsoft\boot\bootmgfw.efi 改文件名而来\EFI\boot\zh-CN\bootx64.efi.mui 由 \EFI\microsoft\boot\zh-CN\bootmgfw.efi.mui  改文件名而来

er.png


         也就是说,Windows Boot Manager引导如果是UEFI默认启动的 \EFI\boot\bootx64.efi ,则会加载 \EFI\microsoft\boot\BCD 菜单配置。

=================================================
二、Grub2 --> bootmgfw.efi 文件加载流程


          UEFI启动时,若以Grub2为默认引导,再去引导Windows Boot Manager引导的 的bootmgfw.efi ,则会加载与 bootmgfw.efi 同目录的 BCD 菜单配置,而这个msboot文件夹的名字可以随意改成别的,也可以将这个msboot文件夹复制多份,每一份BCD 菜单配置中只保留一个PE启动项,来达到在Grub2中一次选择启动不同的PE的效果

         图中有些文件还可以精简,比如不需要显示 BCD 菜单的话,连字体文件和语言文件都可以不要,最少只需保留 bootmgfw.efi 和BCD文件,对了,启动wim镜像需要boot.sdi文件。
ere.png

        若有安装了多个Windows系统而用grub2作为默认引导的也可以用此法。

===========================================
三、U盘/硬盘 UEFI 启动,x86 与 x64 PE 独立菜单模板

      自动判断 IA32/X64,选择显示 BCD 菜单。

     存在问题:不能用于光盘镜像,光盘镜像中,grub2 无法启动 bootmgrfw.efi 原因不明。暂没有试验其它引导替换grub2 。

EFI_grub2_to_bootmgrfw.efi_v0.1_ia32_x64.part01.rar (1 MB, 下载次数: 1487)

点评

亲测用 XORBOOT 直接启动WIM最好了  发表于 2017-12-24 03:59

评分

参与人数 14无忧币 +53 收起 理由
hdmhome + 1 很给力!
wuxin9712 + 5
cxm123 + 1 赞一个!
anarki2001 + 3
lawhero + 1 赞一个!
joke03 + 5 赞一个!
zmac2007 + 5
糊涂 + 5
2012iget + 2 很给力!
wsgdmzr + 5 赞一个!
lbw2007 + 5 很给力!
oldking + 5 很给力!
syrea + 5 很给力!
freesoft00 + 5

查看全部评分

发表于 2017-2-19 07:53:32 | 显示全部楼层
清晰明了,谢谢楼主的分享
回复

使用道具 举报

发表于 2017-2-19 09:05:34 | 显示全部楼层
楼主研究一下wimboot吧,支持uefi下直接启动wim镜像。
http://ipxe.org/wimboot
回复

使用道具 举报

发表于 2017-2-20 08:52:34 | 显示全部楼层
请问大神,光盘下的GRUB2能这样处理吗?我试着这样处理却无论如何都启动不了,不知我错在那里了。

点评

rgy
你的GRUB2三启PE合盘里不就用光盘下的GRUB2启动了PE吗? 过程: uefiboot->gurb2.efi->efi shell.efi->cdboot.efi->bootmgr.efi->BCD 我自己试了 uefiboot->gurb2.efi->efi shell.efi->bootmgfw.efi ->BCD 似乎  详情 回复 发表于 2017-3-1 20:55
光盘没研究,我一直都用的U盘  详情 回复 发表于 2017-3-1 17:43
你也许需要这个 制作BIOS+UEFI启动ISO镜像 阿弥陀佛PE工具箱V2.0 http://www.upantool.com/iso/2014/5173.html  详情 回复 发表于 2017-2-21 01:36
回复

使用道具 举报

发表于 2017-2-20 09:09:59 | 显示全部楼层
学习了,谢谢分享
回复

使用道具 举报

发表于 2017-2-20 20:08:06 来自手机 | 显示全部楼层
wsgdmzr 发表于 2017-2-20 08:52
请问大神,光盘下的GRUB2能这样处理吗?我试着这样处理却无论如何都启动不了,不知我错在那里了。

需要往光盘ISO添加EFI轨道,因为EFI默认只能识别FAT文件系统,而光盘是UDF
回复

使用道具 举报

 楼主| 发表于 2017-2-21 01:36:58 | 显示全部楼层
wsgdmzr 发表于 2017-2-20 08:52
请问大神,光盘下的GRUB2能这样处理吗?我试着这样处理却无论如何都启动不了,不知我错在那里了。

你也许需要这个

制作BIOS+UEFI启动ISO镜像 阿弥陀佛PE工具箱V2.0
http://www.upantool.com/iso/2014/5173.html

点评

谢谢大神,GRUB2光盘启动的话你的方法不适合。  详情 回复 发表于 2017-3-1 20:08
回复

使用道具 举报

发表于 2017-3-1 01:28:18 | 显示全部楼层
值得学习学习谢谢你的分享
回复

使用道具 举报

发表于 2017-3-1 20:08:26 | 显示全部楼层
comzhongwy 发表于 2017-2-21 01:36
你也许需要这个

制作BIOS+UEFI启动ISO镜像 阿弥陀佛PE工具箱V2.0

谢谢大神,GRUB2光盘启动的话你的方法不适合。

点评

我一直都用U盘,没搞过光盘的。  发表于 2017-3-1 21:05
回复

使用道具 举报

发表于 2017-3-1 20:55:26 | 显示全部楼层
wsgdmzr 发表于 2017-2-20 08:52
请问大神,光盘下的GRUB2能这样处理吗?我试着这样处理却无论如何都启动不了,不知我错在那里了。

你的GRUB2三启PE合盘里不就用光盘下的GRUB2启动了PE吗?
过程:
uefiboot->gurb2.efi->efi shell.efi->cdboot.efi->bootmgr.efi->BCD
我自己试了
uefiboot->gurb2.efi->efi shell.efi->bootmgfw.efi ->BCD
似乎也行

点评

目前仅 U盘/硬盘 方式可用,光盘未知原因不支持  发表于 2017-7-8 14:00
是的,直接启动不了,所以我第二个合盘用了refind,这个才是真正的跨系统引导和加载。  详情 回复 发表于 2017-3-1 21:20
必须要用efi shell中转一下吗?  详情 回复 发表于 2017-3-1 21:05
回复

使用道具 举报

发表于 2017-3-1 21:05:54 | 显示全部楼层
rgy 发表于 2017-3-1 20:55
你的GRUB2三启PE合盘里不就用光盘下的GRUB2启动了PE吗?
过程:
uefiboot->gurb2.efi->efi shell.efi-> ...

必须要用efi shell中转一下吗?

点评

rgy
W大可以研究下啊,我用gurb2去chainloader 光盘启动文件efisys.bin内根目录下的cdboot.efi说找不到文件,chainloader 光盘内\EFI\microsoft\boot\bootmgfw.efi文件后直接是没反应,小白一个,没招了.  详情 回复 发表于 2017-3-1 21:45
W大,目前好像还没找到更直接的方法,中间必须隔着shell才行。  详情 回复 发表于 2017-3-1 21:18
回复

使用道具 举报

发表于 2017-3-1 21:18:30 | 显示全部楼层
wintoflash 发表于 2017-3-1 21:05
必须要用efi shell中转一下吗?

W大,目前好像还没找到更直接的方法,中间必须隔着shell才行。
回复

使用道具 举报

发表于 2017-3-1 21:20:42 | 显示全部楼层
rgy 发表于 2017-3-1 20:55
你的GRUB2三启PE合盘里不就用光盘下的GRUB2启动了PE吗?
过程:
uefiboot->gurb2.efi->efi shell.efi-> ...

是的,直接启动不了,所以我第二个合盘用了refind,这个才是真正的跨系统引导和加载。

点评

恩,grub2启动本地硬盘上的Windows是可以的,启动光盘上的PE好像就找不到BCD文件。 refind就是efi shell套了个壳,chainloading efi文件是没有任何问题的,启动Linux内核就欠缺一些,只能加载efi stub的内核。grub  详情 回复 发表于 2017-3-1 21:39
回复

使用道具 举报

发表于 2017-3-1 21:39:35 | 显示全部楼层
wsgdmzr 发表于 2017-3-1 21:20
是的,直接启动不了,所以我第二个合盘用了refind,这个才是真正的跨系统引导和加载。

恩,grub2启动本地硬盘上的Windows是可以的,启动光盘上的PE好像就找不到BCD文件。
refind就是efi shell套了个壳,chainloading efi文件是没有任何问题的,启动Linux内核就欠缺一些,只能加载efi stub的内核。grub与它相反,启动Linux完全没问题,但是chainloading efi文件功能是自己实现的,bug特多。

点评

所以我现在做的光盘合盘放了两套.efi,一个是Windows的EFI,一个是GRUB2的EFI,Windows的EFI加载BCD来启动PE,GRUB2的EFI专门启动LINUX,因为GRUB2启动PE在某些主板上还是会花屏。不知我的想法会不会多余。  详情 回复 发表于 2017-3-2 08:31
回复

使用道具 举报

发表于 2017-3-1 21:45:26 | 显示全部楼层
本帖最后由 rgy 于 2017-3-1 21:49 编辑
wintoflash 发表于 2017-3-1 21:05
必须要用efi shell中转一下吗?


W大可以研究下啊,我用gurb2去chainloader  光盘启动文件efisys.bin内根目录下的cdboot.efi文件gurb2说找不到文件,chainloader 光盘内\EFI\microsoft\boot\bootmgfw.efi文件后直接是没反应,小白一个,没招了.

点评

光盘是在grub里面用loopback挂载的吗?  详情 回复 发表于 2017-3-1 22:21
回复

使用道具 举报

发表于 2017-3-1 22:21:29 | 显示全部楼层
rgy 发表于 2017-3-1 21:45
W大可以研究下啊,我用gurb2去chainloader  光盘启动文件efisys.bin内根目录下的cdboot.efi文件gurb2说 ...

光盘是在grub里面用loopback挂载的吗?

点评

rgy
没有用loopback挂载,都是在一个ISO文件里的。  详情 回复 发表于 2017-3-2 10:05
回复

使用道具 举报

发表于 2017-3-2 00:02:21 | 显示全部楼层
看贴是一种态度,回帖是一种美德。

点评

支持这种美德。  发表于 2017-3-2 08:16
回复

使用道具 举报

发表于 2017-3-2 08:31:05 | 显示全部楼层
本帖最后由 wsgdmzr 于 2017-3-2 08:36 编辑
wintoflash 发表于 2017-3-1 21:39
恩,grub2启动本地硬盘上的Windows是可以的,启动光盘上的PE好像就找不到BCD文件。
refind就是efi shell ...


所以我现在做的光盘合盘放了两套.efi,一个是Windows的EFI,一个是GRUB2的EFI,Windows的EFI加载BCD来启动PE,
GRUB2的EFI专门启动LINUX,因为GRUB2启动PE在某些主板上还是会花屏。不知我的想法会不会多余。

7.jpg

W大,有什么建议指点下,谢谢。

点评

会花屏,我的电脑就会,也不是每次  详情 回复 发表于 2017-4-16 20:36
grub2启动pe花屏的话,试试set gfxpayload=keep;export gfxpyload  详情 回复 发表于 2017-3-2 08:41
回复

使用道具 举报

发表于 2017-3-2 08:41:32 | 显示全部楼层
本帖最后由 wintoflash 于 2017-3-2 08:43 编辑
wsgdmzr 发表于 2017-3-2 08:31
所以我现在做的光盘合盘放了两套.efi,一个是Windows的EFI,一个是GRUB2的EFI,Windows的EFI加载BCD来启动 ...


grub2启动pe花屏的话,试试set gfxpayload=keep;export gfxpyload
用grub2->refind->windows的话会不会花屏?

点评

谢谢W大,我去试试。  详情 回复 发表于 2017-3-2 08:45
回复

使用道具 举报

发表于 2017-3-2 08:45:12 | 显示全部楼层
wintoflash 发表于 2017-3-2 08:41
grub2启动pe花屏的话,试试set gfxpayload=keep;export gfxpyload
用grub2->refind->windows的话会不 ...

谢谢W大,我去试试。
回复

使用道具 举报

发表于 2017-3-2 08:47:18 来自手机 | 显示全部楼层
efi下不花屏吧,我遇到都是legacy下花屏。

点评

不应该花屏,是你什么地方有问题吧  详情 回复 发表于 2017-3-3 09:41
legacy下还是别用grub 2了,不如grub4dos  详情 回复 发表于 2017-3-2 08:48
回复

使用道具 举报

发表于 2017-3-2 08:48:56 | 显示全部楼层
窄口牛 发表于 2017-3-2 08:47
efi下不花屏吧,我遇到都是legacy下花屏。

legacy下还是别用grub 2了,不如grub4dos
回复

使用道具 举报

发表于 2017-3-2 08:54:03 来自手机 | 显示全部楼层
g4d不熟悉,不想研究多一个。portues更新了啥?
回复

使用道具 举报

发表于 2017-3-2 10:05:43 | 显示全部楼层
wintoflash 发表于 2017-3-1 22:21
光盘是在grub里面用loopback挂载的吗?

没有用loopback挂载,都是在一个ISO文件里的。
回复

使用道具 举报

 楼主| 发表于 2017-3-3 09:41:15 | 显示全部楼层
窄口牛 发表于 2017-3-2 08:47
efi下不花屏吧,我遇到都是legacy下花屏。

不应该花屏,是你什么地方有问题吧
回复

使用道具 举报

发表于 2017-3-3 11:55:45 来自手机 | 显示全部楼层
打包成混合光盘ISO,把bcd放到img里面。
回复

使用道具 举报

发表于 2017-3-3 18:41:16 | 显示全部楼层
看贴是一种态度,回帖是一种美德。
回复

使用道具 举报

发表于 2017-4-16 20:36:39 | 显示全部楼层
wsgdmzr 发表于 2017-3-2 08:31
所以我现在做的光盘合盘放了两套.efi,一个是Windows的EFI,一个是GRUB2的EFI,Windows的EFI加载BCD来启动 ...

会花屏,我的电脑就会,也不是每次

点评

如果花屏,试一试set gfxpayload=keep  详情 回复 发表于 2017-4-16 20:42
回复

使用道具 举报

发表于 2017-4-16 20:42:22 | 显示全部楼层
leexuben 发表于 2017-4-16 20:36
会花屏,我的电脑就会,也不是每次

如果花屏,试一试set gfxpayload=keep

点评

好的,谢谢  详情 回复 发表于 2017-4-17 09:33
回复

使用道具 举报

发表于 2017-4-16 21:30:53 来自手机 | 显示全部楼层
不知为什么用硬盘的EFI GRUB2 chainloader bootmgfw.efi就没问题,用Ubuntu安装盘的GRUB2启动bootmgfw.efi会报错?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-16 22:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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