无忧启动论坛

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

[分享] 将grub2启动模板封装成efi单文件

  [复制链接]
发表于 2020-10-5 09:18:47 | 显示全部楼层
hilsonma 发表于 2020-10-3 16:57
本贴模板中我是在runseek自定义命令中实现自动菜单的,想要不显示这类设备,需要修改runseek这个自定义命 ...

大神,这个怎么代用?我是小白,求教,谢谢
回复

使用道具 举报

发表于 2020-11-17 15:25:50 | 显示全部楼层
大神请问在BISO下也能封装成单文件吗   谢谢大神

点评

如果用grub4dos,倒是能封装成大体积grldr单文件  详情 回复 发表于 2020-11-17 18:30
bios下不能封装成单文件,因为core.img大小不能超出458240字节。  详情 回复 发表于 2020-11-17 15:43
回复

使用道具 举报

 楼主| 发表于 2020-11-17 15:43:16 | 显示全部楼层
tdqk003 发表于 2020-11-17 15:25
大神请问在BISO下也能封装成单文件吗   谢谢大神

bios下不能封装成单文件,因为core.img大小不能超出458240字节。

点评

谢谢大神 请问可以菜单内置吗 谢谢  详情 回复 发表于 2020-11-17 17:01
回复

使用道具 举报

发表于 2020-11-17 17:01:56 | 显示全部楼层
hilsonma 发表于 2020-11-17 15:43
bios下不能封装成单文件,因为core.img大小不能超出458240字节。

谢谢大神  请问可以菜单内置吗   谢谢

点评

都不能单文件了,就不要考虑菜单内置了吧 如果要菜单内置的,还是用g4d,体积小,功能强劲。 bios平台下,如果为了界面与uefi一致,可以考虑grub2。不然的话bios平台我建议还是用g4d. 如果是uefi平台,我就建  详情 回复 发表于 2020-11-17 21:44
回复

使用道具 举报

发表于 2020-11-17 18:30:23 | 显示全部楼层
tdqk003 发表于 2020-11-17 15:25
大神请问在BISO下也能封装成单文件吗   谢谢大神

如果用grub4dos,倒是能封装成大体积grldr单文件

点评

grldr可以撑到几mb吗?  详情 回复 发表于 2020-11-17 20:08
回复

使用道具 举报

发表于 2020-11-17 20:08:17 | 显示全部楼层
pseudo 发表于 2020-11-17 18:30
如果用grub4dos,倒是能封装成大体积grldr单文件

grldr可以撑到几mb吗?

点评

当初单文件化用的是手工“续尾法”:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=154873&extra=page%3D1&page=1 后来fbinsttool工具已经把续尾工作自动化通用化了。 续尾法其实并没有实质性改变grldr,  详情 回复 发表于 2020-11-18 12:35
回复

使用道具 举报

 楼主| 发表于 2020-11-17 21:44:33 | 显示全部楼层
tdqk003 发表于 2020-11-17 17:01
谢谢大神  请问可以菜单内置吗   谢谢

都不能单文件了,就不要考虑菜单内置了吧

如果要菜单内置的,还是用g4d,体积小,功能强劲。
bios平台下,如果为了界面与uefi一致,可以考虑grub2。不然的话bios平台我建议还是用g4d.

如果是uefi平台,我就建议首选grub2。
回复

使用道具 举报

发表于 2020-11-18 12:35:15 | 显示全部楼层
本帖最后由 pseudo 于 2020-11-18 12:43 编辑
wintoflash 发表于 2020-11-17 20:08
grldr可以撑到几mb吗?

当初单文件化用的是手工“续尾法”:http://bbs.wuyou.net/forum.php?m ... tra=page%3D1&page=1
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=163626
后来fbinsttool工具已经把续尾工作自动化通用化了。

续尾法其实并没有实质性改变grldr,所以与体积关系不大。
如果.efi没有校验方面问题,原则上应该也可以用续尾法实现单文件化。

点评

> 续尾法其实并没有实质性改变grldr,所以与体积关系不大。 最多能续多少?4GB? > 如果.efi没有校验方面问题,原则上应该也可以用续尾法实现单文件化。 不可以。PE格式不能这样做。  详情 回复 发表于 2020-11-18 13:55
回复

使用道具 举报

发表于 2020-11-18 13:55:03 | 显示全部楼层
pseudo 发表于 2020-11-18 12:35
当初单文件化用的是手工“续尾法”:http://bbs.wuyou.net/forum.php?m ... tra=page%3D1&page=1
http:/ ...

> 续尾法其实并没有实质性改变grldr,所以与体积关系不大。
最多能续多少?4GB?把一个winpe的iso都弄进去可以吗?
> 如果.efi没有校验方面问题,原则上应该也可以用续尾法实现单文件化。
不可以。PE格式不能这样做。

点评

1、续尾容易 copy命令带/B参数就可以实现。 2、尾大无妨 加了5GB尾部的大grldr跟原来的grldr功能一样。grub4dos载人stage2之类时不涉及尾部。 3、尾部可map 且假定大grldr在盘上是连续存放无碎片的。 已知续尾  详情 回复 发表于 2020-11-20 11:37
回复

使用道具 举报

发表于 2020-11-18 15:49:19 | 显示全部楼层
非常感谢大神的回复,我发现江南一根葱大神的作品http://bbs.wuyou.net/forum.php?mod=viewthread&tid=422210这个ISO文件启动起来我发现在BIOS下也是grub2引导的,但是我没发现菜单,我启动后在菜单上按e想看看菜单怎么写的,但是看不到,这位大神的方法是不是就是内置菜单了,非常感谢谢谢大神的回复

在启动菜单上按E

在启动菜单上按E

BIOS启动菜单

BIOS启动菜单

点评

他这个实例可以说是菜单内置,因为看不到独立的菜单文件,也不能编辑。 但是对于引导文件本身来说又不是内置,引导文件是fmldr,这个文件没有菜单或者说是内置菜单只有一条,就是引导一个镜像fm.loop,你看到的菜单  详情 回复 发表于 2020-11-18 18:13
哦  详情 回复 发表于 2020-11-18 16:02
回复

使用道具 举报

发表于 2020-11-18 16:02:57 | 显示全部楼层
tdqk003 发表于 2020-11-18 15:49
非常感谢大神的回复,我发现江南一根葱大神的作品http://bbs.wuyou.net/forum.php?mod=viewthread&tid=4222 ...

回复

使用道具 举报

 楼主| 发表于 2020-11-18 18:13:38 | 显示全部楼层
tdqk003 发表于 2020-11-18 15:49
非常感谢大神的回复,我发现江南一根葱大神的作品http://bbs.wuyou.net/forum.php?mod=viewthread&tid=4222 ...

他这个实例可以说是菜单内置,因为看不到独立的菜单文件,也不能编辑。
但是对于引导文件本身来说又不是内置,引导文件是fmldr,这个文件没有菜单或者说是内置菜单只有一条,就是引导一个镜像fm.loop,你看到的菜单应该就是在fm.loop中的。
而fmldr和fm.loop又是打包成一个iso文件了的,你看到的就是这个iso: netpe_multiarch.iso

所以这个实例中,真正的引导应该是ventoy或者是g4d或者是其他的引导程序
这个引导程序引导 netpe_multiarch.iso ,从而引导其中的fmldr,再引导iso中的fm.loop,然后就呈现设置在fm.loop中的菜单。
(init.sh --> netboot.sh --> netpe.lua 前面3个菜单项在netpe.lua中,后面的菜单项在netboot.sh中)

点评

非常感谢大神的详细解答,总与明白了,谢谢  详情 回复 发表于 2020-11-19 11:32
回复

使用道具 举报

发表于 2020-11-19 11:32:38 | 显示全部楼层
hilsonma 发表于 2020-11-18 18:13
他这个实例可以说是菜单内置,因为看不到独立的菜单文件,也不能编辑。
但是对于引导文件本身来说又不是 ...

非常感谢大神的详细解答,总与明白了,谢谢
回复

使用道具 举报

发表于 2020-11-20 11:37:11 | 显示全部楼层
wintoflash 发表于 2020-11-18 13:55
> 续尾法其实并没有实质性改变grldr,所以与体积关系不大。
最多能续多少?4GB?把一个winpe的iso都弄进 ...

1、续尾容易
copy命令带/B参数就可以实现。
2、尾大无妨
加了5GB尾部的大grldr跟原来的grldr功能一样。grub4dos载人stage2之类时不涉及尾部。
3、尾部可map
且假定大grldr在盘上是连续存放无碎片的。
已知续尾前grldr大小,blocklist命令可以找到大grldr起始位置和大小,推算出尾部在盘上的起始、大小,map之。无--mem尾大无妨,带--mem则看内存容量。
另外,可以先将大grldr(允许碎片)整个map到(rd),再对(rd)盘进行操作。只要内存足,尾大无妨。

点评

grub.exe也能续尾?  详情 回复 发表于 2020-11-20 19:51
回复

使用道具 举报

发表于 2020-11-20 19:51:10 | 显示全部楼层
pseudo 发表于 2020-11-20 11:37
1、续尾容易
copy命令带/B参数就可以实现。
2、尾大无妨

grub.exe也能续尾吗?

点评

grldr没问题,没试过grub.exe。 你可以用 copy /B grub.exe /B +pe.iso /B 命令对grub.exe进行续尾,看续尾后grub.exe原有功能有没有受到影响。 只要续尾不影响原功能,就有机会通过续尾实现单文件化。  详情 回复 发表于 2020-11-21 12:28
回复

使用道具 举报

发表于 2020-11-21 12:28:27 | 显示全部楼层
本帖最后由 pseudo 于 2020-11-21 13:44 编辑
wintoflash 发表于 2020-11-20 19:51
grub.exe也能续尾吗?

grldr没问题,没试过grub.exe。
你可以用
copy /B grub.exe /B +pe.iso /B
命令对grub.exe进行续尾,看续尾后grub.exe原有功能有没有受到影响。
只要续尾不影响原功能,就有机会通过续尾实现单文件化。续尾比内置响应快。

至于UEFI启动,刚在qemu中试了对bootx64.efi续7MB尾,成功启动,原功能不受影响。
只试了一次,没在其它环境、尤其是安全启动环境作更多测试。


点评

efi的copy/b老早试过,不过不知道怎么利用。。。  详情 回复 发表于 2020-11-21 14:06
回复

使用道具 举报

发表于 2020-11-21 14:06:23 | 显示全部楼层
pseudo 发表于 2020-11-21 12:28
grldr没问题,没试过grub.exe。
你可以用
copy /B grub.exe /B +pe.iso /B

efi的copy/b老早试过,不过不知道怎么利用。。。
回复

使用道具 举报

发表于 2020-12-21 18:01:22 | 显示全部楼层
学习中,能介绍下.efi的文件格式不!

点评

我对 .efi 的文件格式也不甚了解。我只知道uefi引导需要 .efi 文件。之前我只知道可以用xorboot这个软件生成bootx64.efi,后来知道可以用grub2来生成bootx64.efi,之后就一直使用grub2来生成,本贴就是其中一个应用  详情 回复 发表于 2020-12-22 11:57
回复

使用道具 举报

 楼主| 发表于 2020-12-22 11:57:16 | 显示全部楼层
seashipseaship 发表于 2020-12-21 18:01
学习中,能介绍下.efi的文件格式不!

我对 .efi 的文件格式也不甚了解。我只知道uefi引导需要 .efi 文件。之前我只知道可以用xorboot这个软件生成bootx64.efi,后来知道可以用grub2来生成bootx64.efi,之后就一直使用grub2来生成,本贴就是其中一个应用例子。

现在也可以下载grub4dos的.efi文件,不过还在完善中,一些功能还需要等待。

类似的引导程序还有refind、clover等,都是通过菜单文件来配置启动,efi文件是现成的。

我目前只发现grub2可以在一定程度上定义 .efi 文件, 其他的都只能使用现成的 .efi 文件。

要使用某efi文件做uefi主引导,需要将该efi文件命名为bootx64.efi 放在u盘fat16/fat32分区的 \efi\boot\ 文件夹中,或者将该efi文件命名为bootmgfw.efi 放到硬盘efi分区的 \efi\microsoft\boot\ 文件夹中,在某些主板上,也支持命名为bootx64.efi 放在硬盘efi分区的 \efi\boot\ 文件夹中。也有个别主板,支持各种格式的分区引导,支持各种位置的各种efi文件名,只需要在uefi固件设置中指定要引导的efi文件就可以了。

efi引导文件除了作为主引导外,也可以被其他efi文件链接引导,这种情况一般在上级引导的菜单配置中设定。

efi文件也不一定是引导文件,还有一些是驱动文件,需要在某引导文件中挂载使用,实现某种驱动。例如截屏驱动,ntfs文件系统驱动,鼠标驱动等。
回复

使用道具 举报

发表于 2021-1-11 22:23:53 | 显示全部楼层
製作EFI引導菜單嗎,學習一下
回复

使用道具 举报

发表于 2021-1-12 11:05:26 | 显示全部楼层
如何添加 font ?把fonts目录添加到grub.cfg后,
loadfont  $prefix/fonts/unicode.pf2
set theme= $prefix/themes/elegant/theme.txt
这两个命令不起作用。

点评

set theme=后面不要有空格。  详情 回复 发表于 2021-1-12 16:09
回复

使用道具 举报

 楼主| 发表于 2021-1-12 15:55:38 | 显示全部楼层
$prefix 表示 grub.cfg 所在文件夹
也就是说,上述菜单要求 字体文件 unicode.pf2 放在 grub.cfg 所在文件夹的子文件夹 fonts 之中
主题文件放在 grub.cfg 所在文件夹的子文件夹 themes 的子文件夹 elegant 之中
回复

使用道具 举报

发表于 2021-1-12 16:09:26 | 显示全部楼层
wuyouman01 发表于 2021-1-12 11:05
如何添加 font ?把fonts目录添加到grub.cfg后,
loadfont  $prefix/fonts/unicode.pf2
set theme= $prefi ...

set theme=后面不要有空格。

点评

menuentry "1.Windows" --class windows --hotkey=1 {if search -n -s -f /Efi/Microsoft/Boot/Bcd; then chainloader /Efi/Microsoft/Boot/bootmgfw.efi fi} menuentry "2.WindowsRe" --class recovery --  详情 回复 发表于 2021-1-12 22:05
谢谢您。  详情 回复 发表于 2021-1-12 21:37
回复

使用道具 举报

发表于 2021-1-12 21:37:28 | 显示全部楼层
wintoflash 发表于 2021-1-12 16:09
set theme=后面不要有空格。

谢谢您。
回复

使用道具 举报

发表于 2021-1-12 22:05:00 | 显示全部楼层
wintoflash 发表于 2021-1-12 16:09
set theme=后面不要有空格。

menuentry "1.Windows"  --class windows   --hotkey=1 {if search -n -s -f /Efi/Microsoft/Boot/Bcd; then chainloader /Efi/Microsoft/Boot/bootmgfw.efi fi}
menuentry "2.WindowsRe"      --class recovery --hotkey=2 {run /Recovery/WindowsRe/winre.wim;}
menuentry "3.Winre"      --class recovery --hotkey=3 {if search -n -s -f /winre.wim;then run /winre.wim fi}
1和3菜单出错。
1.Windows 和 3.Winre 请教应该怎么写?
回复

使用道具 举报

发表于 2021-1-12 22:13:42 | 显示全部楼层
3.Winre 改成一下语句后,不能启动。和2.WindowsRe是同一个wim,wim在不同分区,只不过2.WindowsRe的wim目录自带boot.sdi
menuentry "3.Winre"      --class recovery --hotkey=3 {search -n -s -f /winre.wim;run /winre.wim;}
回复

使用道具 举报

发表于 2021-1-12 22:20:16 | 显示全部楼层
3.Winre 加了boot.sdi一样不能启动,是否是GPT+NTFS缘故? 123.jpg




回复

使用道具 举报

发表于 2021-1-12 22:27:26 | 显示全部楼层
汗,可以正常启动。原来/wim太多,而且不同的wim。
回复

使用道具 举报

发表于 2021-2-16 22:01:36 | 显示全部楼层
hilsonma 发表于 2020-3-8 19:32
感谢分享。

仿照你的方法,我更新了我的方案,添加grub2模块目录和定制程序,做成完整独立的单文件efi ...

我下载了你这个打包生成efi,引导只显示grub>界面,看不到菜单,我不知道自己哪里错了?
回复

使用道具 举报

发表于 2021-2-16 22:25:55 | 显示全部楼层
文件“grub2 生成 efi 引导 ” 是我修改后的,生成的efi有问题,能帮我看看,我的是哪里错了?

grub2 生成 efi 引导.rar

2.89 MB, 下载次数: 97, 下载积分: 无忧币 -2

点评

看了一下你的菜单内容,共3项 默认项是进入自动还原的B版vhd,不需密码 另两项需要输入用户名和密码,一个是A版vhd,另一个是pe 我的建议是,使用自定义命令代替密码,自定义命令只有你自己知道,相当于密码,  详情 回复 发表于 2021-2-17 06:35
我测试没有发现问题 [attachimg]475431[/attachimg]  详情 回复 发表于 2021-2-17 06:18
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-28 21:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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