无忧启动论坛

标题: 关于UEFI启动器的一个建议 [打印本页]

作者: blank007    时间: 2020-11-16 19:40
标题: 关于UEFI启动器的一个建议
本帖最后由 blank007 于 2020-11-16 19:54 编辑

       关于UEFI启动器,在各位大侠的指导下,初步掌握了几种启动器的使用。比如:XorbootU、Grub2等。

       通过学习,知道了微软自己的 bootmgfw.efi 优先调用相同目录下的BCD文件。如果相同目录下没有,则去 /efi/microsoft/boot下寻找BCD文件。
       利用这个特点,我把WePE 2.1 的 x86/x64合在一个优盘了。
       我建立的目录如下:(请看附件)
      
       启动时,用 XorBoot 或者 Grub2 直接调用  /Boot/WinX/x64/Bootmgfw.efi  或 /Boot/WinX/x86/Bootmgfw.efi  ,就可以启动 WePE 的相应版本了。

       说明:

                  Bootmgfw.efi 来自 Win10 安装盘,放在对应的 x64/x86 目录下。
                  WePE 的BCD 文件,如 B64、B32 改名后放入相应目录,用 BootICE 1.3.4 做相应修改,指向对应的 .sdi /.wim 文件。

       最后,说说自己的建议:
                UEFI启动器的开发者们,可否考虑一下,加入与微软类似的启动方式:
                优先调用启动器所在目录下的菜单、配置文件。如没有,再去设定的目录寻找,调用?


snap00005.jpg (7.98 KB, 下载次数: 262)

snap00005.jpg

作者: wintoflash    时间: 2020-11-16 20:00
本帖最后由 wintoflash 于 2020-11-16 20:03 编辑

grub2 调用哪里的菜单,是否调用菜单,都是用户自定义的。
知道了微软自己的 bootmgfw.efi 优先调用相同目录下的BCD文件。如果相同目录下没有,则去 /efi/microsoft/boot下寻找BCD文件。

bootmgfw.efi在光盘上就不支持这个,造成了一堆麻烦。
作者: blank007    时间: 2020-11-16 20:10
本帖最后由 blank007 于 2020-11-16 20:13 编辑
wintoflash 发表于 2020-11-16 20:00
grub2 调用哪里的菜单,是否调用菜单,都是用户自定义的。

bootmgfw.efi在光盘上就不支持这个,造成了一 ...

大侠不必纠结文字描述,那只是一个笼统的说法。

个人认为,微软的BCD文件就是一个菜单或者配置文件,bootmgfw.efi 优先调用相同目录下的BCD。如果没有,就去预设的地方去找。

据说,XorBoot 的早期版本就是作类似处理的。到了 0.25 版,就直接设定为 /efi/xorboot/xorboot.xor了


另外, Grub2中,调用 bootmgfw.efi 就一句: chainloader /Boot/WinX/x64/bootmgfw.efi
还有,我用的是比较新的win10安装盘中的文件,在优盘上用的多一些。我试过,光盘上是可以用这个办法的,工具: UltraISO最新版

作者: wintoflash    时间: 2020-11-16 20:33
blank007 发表于 2020-11-16 20:10
大侠不必纠结文字描述,那只是一个笼统的说法。

个人认为,微软的BCD文件就是一个菜单或者配置文件,b ...

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=403480
你说把bootmgfw.efi和bcd放光盘里面某个文件夹,用其他loader能启动并找到这个bcd?
作者: blank007    时间: 2020-11-16 20:40
wintoflash 发表于 2020-11-16 20:33
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=403480
你说把bootmgfw.efi和bcd放光盘里面某个文 ...

可以的。bootmgfw.efi 和 BCD 就在 /Boot/WinX/x64/ 下,且 /efi 下没有 microsoft 目录。

另外,我制作的是 BIOS/UEFI 双启动光盘,BIOS启动采用 Grub4DOS ,UEFI启动用 XorBoot 、Grub2 都可以。

附上 UltraISO 光盘参数:

snap00006.jpg (102.86 KB, 下载次数: 272)

snap00006.jpg

作者: wintoflash    时间: 2020-11-16 20:50
blank007 发表于 2020-11-16 20:40
可以的。bootmgfw.efi 和 BCD 就在 /Boot/WinX/x64/ 下,且 /efi 下没有 microsoft 目录。

另外,我制 ...

iso发上来看一下?
作者: maghreb    时间: 2020-11-16 21:01
试试看
作者: blank007    时间: 2020-11-16 21:07
wintoflash 发表于 2020-11-16 20:50
iso发上来看一下?

ftp://alotus.meibu.net/BootCD/
作者: blank007    时间: 2020-11-16 21:15
wintoflash 发表于 2020-11-16 20:50
iso发上来看一下?

大侠请在这里下载。要快哦,明天要上班。
ftp://alotus.meibu.net/BootCD/

我的服务器将在今日 23:55 关闭

作者: blank007    时间: 2020-11-16 21:18
wintoflash 发表于 2020-11-16 20:50
iso发上来看一下?

光盘设计的文件名与上面的帖子中的有所不同,但仔细检查过了,应该没有问题
作者: wintoflash    时间: 2020-11-16 21:31
本帖最后由 wintoflash 于 2020-11-16 21:32 编辑
blank007 发表于 2020-11-16 21:18
光盘设计的文件名与上面的帖子中的有所不同,但仔细检查过了,应该没有问题
Grub2 都可以

我看你用的是xorboot。。。xorboot有点迷。
你确定 grub2 也可以?
作者: hilsonma    时间: 2020-11-16 21:36
我还是喜欢grub2的方式,完全自定义。

而我习惯将相关的文件包括菜单都放在 /efi/grub 或者干脆打包成一个单一的引导文件。

wepe的引导使用grub2的ntboot,只需要bootmgfw.efi 和 wim文件就可以了。
一般我只使用64位的efi引导,毕竟32位的机子比较少见。
据说有些平板是32位的,要一个U盘同时能引导64/32位的话,我觉得增加32位的efi文件到 \efi\boot 之外再将相关的32位文件包括菜单都放到独立的文件夹中会更好,不强求用同一个配置文件在里面加上64/32位判断。
反正64位机子只会用64位引导,32位机子只会用32位引导。

所以我的部署会是这样子:
菜单和bootmgfw.efi都在 /efi/grub 中
wepe64.wim在根目录

如果添加32位支持,32位的菜单和bootmgfw.efi在 /efi/grub_32 中
添加wepe32.wim在根目录

如果添加legacy支持,legacy引导文件 grldr /g2ldr 可放到 /efi/grub
配置mbr使其引导到相应的文件
作者: blank007    时间: 2020-11-16 21:45
本帖最后由 blank007 于 2020-11-16 22:02 编辑
wintoflash 发表于 2020-11-16 21:31
我看你用的是xorboot。。。xorboot有点迷。
你确定 grub2 也可以?

晕。grub2下确实不能引导。
不过,对我来说这不算问题。因为我几乎不刻盘,我只用优盘、本地硬盘引导。

作者: 窄口牛    时间: 2020-11-16 21:47
无法告诉bcd,让它去找谁。
作者: blank007    时间: 2020-11-16 21:55
wintoflash 发表于 2020-11-16 21:31
我看你用的是xorboot。。。xorboot有点迷。
你确定 grub2 也可以?

光顾着测试 xorboot 、grub2 下引导 Acronis Backup 11.7 了,忽略了 bootmgfw.efi
作者: blank007    时间: 2020-11-16 21:59
本帖最后由 blank007 于 2020-11-16 22:00 编辑

补充:

这个光盘在BIOS引导下,可启动 WePE 2.1 x86 ,稍微知道grub4dos 的人,可在x64 机器上引导 x64 版本。

还有,bios下可以引导一个基于 win2003 的 PE。

理论上,这个光盘在 UEFI X64 、UEFI X86 下,可分别引导到对应版本的 WePE。
当然,这个WePE做过微小的改变。

在此,向原作者致歉、致敬!

作者: blank007    时间: 2020-11-16 22:04
本帖最后由 blank007 于 2020-11-16 22:06 编辑

继续补充:

实际上,grub2、xorbootu 都不能以 chainloader 方式引导acronis backup 各个版本

但是,grub4dos 、grub2 都可以 kernel+initrd 或 linux+initrd 方式引导 Acronis backup。

我最关心的不是光盘引导方式,而是“本地硬盘”和“优盘”方式

作者: blank007    时间: 2020-11-16 22:07
hilsonma 发表于 2020-11-16 21:36
我还是喜欢grub2的方式,完全自定义。

而我习惯将相关的文件包括菜单都放在 /efi/grub 或者干脆打包成一 ...

多谢您的指导。知道 bootmgfw.efi 优先调用相同目录下的BCD,还是看了您的帖子才知道的。
作者: blank007    时间: 2020-11-16 22:10
本帖最后由 blank007 于 2020-11-16 22:13 编辑
窄口牛 发表于 2020-11-16 21:47
无法告诉bcd,让它去找谁。

多谢您的指导。

看了您的帖子,才知道一个叫做 BMPlus 的软件,可以定制 Win7/8/10 的 bootmgr ,实现了 WePE x86/x64 在 BIOS 下 的合盘.
作者: wintoflash    时间: 2020-11-16 22:14
blank007 发表于 2020-11-16 22:04
继续补充:

实际上,grub2、xorbootu 都不能以 chainloader 方式引导acronis backup 各个版本

直接map iso应该就行。
作者: blank007    时间: 2020-11-16 22:16
wintoflash 发表于 2020-11-16 22:14
直接map iso应该就行。

您说得太对了。

我现在以  XorBoot 为主,制作 启动优盘,兼顾学习您的 Grub2 。

另外,对您的Grub2 最感兴趣的也是其中的 map 命令。
作者: blank007    时间: 2020-11-16 22:18
hilsonma 发表于 2020-11-16 21:36
我还是喜欢grub2的方式,完全自定义。

而我习惯将相关的文件包括菜单都放在 /efi/grub 或者干脆打包成一 ...

xorbootu 只需 .wim 文件就可以引导,这个我是知道的。

我最感兴趣的是 chainloader 或者 kernel+initrd 方式
作者: blank007    时间: 2020-11-16 22:19
wintoflash 发表于 2020-11-16 22:14
直接map iso应该就行。

我喜欢"拆了"的方式,尽量兼顾 grub4dos 方式
作者: hilsonma    时间: 2020-11-16 23:38
你那3个pe,我做的iso是这样子的:https://ws28.cn/f/4020359tfkc

用mkisofs 做的。不熟悉2003pe,所以这个pe照搬你的引导。

作者: blank007    时间: 2020-11-17 06:44
趁着等候班车的时间,对自己的制作初衷再作一个说明:

1、关键是考虑本地硬盘、优盘在主分区、ESP分区上的引导。光盘、网络等的引导暂不考虑。
2、我的 Phoenix.iso 光盘结构,是为了尽可能在本地硬盘、优盘上部署,兼顾光盘上的部署。
3、里面的 Win2003 PE是为了兼顾 老、旧 电脑。

   实际上,我现在基本不用光盘引导了。
作者: hilsonma    时间: 2020-11-17 07:42
blank007 发表于 2020-11-17 06:44
趁着等候班车的时间,对自己的制作初衷再作一个说明:

1、关键是考虑本地硬盘、优盘在主分区、ESP分区上 ...

我12楼说的就是硬盘和U盘的部署,直接使用wim镜像。
2003pe的引导稍为复杂,就打包成iso再在硬盘和U盘上使用这个iso.
作者: 叮叮咚咚    时间: 2020-11-17 09:28
我想知道,微软的efi文件,用什么工具查看,或者反编译
作者: blank007    时间: 2020-11-17 19:09
hilsonma 发表于 2020-11-17 07:42
我12楼说的就是硬盘和U盘的部署,直接使用wim镜像。
2003pe的引导稍为复杂,就打包成iso再在硬盘和U盘上 ...

兄台这种方式还是WinPE的单引导,我希望的是用Xorboot等工具实现对 WinPE 和 Acronis 的多引导
作者: blank007    时间: 2020-11-17 19:11
叮叮咚咚 发表于 2020-11-17 09:28
我想知道,微软的efi文件,用什么工具查看,或者反编译

efi文件暂时没有发现可修改的工具,但 bootmgr 文件有定制工具。

具体请在启动盘区查找 BMPlus 软件。我用的 bootmgr 就是用它定制的。
作者: blank007    时间: 2020-11-17 19:21
本帖最后由 blank007 于 2020-11-17 19:33 编辑

感谢各位大侠的指导。

我用 Grub4dos、XorbootU、grub2  2.04 /2.05 在本地硬盘、优盘上,均能实现目的:

XorbootU、grub2  2.04 /2.05  都可以用 chainloader 方式调用、引导 WinPE、Acronis的 .efi 。

但在光盘上,仅 xorbootu 可以调用、引导 WinPE 的 bootmgfw.efi,进入桌面。grub2 官方版甚至连菜单都不能进入。grub2 2.05 (wintoflash版) 可以进入菜单,但不能引导 bootmgfw.efi ,提示有未知错误。grub 2 2.05 可用 linux+initrd 方式启动 Acronis。


另外,我本人早就不用光盘启动方式了,只在本地硬盘、优盘上用 UEFI 启动器管理多个微系统。
作者: wintoflash    时间: 2020-11-17 19:33
叮叮咚咚 发表于 2020-11-17 09:28
我想知道,微软的efi文件,用什么工具查看,或者反编译

ida pro
作者: 叮叮咚咚    时间: 2020-11-18 14:27
wintoflash 发表于 2020-11-17 19:33
ida pro

这个好!!
作者: 窄口牛    时间: 2020-11-18 22:45
叮叮咚咚 发表于 2020-11-18 14:27
这个好!!

会用单位话改两个win7的acpi.sys




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3