无忧启动论坛

标题: grub2定制单文件efi(img、wim、iso)技术探讨 [打印本页]

作者: tuice0liu    时间: 2026-1-8 16:57
标题: grub2定制单文件efi(img、wim、iso)技术探讨
最开始研究这个东西,是想像“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有差别。

img一般用于grubfm、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
}


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

作者: smile_z    时间: 2026-1-8 18:44
学习一下
作者: rchc08    时间: 2026-1-8 19:30
感谢分享
作者: zhangfeng_223    时间: 2026-1-8 19:38
感谢分享
作者: mrzhonghb    时间: 2026-1-8 19:47
感谢分享
作者: 2010sya    时间: 2026-1-8 19:50
https://cloud.189.cn/t/N7v2Ezm6jyEj (访问码:5a9t)
作者: plutoshen    时间: 2026-1-9 03:55
哈哈,这个事业后继有人了。
作者: ebaqiang    时间: 2026-1-9 06:34
进来学习一下
作者: 1e3e    时间: 2026-1-9 08:55
感谢分享啊
作者: l3429900    时间: 2026-1-9 10:21
有谁分享一下别的网盘?百度 123 夸克 阿里云都可以
作者: win82    时间: 2026-1-9 10:31
感谢分享
作者: tuice0liu    时间: 2026-2-2 14:39
增加了一个grubfm的打包模版,主要是配置文件上增加了一些打包grubfm需要的mod,地址不变。
作者: book11ba    时间: 2026-2-2 21:39
非常好用,对我这种半吊子太又好了,谢谢大佬不吝指教。
作者: apachi1012    时间: 2026-2-3 10:16
感谢分享
作者: zyx07    时间: 4 天前
这个太好了;···感谢分享




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