无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: hilsonma
打印 上一主题 下一主题

[分享] UEFI启动文件bootx64.efi的定制

    [复制链接]
跳转到指定楼层
1#
发表于 2019-3-20 22:21:41 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hilsonma 于 2019-7-21 05:36 编辑

现在UEFI平台的启动,一般都是UEFI引导第一个FAT分区或FAT32分区的 \efi\boot\bootx64.efi ,再由bootx64.efi 启动操作系统。
要想启动多系统,比如要启动PE,其中一个办法就是定制bootx64.efi 。

下面分享一个定制bootx64.efi 的方法。

首先,到Pauly的贴子 【XORBOOT Uefi: 多系统引导程序】 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=157812 下载XorBootUx64

下载解压后运行XorBootUx64

点击 UEFI启动序列管理
再点击 导出XorBoot.efi
选择 BootX64.efi
在弹出的另存为 窗口中选择一个文件夹,点击保存,这个文件夹中就会生成一个 bootx64.efi
接下来的提示 “要添加到...吗?” 点是,点确定,勾选 下一次启动该项目,点 保存当前启动项设置
关闭 UEFI启动序列 窗口

点击 新建菜单 ,会弹出 XORBOOT菜单编辑 窗口,并自动生成一个菜单供预览

点击 保存,将菜单文件命名为xorboot.xor 并保存到上面生成的bootx64.efi 所在的分区,文件夹为 \efi\xorboot\
关闭 XORBOOT菜单编辑 窗口

点击 打开菜单,找到刚才保存的xorboot菜单,点击其中某个菜单项,就可以定义你想要的启动,也可以添加/删除/移动 菜单项。在全局设置里可以设置菜单停留的时间。


菜单修改好之后,重启,如果出现你编辑过的xorboot菜单,就OK了。

如果没有出现xorboot菜单,可能你的主板不支持从你存放xorboot.xor的分区启动,检查这个分区是不是FAT分区,不是的话用diskgenius检查你的硬盘有没有FAT分区,没有就在硬盘后面新建一个,要求是主分区,并且将分区参数改为EF,然后将启动文件 bootx64.efi 放到这个分区的 \efi\boot\ ,将菜单文件 xorboot.xor 放到这个分区的 \efi\xorboot\ ,重新启动后就会出现xorboot菜单。


注意,如果开启了安全启动(secureboot)的话要关掉,因为这个bootx64.efi是不能过安全启动的。


=============
过安全启动的定制
=============

方法来自 wintoflash 的贴子:安全启动环境下启动任意未签名EFI的方法 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=413396

xorboot启动文件 \efi\boot\bootx64.efi 改名为 grubfmx64.efi
将附件解压得到的4个文件放到 \efi\boot\
secureboot.7z (528.04 KB, 下载次数: 593)

重新启动后首先会进入 Shim 验证失败的界面
按任意键进入导入证书的界面
选择 Enroll key from disk
找到 GRUBFM.cer
选择 Continue
选择 Yes
在之后的菜单中选择 Reboot ,重启计算机。
注意:压缩文件里面的 EFI 文件不可改名,不可以放到其他文件夹下,不可修改内容,否则无效。GRUBFM.cer 为证书文件,可以改名,不可修改内容。

导入证书后会保存在nvram中,只要不清nvram,以后启动不再出现验证失败画面,直接过安全启动。

注意现在 \efi\boot\bootx64.efi 不再是xorboot生成的启动文件,而是Shim的主程序,xorboot生成的启动文件已更名为grubfmx64.efi (Shim+mok启动方案必须是这个名字才能引导成功)。

除了使用xorboot定制外,还可以使用grub2, refind等工具,使用grub2定制请参考http://bbs.wuyou.net/forum.php?mod=viewthread&tid=413597

评分

参与人数 9无忧币 +34 收起 理由
蓝星明月 + 5 赞一个!
xuhe455143400 + 1 很给力!
narrator + 1 很给力!
菩提树下 + 2
2011yaya2007777 + 5 赞一个!
wjzj + 5 赞一个!
ferdfg + 5 很给力!
ahxx + 5 很给力!
有阴也有阳 + 5 支持安全启动——不错!

查看全部评分

2#
 楼主| 发表于 2019-3-20 23:24:49 | 显示全部楼层
本帖最后由 hilsonma 于 2019-3-20 23:29 编辑
995070995 发表于 2019-3-20 22:54
UEFI引导的系统启动pe一直没有成功,而且搞得系统也启动不了,这一次在试试,成功了就不用优盘了。


用xorboot引导的PE必须是支持uefi引导的镜像文件, wim文件必须放在主分区,最好是esp分区,也可以是系统分区(如c盘),但wim文件放在逻辑分区的话xorboot启动wim会失败。iso文件放哪个分区都可以。

支持uefi引导的iso文件肯定会有 \efi\boot\bootx64.efi
支持uefi引导的wim文件肯定会有 \Windows\System32\Boot\winload.efi
回复

使用道具 举报

3#
 楼主| 发表于 2019-3-20 23:47:07 | 显示全部楼层
2010sya 发表于 2019-3-20 23:11
谢谢分享,好好学一下。。。

uefi、安全启动用了也有几年了,绕来绕去都绕糊涂了,也不知道到底哪安全了 ...

安全启动只是一个名称,制定者这样叫我们就跟着这样叫,其实我只当它是认证启动或证书启动。
回复

使用道具 举报

4#
 楼主| 发表于 2019-3-21 08:25:56 | 显示全部楼层
本帖最后由 hilsonma 于 2019-3-21 08:28 编辑
995070995 发表于 2019-3-21 07:54
安装方法操作还是不成功,这一次系统能够正常启动,不过有了怎么样还是怎么样,没有启动的等待界面,不知 ...


首先你要确认esp分区的 \efi\boot\bootx64.efi 改动成功了没有,这点从文件日期可以看出来,还有文件大小xorboot的启动文件bootx64.efi应该是1715KB
如果 \efi\boot\bootx64.efi 确定已经是xorboot的启动文件, 没有启动的等待界面,可能是菜单停留时间太短,在 xorboot菜单编辑-全局设置-超时时间 里设置5秒以上。如果为了不影响开机速度而设置为1秒的话,要选择菜单项必须在开机的时候不停的按上下箭头键。
回复

使用道具 举报

5#
 楼主| 发表于 2019-3-21 08:44:25 | 显示全部楼层
995070995 发表于 2019-3-21 08:33
我看大小也对啊,帮忙看看!

这个esp启动文件已经是xorboot定制的了,如果确实是这个硬盘uefi启动的话就已经是xorboot启动了,你检查一下xorboot菜单,或者你可以将xorboot.xor发上来给我看看。
回复

使用道具 举报

6#
 楼主| 发表于 2019-3-21 08:51:03 | 显示全部楼层
995070995 发表于 2019-3-21 08:37
还有怎么知道电脑开启了安全启动了?如果开启了,我这样的操作也没有用对吧?

电脑是否开启了安全启动要看uefi设置,其中有一项是Secure boot 的, 看是开启还是关闭。
你的电脑应该是没有开安全启动的,如果开了又确定是这个硬盘开机的话. xorboot的启动文件bootx64.efi 是过不了安全启动的。
回复

使用道具 举报

7#
 楼主| 发表于 2019-3-21 09:22:36 | 显示全部楼层
995070995 发表于 2019-3-21 08:53
麻烦你改一下后缀名

你的菜单项都没有设置好,按你的系统重新设置一下。

还有就是没设置好也成功启动了肯定是没有用这个bootx64.efi 启动,你的双系统启动文件你没有找到,先看看你的电脑是怎么启动双系统的吧
回复

使用道具 举报

8#
 楼主| 发表于 2019-3-21 09:28:35 | 显示全部楼层
本帖最后由 hilsonma 于 2019-3-21 09:37 编辑
995070995 发表于 2019-3-21 09:21
默认设置,或者怎么设置都没有用,感觉还是哪里不对啊!

Window NT 6+ 文件位于指定磁盘的指定分区上 这个是对的

但你现在电脑的启动文件不是 (esp)\efi\boot\bootx64.efi
你再仔细看看

你也可以先把菜单设置好,比如第一个菜单项是windows 第二个菜单项是 ...

设置正确了,再用 xorboot 的 UEFI启动序列管理 ,在里面找到 启动文件是\EFI\BOOT\BOOTX64.EFI 那一项,把它移到第一位。

回复

使用道具 举报

9#
 楼主| 发表于 2019-3-21 09:42:02 | 显示全部楼层
本帖最后由 hilsonma 于 2019-3-21 09:49 编辑
995070995 发表于 2019-3-21 09:36
第一个菜单项是windows(就是BOOTCAMP)我是苹果笔记本
mac系统硬盘是隐藏的


1.BOOTCAMP  windows 的菜单项设置中,Window NT 6+ 文件位于指定磁盘的指定分区上 是对的,EFI应用程序 是不对的

2. Efi Shell x64 可以设置为你的第二个系统,你的电脑不是双系统吗,如果想留着 Efi Shell x64 那你可以添加一个菜单项
回复

使用道具 举报

10#
 楼主| 发表于 2019-6-7 09:20:57 | 显示全部楼层
本帖最后由 hilsonma 于 2019-6-7 09:41 编辑
vm669 发表于 2019-6-6 22:17
菜单文件跟EFI文件是什么关系?
导出的EFI是不是跟本机的什么设置有关


efi文件负责启动,菜单文件负责设置菜单项
没有efi文件无法进行efi启动,没有菜单文件efi启动会提示找不到文件启动无法继续。

xorboot的启动文件bootx64.efi 是由工具xorbootUx64生成的,或者复制之前生成的,这样才能配合xorboot菜单文件展示启动菜单完成启动.

efi启动文件bootx64.efi是个通用名(形式名),是什么工具产生的就要与同一工具的菜单文件配合使用
如微软的bootx64.efi (原名应是bootmgfw.efi)菜单文件是bcd
xorboot的bootx64.efi其菜单文件是xorboot.xor
grub2的bootx64.efi其菜单文件是grub.cfg
refind的bootx64.efi其菜单文件是refind.conf
等等

各类菜单既可作为主菜单也可作为二级菜单,都可以设置显示多少秒然后进入默认项,也可以设置不显示菜单直接进默认项(后面这种情况就看不到菜单但事实是存在的)。
你觉得哪种菜单更适合自己就选用哪种菜单作主菜单.
我现在使用grub2作为主菜单。

我所说的启动定制其实就是菜单的选用与设置,要启动多系统(PE也是一个系统)就要懂得至少一种菜单的运用。
回复

使用道具 举报

11#
 楼主| 发表于 2019-6-20 09:09:21 | 显示全部楼层
txh0714 发表于 2019-6-19 20:21
大师,学习用xorboot做多系统引导菜单有几天了,mbr磁盘下比较容易,但是如果是在gpt磁盘下装的双系统, ...

我没有试过双硬盘的例子,你可以试一下。
按理来说应该可以的,因为U盘启动可以引导硬盘系统,那么一个硬盘启动也应可以引导另一个硬盘的系统,一试便知。
xorboot菜单设置时有一个 启动时隐藏指定分区... 功能,应该可以达成你的要求。
回复

使用道具 举报

12#
 楼主| 发表于 2019-10-6 20:28:35 | 显示全部楼层

也有可能是测试器的原因。
我找了个iso文件试了一下,Qemu启动测试器里卡住了,但实机运行却没有问题。
当然,64位架构的实机,efi平台下只能运行64位的引导程序,启动64位的pe镜像。你说的EFI_x86是只能在32位架构的机子上启动。

要测试某项xorboot菜单,可将此临时菜单存到任意一个分区,文件路径必须为 \efi\xorboot\xorboot.xor
然后引导此分区下任意文件夹中的xorbootx64.efi
也就是说,xorboot的引导程序和菜单文件必须在同一分区,菜单文件路径固定为\efi\xorboot\xorboot.xor
(32位平台下是 \efi\xorboot\xorboot32.xor)

0.23和0.24版本是优先使用同文件夹的菜单文件的,现在0.25版作者没有说明,我的使用经验是固定使用\efi\xorboot下的菜单文件。
回复

使用道具 举报

13#
 楼主| 发表于 2019-10-7 06:08:46 | 显示全部楼层
本帖最后由 hilsonma 于 2019-10-7 06:10 编辑

谢谢wintoflash解惑,我还没有用过ultraiso制作iso,我都是用oscdimg制作iso的,支持uefi和bios.
回复

使用道具 举报

14#
 楼主| 发表于 2019-10-14 11:26:15 | 显示全部楼层
vm669 发表于 2019-10-13 18:46
努力学习
好像efi可以修改cfg的存放路径

efi 可以修改cfg的存放路径,那是grub2的efi。grub2可以自定义编译,所以可以修改。

xorboot只是提供一个生成efi的菜单,没有参数选项,所以不可以修改.xor的存放路径。0.2.5版的xorboot好像只能将xor菜单放在\efi\xorboot 这个文件夹,之前版本还是优先放在同efi文件一个文件夹的。
回复

使用道具 举报

15#
 楼主| 发表于 2019-11-9 16:29:25 | 显示全部楼层
本帖最后由 hilsonma 于 2019-11-12 13:37 编辑


前者是2月份的版本,原贴没有继续更新
后者是更新到10月份的版本
其实内核都是微PE,只是我陆陆续续有按我的使用习惯更新。
回复

使用道具 举报

16#
 楼主| 发表于 2019-11-15 21:49:55 | 显示全部楼层
hzf1019 发表于 2019-11-15 20:15
有一次干了件啥事~因为试了很久不知道怎么也进不去U盘~一气之下把电脑的EFI分区给格式化了~结果瘫了~下 ...

先折腾u盘,u盘成功了再折腾硬盘,这样起码有个备用启动。
回复

使用道具 举报

17#
 楼主| 发表于 2020-7-26 08:05:27 | 显示全部楼层
loveubuntu 发表于 2020-7-25 21:24
我的esp里,已经有\efi\boot\bootx64.efi 文件了,那么,我用这个工具导出来的话,能不能放在这个路径,把 ...

可以替换为 \EFI\Microsoft\Boot\bootmgfw.efi 也可以替换为 \EFI\Boot\bootx64.efi
替换前先备份原文件,如果是替换到硬盘要先准备好启动U盘,以防万一出错无法启动。
回复

使用道具 举报

18#
 楼主| 发表于 2020-7-26 08:13:42 | 显示全部楼层
loveubuntu 发表于 2020-7-25 21:14
楼主,比如我是vhd系统,那我得怎么做?

菜单设置里有个系统类型为Windows NT 6+ VHD ,做好相关设置即可。
如果再不明白可搜索相关教程。我已经转用grub2所以没有再深入学习xorboot.

点评

为什么转用grub2了呢?比这个更好用吗?  详情 回复 发表于 2020-7-27 10:52
回复

使用道具 举报

19#
 楼主| 发表于 2020-7-26 08:16:59 | 显示全部楼层
loveubuntu 发表于 2020-7-25 20:56
请教下,这个背景,是否可以不要,我想要全黑的背景。

想要全黑背景可以在菜单编辑里全局设置标签下将边框颜色改为黑色。
回复

使用道具 举报

20#
 楼主| 发表于 2020-7-27 17:16:04 | 显示全部楼层
本帖最后由 hilsonma 于 2020-7-27 17:21 编辑
loveubuntu 发表于 2020-7-27 10:52
为什么转用grub2了呢?比这个更好用吗?

xorboot 简单易用,易于上手
grub2 可以更灵活定制并且可以自动菜单,但要花更多时间学习

如果觉得xorboot够用就用xorboot好了,如果xorboot不够用就试试grub2



回复

使用道具 举报

21#
 楼主| 发表于 2020-10-17 07:50:27 | 显示全部楼层
cloudmist 发表于 2020-10-16 09:20
楼主,我用的0.2.2版本的,可以成功建立菜单,但是菜单启动系统,启动WIM,都是失败的,
这个是怎么回事? ...

上图看看菜单是怎么设置的
回复

使用道具 举报

22#
 楼主| 发表于 2020-10-17 07:58:31 | 显示全部楼层
002 发表于 2020-10-16 10:01
看了才懂一些

具体操作还是不会

bcd编辑是编辑菜单,不可以打开efi文件。bcd菜单是windows自带的,可以使用bcdedit或bootice等工具修改。efi文件是bootmgfw.efi ,不建议修改。

本帖其实也是定制菜单,是xorboot菜单,使用xorboot程序修改。efi文件也是由xorboot程序生成的,不再是windows自带的bootmgfw.efi 。
回复

使用道具 举报

23#
 楼主| 发表于 2020-12-29 16:37:12 | 显示全部楼层
gbzx 发表于 2020-12-29 14:06
安装好后,可启动,但关机就黑一下屏,无法关机,不知何原因,后来,在电源设置里关闭 快速启动,就能关机 ...

因为启用了快速启动就相当于是将机器休眠,取消关机功能。
你可以尝试按住shift键再按关机,这是表示临时关闭快速启动功能然后关机。
回复

使用道具 举报

24#
 楼主| 发表于 2022-9-19 19:53:35 | 显示全部楼层
本帖最后由 hilsonma 于 2022-9-19 20:01 编辑
likeyouli 发表于 2022-9-19 18:59
佩服大师,,我现在学习的东西,您好几年前就掌握了啊 ,,顶一下老帖子,相信向我一样的新人看到一定有 ...

UEFI启动序列 就是 主板固件的 启动设备选单,其等待的秒数是在主板固件里设置的,也就是uefi设置/nvram设置(以前的bios设置/cmos设置),是主板的开机设置选项。

uefi/bios 是固件,nvram/cmos 是固件设定数据的存储介质。

因为修改的是nvram里的数据,所以bootice这个工具的修改不一定生效。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-2 09:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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