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

[发布] grub2定制单文件efi(img、wim、iso)技术探讨

[复制链接]
发表于 2026-1-8 16:57:40 | 显示全部楼层 |阅读模式
本帖最后由 tuice0liu 于 2026-8-4 13:58 编辑

最开始研究这个东西,是想像“plutoshen”大神一样,制作ventoy单文件版,最开始没搞定,但是通过解包ventoy单文件版,做出了云固件的单文件版。然后偶然翻到“plutoshen”制作的90兆和300兆的efi单文件PE,就忍不住继续研究了。以下只说核心命令哈。
先说一下原理,定制单文件版,基于grub2的grub-mkimage命令,先确定文件(img、wim、iso)能启动,把需要打包的文件按照路径放在文件夹里面,打包文件夹到cpio,然后把cpio作为mods打包进efi单文件。
打包命令:
find boot | ..\bin\cpio -o -H newc | ..\bin\gzip -9 > memdisk.cpio.gz
find memdisk.cpio.gz | ..\bin\cpio -o -H newc > memdisk.cpio
grub-mkimage -O x86_64-efi -m build\memdisk.cpio -c build\pre(gz).cfg -o BOOTX64.EFI %modules%
打包时,会调用默认配置文件pre.cfg
loopback loop1 (memdisk)/memdisk.cpio.gz
set root=loop1
set prefix=($root)/boot/grub

默认会启动($root)/boot/grub/grub.cfg
这时候img、wim、iso、grubfm有差别。

img一般用于ventoy、云固件的efi单文件制作。
menuentry "multiware_img" {
map --mem --rt --type=hd $prefix/mw.img
boot
}


wim一般用于PE的efi单文件制作。

menuentry "Boot WIM" {
    wimboot @:bootmgfw.efi:/boot/grub/bootmgfw.efi \
            @:bcd:/boot/grub/bcd \
            @:boot.sdi:/boot/grub/boot.sdi \
            @:boot.wim:/boot/grub/boot.wim
}                    


iso一般用于PE的efi单文件制作。
menuentry "winpe.iso" {
map $prefix/winpe.iso
boot
}

grubfm一般用于grubfm的efi单文件制作。

四种类型我都设置了gz、xz两种压缩方式,其中xz慢一点,但是一般压缩后体积小一点,但是兼容性不如gz,尽量使用gz压缩吧。还有一种zstd,一直没搞定。
这个是模版,请自行去掉-,我的等级还没法发链接。
http-s://cloud.189.cn/t/N7v2Ezm6jyEj (访问码:5a9t)

链接: http-s://pan.baidu.com/s/1EVlha6mvUSDldzB280ngPg 提取码: yw4p


评分

参与人数 1无忧币 +5 收起 理由
cuicongyuan + 5 赞一个!

查看全部评分

发表于 2026-1-8 18:44:37 | 显示全部楼层
学习一下
回复

使用道具 举报

发表于 2026-1-8 19:30:01 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2026-1-8 19:38:14 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2026-1-8 19:47:43 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2026-1-8 19:50:57 | 显示全部楼层
回复

使用道具 举报

发表于 2026-1-9 03:55:29 | 显示全部楼层
哈哈,这个事业后继有人了。
回复

使用道具 举报

发表于 2026-1-9 06:34:53 | 显示全部楼层
进来学习一下
回复

使用道具 举报

发表于 2026-1-9 08:55:24 | 显示全部楼层
感谢分享啊
回复

使用道具 举报

发表于 2026-1-9 10:21:54 | 显示全部楼层
有谁分享一下别的网盘?百度 123 夸克 阿里云都可以
回复

使用道具 举报

发表于 2026-1-9 10:31:27 | 显示全部楼层
感谢分享
回复

使用道具 举报

 楼主| 发表于 2026-2-2 14:39:03 | 显示全部楼层
增加了一个grubfm的打包模版,主要是配置文件上增加了一些打包grubfm需要的mod,地址不变。
回复

使用道具 举报

发表于 2026-2-2 21:39:04 | 显示全部楼层
非常好用,对我这种半吊子太又好了,谢谢大佬不吝指教。
回复

使用道具 举报

发表于 2026-2-3 10:16:10 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2026-2-20 18:49:16 | 显示全部楼层
这个太好了;···感谢分享
回复

使用道具 举报

发表于 2026-4-8 17:10:49 | 显示全部楼层
盲区,学习一下
回复

使用道具 举报

发表于 2026-4-22 10:36:11 | 显示全部楼层
学习了,感谢分享
回复

使用道具 举报

发表于 2026-4-22 10:51:11 | 显示全部楼层
学习了,不怎么看明白

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

发表于 2026-6-17 20:34:48 | 显示全部楼层
感谢楼主!!!!
回复

使用道具 举报

发表于 2026-6-23 15:33:47 | 显示全部楼层
分享个百度网盘
回复

使用道具 举报

 楼主| 发表于 7 天前 | 显示全部楼层
本来准备研究把x86_64-efi从2.11更新到2.14,研究了半天,才发现x86_64-efi用的是wintoflash定制版的grub2,版本只到2.13,grub2官方版本目前到2.14了,但是缺乏最关键的map.mod文件,搞不定。
然后就把x86_64-efi更新到2.13,天翼云下载地址不变,新增了百度网盘。

通过网盘分享的文件:grub2定制单文件efi
链接: http-s://pan.baidu.com/s/1EVlha6mvUSDldzB280ngPg 提取码: yw4p

点评

可以用这个fork: https://github.com/Aromatic05/grub  详情 回复 发表于 7 天前
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层
tuice0liu 发表于 2026-7-28 16:49
本来准备研究把x86_64-efi从2.11更新到2.14,研究了半天,才发现x86_64-efi用的是wintoflash定制版的grub2 ...

可以用这个fork: https://github.com/Aromatic05/grub

点评

谢谢大神指点。  详情 回复 发表于 6 天前
回复

使用道具 举报

 楼主| 发表于 6 天前 | 显示全部楼层
wintoflash 发表于 2026-7-28 22:35
可以用这个fork: https://github.com/Aromatic05/grub

谢谢大神指点。
回复

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
按照大神指点,使用Aromatic05的x86_64-efi,完成了2.15版,下载地址不变。
回复

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
按照大神指点,使用Aromatic05的x86_64-efi,完成了2.15版,下载地址不变。
回复

使用道具 举报

 楼主| 发表于 4 小时前 | 显示全部楼层
新增grub2定制单文件efi(grubfm)2.15,测试打包run.efi正常使用。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-4 18:58

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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