无忧启动论坛

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

请教UEFI模式下官方grub2.12怎么引导ISO文件?

[复制链接]
发表于 2025-4-22 15:33:53 | 显示全部楼层
zx7jy 发表于 2025-4-22 13:21
魔改的grub确实挺好,可惜的是停止维护了,不是长久的解决方案

把我修改的grub封装一下不就行了吗
isoldr.zip (427.02 KB, 下载次数: 71)

点评

这个方案不错,请教哪里有文档可以参考吗?在github没看到相关资料 这个isoldr.efi是怎么封装的啊  详情 回复 发表于 2025-4-22 17:50
回复

使用道具 举报

发表于 2025-4-22 19:12:45 | 显示全部楼层
zx7jy 发表于 2025-4-22 17:50
这个方案不错,请教哪里有文档可以参考吗?在github没看到相关资料

这个isoldr.efi是怎么封装的啊

执行grub-mkimage --help可以看到它支持嵌入内存盘。你可以把写好的菜单打包为 memdisk.cpio,嵌入到 EFI 文件中。

模块列表 mods.lst
  1. all_video blocklist boot btrfs chain configfile cpio echo efiload efi_gop exfat ext2 extcmd fat fb file font f2fs getargs getkey gzio halt iso9660 jpeg ls lzopio map memdisk newc normal ntfs ntfscomp part_gpt part_msdos probe reboot search tar terminal test udf vhd xfs xzio
复制代码

构建脚本
  1. set /p modules= < mods.lst
  2. grub-mkimage.exe -d x86_64-efi -m memdisk.cpio -p (memdisk)/ -o isoldr.efi -O x86_64-efi %modules%
复制代码

内置菜单 (memdisk)/grub.cfg
  1. clear
  2. if getargs --value type t; then
  3.         set cmd_o="--first --type=$t"
  4. else
  5.         set cmd_o="--first"
  6. fi
  7. if getargs --value file f; then
  8.         if [ -f "$f" ]; then
  9.                 set cmd_f="$f"
  10.         else
  11.                 search --set=d --file "$f"
  12.                 set cmd_f="($d)$f"
  13.         fi
  14. else
  15.         echo "Missing arguments"
  16.         getkey
  17.         reboot
  18. fi
  19. map $cmd_t "$cmd_f"
  20. boot
复制代码

点评

请假一个问题,grub-mkimage制作启动镜像时,最少需要内嵌的模块,要怎么判断啊 我理解应该可以不内嵌任何模块,启动后通过insmod加载就可以,直接使用grub-install安装时制作的efi文件就特别小,但是不内嵌模块  详情 回复 发表于 2025-4-25 23:32
请教一下,配置文件可以带参数,是魔改 grub 的特殊功能吗?我在官方的grub2中没有找到 getargs 这个命令 不知道Grub4dos_for-UEFI 能不能支持配置文件带参数呢?  详情 回复 发表于 2025-4-24 19:42
回复

使用道具 举报

发表于 2025-4-24 20:10:15 | 显示全部楼层
zx7jy 发表于 2025-4-24 19:42
请教一下,配置文件可以带参数,是魔改 grub 的特殊功能吗?我在官方的grub2中没有找到 getargs 这个命令 ...

是。 https://a1ive.github.io/grub2_cmd_zh.html

不能。你为什么非得纠结于用grub4efi?它远不如grub2稳定。

点评

非常感谢!!! 不是纠结g4d,只是想确认下是否标准功能  详情 回复 发表于 2025-4-24 22:19
回复

使用道具 举报

发表于 2025-4-26 08:08:57 | 显示全部楼层
zx7jy 发表于 2025-4-25 23:32
请假一个问题,grub-mkimage制作启动镜像时,最少需要内嵌的模块,要怎么判断啊

我理解应该可以不内嵌 ...

要确保grub能找到并读取$prefix里面的模块,你需要:
磁盘驱动 (比如biosdisk, lvm等)
分区表支持模块 (part_msdos, part_gpt等)
文件系统支持模块 (fat, ntfs等)
从rescue模式进入normal模式必要的模块 (normal 等)
如果需要其他功能(比如搜索、基本命令 ls等),再额外加模块。

点评

非常感谢,学习一下  详情 回复 发表于 2025-4-26 11:14
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-3-1 20:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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