无忧启动论坛

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

[求助] GRUB4DOS for UEFI有没有内置菜单

[复制链接]
跳转到指定楼层
1#
本帖最后由 201287zr 于 2025-5-26 16:08 编辑

虽然来论坛很多年了,但对grub4dos还是掌握得很浅显,最近空闲之余研究了下GRUB4DOS for UEFI,但很多还不太理解,感觉G4E跟G4D差别很大。我想请教一下G4E有内置菜单吗?以前用G4D时都是可以编辑grldr的内置菜单的,但G4E好像没有了,那G4D和G4E的菜单可以通用吗?比如我想引导grldr或bootx64.efi后都找到/menu.lst,并设置图模式和字体等,再根据不同的平台(BIOS或UEFI)适配不同PE菜单可行吗?所以我不清楚G4E是否有内置菜单如find --set-root --ignore-floppies --ignore-cd /menu.lst这样的预置语句设置了root目录或判断是否PXE启动等。看了一些帮助,感觉也没太懂,还请大师们指教一下。
2#
发表于 6 天前 | 只看该作者

点评

请问这个在哪里,如何更改呢  详情 回复 发表于 6 天前
回复

使用道具 举报

3#
 楼主| 发表于 6 天前 | 只看该作者

请问这个在哪里,如何更改呢

点评

看作者原帖说明 更新说明: 2021-06-19 (yaya) 增加 ADDR_RET_STR 以便外部命令使用。 2021-06-02 (a1ive) 支持嵌入字库、模块(.mod文件)。 mkimage.exe -d 目录 -p /efi/grub -o BOOTX64.EFI -O x8  详情 回复 发表于 6 天前
回复

使用道具 举报

4#
发表于 6 天前 | 只看该作者
201287zr 发表于 2025-5-26 17:03
请问这个在哪里,如何更改呢

看作者原帖说明

更新说明:
2021-06-19 (yaya)
  增加 ADDR_RET_STR 以便外部命令使用。

2021-06-02 (a1ive)
  支持嵌入字库、模块(.mod文件)。
  mkimage.exe -d 目录 -p /efi/grub -o BOOTX64.EFI -O x86_64-efi -c 嵌入菜单 -f 嵌入字库 -m 嵌入模块
  mkimage.exe -d 目录 -p /efi/grub -o BOOTIA32.EFI -O i386-efi -c 嵌入菜单 -f 嵌入字库 -m 嵌入模块

点评

感谢大师,请问有mkimage的详细说明吗,-d是什么作用,与-f有什么区别,有没有具体制作的示例  详情 回复 发表于 5 天前
回复

使用道具 举报

5#
 楼主| 发表于 5 天前 | 只看该作者
fuldho 发表于 2025-5-26 17:39
看作者原帖说明

更新说明:

感谢大师,请问有mkimage的详细说明吗,-d是什么作用,与-f有什么区别,有没有具体制作的示例
回复

使用道具 举报

6#
发表于 5 天前 来自手机 | 只看该作者
真是的,-d 后面是菜单所在目录。-f 是字库文件,与你无关。

点评

请问yaya大师,G4E可不可以依次查询/efi/grub /grub和/下面的menu.lst,用mkimage -p也只能指定一个路径,如果/efi/grub下面没有menu.lst会出错直接进入命令行,我内置菜单也写了一条查询菜单如下: title find /me  详情 回复 发表于 4 天前
回复

使用道具 举报

7#
 楼主| 发表于 4 天前 | 只看该作者
2011yaya2007777 发表于 2025-5-27 10:35
真是的,-d 后面是菜单所在目录。-f 是字库文件,与你无关。

请教yaya大师,G4E可不可以依次查询/efi/grub /grub和/下面的menu.lst,用mkimage -p也只能指定一个路径,如果/efi/grub下面没有menu.lst会出错直接进入命令行,我内置菜单也写了一条查询菜单如下:
title find /menu.lst, /efi/grub/menu.lst, /grub/menu.lst
        #errorcheck off
        configfile /efi/grub/menu.lst
        configfile /grub/menu.lst
        configfile /menu.lst
        #errorcheck on
        commandline
我记得g4d以前都是默认会查询多个路径的配置文件,g4e不行吗?还是我内置菜单的姿势不对?

点评

路径问题,用mkimage -p . 就行,.代表当前路径,这样就能把g4e的efi放在任意目录了。  详情 回复 发表于 前天 09:39
回复

使用道具 举报

8#
发表于 4 天前 来自手机 | 只看该作者
g4e的菜单是固定位置

点评

那内置菜单的作用是什么呢?菜单都已固定在/efi/grub下,那似乎内置菜单没起作用是这样理解吧,我测试内置菜单似乎也没起到作用。  详情 回复 发表于 4 天前
回复

使用道具 举报

9#
 楼主| 发表于 4 天前 | 只看该作者
2011yaya2007777 发表于 2025-5-28 17:27
g4e的菜单是固定位置

那内置菜单的作用是什么呢?菜单都已固定在/efi/grub下,那似乎内置菜单没起作用是这样理解吧,我测试内置菜单似乎也没起到作用。

点评

内置菜单的作用,是方便其他引导程序来引导g4e,或者集成到某个系统,不能使用efi目录。  详情 回复 发表于 前天 09:37
回复

使用道具 举报

10#
发表于 4 天前 来自手机 | 只看该作者
还是不要纠结的好  @9#
回复

使用道具 举报

11#
发表于 4 天前 来自手机 | 只看该作者
某些人的偏爱吧。可以仅有内置菜单,也可以仅有外置菜单,也可以两者皆有。当前的g4e内置菜单确实没有什么用处。

点评

我挺喜欢grub4dos可以随意查找配置菜单的设置,可否让g4e也有这样的功能,不要限定menu.lst只能在/efi/grub中,这样方便在不同环境中配置不同菜单。谢谢大师  详情 回复 发表于 4 天前
回复

使用道具 举报

12#
 楼主| 发表于 4 天前 来自手机 | 只看该作者
2011yaya2007777 发表于 2025-5-28 18:11
某些人的偏爱吧。可以仅有内置菜单,也可以仅有外置菜单,也可以两者皆有。当前的g4e内置菜单确实没有什么 ...

我挺喜欢grub4dos可以随意查找配置菜单的设置,可否让g4e也有这样的功能,不要限定menu.lst只能在/efi/grub中,这样方便在不同环境中配置不同菜单。谢谢大师
回复

使用道具 举报

13#
发表于 3 天前 | 只看该作者
我挺喜欢grub4dos可以随意查找配置菜单的设置

你完全可以在自己的内置菜单里配置呀!
你需要自己配置!菜单放在哪里就配置到哪里。
你觉得配置到这里是最恰当的?
configfile /efi/grub/menu.lst
configfile /grub/menu.lst
configfile /menu.lst

点评

我在/efi/grub/menu.lst中写入下面的查找语句 #configfile /efi/grub/menu.lst configfile /grub/menu.lst configfile /menu.lst 目的是依次查找不同目录下的menu.lst,在虚拟机测试执行configfile /grub/menu.l  详情 回复 发表于 前天 10:32
回复

使用道具 举报

14#
发表于 前天 09:37 | 只看该作者
201287zr 发表于 2025-5-28 17:30
那内置菜单的作用是什么呢?菜单都已固定在/efi/grub下,那似乎内置菜单没起作用是这样理解吧,我测试内 ...

内置菜单的作用,是方便其他引导程序来引导g4e,或者集成到某个系统,不能使用efi目录。
回复

使用道具 举报

15#
发表于 前天 09:39 | 只看该作者
201287zr 发表于 2025-5-28 16:32
请教yaya大师,G4E可不可以依次查询/efi/grub /grub和/下面的menu.lst,用mkimage -p也只能指定一个路径 ...

路径问题,用mkimage -p . 就行,.代表当前路径,这样就能把g4e的efi放在任意目录了。
回复

使用道具 举报

16#
 楼主| 发表于 前天 10:32 来自手机 | 只看该作者
2011yaya2007777 发表于 2025-5-29 14:59
你完全可以在自己的内置菜单里配置呀!
你需要自己配置!菜单放在哪里就配置到哪里。
你觉得配置到这里 ...

我在/efi/grub/menu.lst中写入下面的查找语句
#configfile /efi/grub/menu.lst
configfile /grub/menu.lst
configfile /menu.lst
目的是依次查找不同目录下的menu.lst,在虚拟机测试执行configfile /grub/menu.lst后就进入命令行了(因为/grub/不存在),按理应该再执行下一条命令configfile /menu.lst,但实际有问题!我测试了g4d关于上述configfile的功能,都能在没有查询到相应配置文件时,依次跳转下一条命令,那g4e的configfile是不是存在问题或是其他机制原因导致?
回复

使用道具 举报

17#
发表于 前天 12:10 来自手机 | 只看该作者
你看看g4d的预置菜单,有关闭错误退出的指令。

点评

[attachimg]559536[/attachimg] 我的菜单是这样写的,加了errorcheck off也不行,还是会直接进入命令行 title find /grub/menu.lst, /menu.lst errorcheck off configfile /grub/menu.lst configfile /menu.  详情 回复 发表于 前天 12:30
回复

使用道具 举报

18#
 楼主| 发表于 前天 12:30 | 只看该作者
2011yaya2007777 发表于 2025-5-30 12:10
你看看g4d的预置菜单,有关闭错误退出的指令。


我的菜单是这样写的,加了errorcheck off也不行,还是会直接进入命令行
title find /grub/menu.lst, /menu.lst
        errorcheck off
        configfile /grub/menu.lst
        configfile /menu.lst
        #find --set-root --ignore-cd /efi/grub/menu.lst && configfile /efi/grub/menu.lst
        find --set-root --ignore-cd /grub/menu.lst && configfile /grub/menu.lst
        find --set-root --ignore-cd /menu.lst && configfile /menu.lst
        errorcheck on
        commandline


回复

使用道具 举报

19#
发表于 前天 12:50 来自手机 | 只看该作者
你是pxe 网起?你的服务器各级文件夹里面有dir.txt吗?这个是各级文件夹里面的文件名。

点评

另外,发现setmenu命令在BIOS和UEFI中的表现不一致,bios G4D二级菜单(指configfile传递的菜单)中setmenu设置显示的字符串与主菜单中的字符串同时显示,而UEFI中只会显示当前菜单setmenu --string的字符串,即会清  详情 回复 发表于 前天 13:13
是的,我是用pxe网启测试的,没有dir.txt,查找启动菜单需要这个吗?  详情 回复 发表于 前天 13:05
回复

使用道具 举报

20#
 楼主| 发表于 前天 13:05 | 只看该作者
2011yaya2007777 发表于 2025-5-30 12:50
你是pxe 网起?你的服务器各级文件夹里面有dir.txt吗?这个是各级文件夹里面的文件名。

是的,我是用pxe网启测试的,没有dir.txt,查找启动菜单需要这个吗?
回复

使用道具 举报

21#
 楼主| 发表于 前天 13:13 | 只看该作者
本帖最后由 201287zr 于 2025-5-30 13:33 编辑
2011yaya2007777 发表于 2025-5-30 12:50
你是pxe 网起?你的服务器各级文件夹里面有dir.txt吗?这个是各级文件夹里面的文件名。

另外,发现setmenu命令在BIOS和UEFI中的表现不一致,bios G4D二级菜单(指configfile传递的菜单)中setmenu设置显示的字符串与主菜单中的字符串同时显示,而UEFI中只会显示当前菜单setmenu --string的字符串,即会清空上级菜单setmenu显示的字符串。如图

不清楚哪个环境中setmenu的表现是正常的?感觉既然没有手动setmenu --string=来清空字符串,那么configfile的菜单应该还是要继续显示上级菜单中的自定义字符串吧,请yaya大师看看呢。

还发现G4E 的内部变量与G4D是不是不同了,比如我PXE启动想显示ip地址,使用了0x8284和0x8288变量,但UEFI中获取不了了,使用calc *0x8284发现数据为1,G4D获取正常。请教一下UEFI中内部变量问题。

回复

使用道具 举报

22#
发表于 前天 13:34 来自手机 | 只看该作者
按理不应该显示原先的菜单内容。uefi模式下是正确的。不显示ip的问题我排查一下。网起没有dir.txt是不能使用查找功能的。

点评

感谢yaya大师指点,获取硬盘数量是不是变量0x475,UEFI中好像也不行,有没有其它方法可以获取到本机硬盘数量和类型(mbr/GPT以及NTFS EFI分区信息)  详情 回复 发表于 前天 13:50
回复

使用道具 举报

23#
 楼主| 发表于 前天 13:50 | 只看该作者
2011yaya2007777 发表于 2025-5-30 13:34
按理不应该显示原先的菜单内容。uefi模式下是正确的。不显示ip的问题我排查一下。网起没有dir.txt是不能使 ...

感谢yaya大师指点,获取硬盘数量是不是变量0x475,UEFI中好像也不行,有没有其它方法可以获取到本机硬盘数量和类型(mbr/GPT以及NTFS EFI分区信息)
回复

使用道具 举报

24#
发表于 前天 14:34 | 只看该作者
获取硬盘数量是不是变量0x475,UEFI中好像也不行

pxe_yip这几个变量在uefi没有使用。菜单及脚本没有使用他们的地方。仅仅为了显示觉得没有必要。
通过可视化服务器已经可以获得。

通过find或者vol,可以看到硬盘号及分区号。

点评

我其实是想获取到服务器地址之后,保存到本地,以便客户端启动后链接传输文件等,比较方便,我觉得还是有用的吧  详情 回复 发表于 前天 16:16
回复

使用道具 举报

25#
 楼主| 发表于 前天 16:16 来自手机 | 只看该作者
2011yaya2007777 发表于 2025-5-30 14:34
pxe_yip这几个变量在uefi没有使用。菜单及脚本没有使用他们的地方。仅仅为了显示觉得没有必要。
通过可 ...

我其实是想获取到服务器地址之后,保存到本地,以便客户端启动后链接传输文件等,比较方便,我觉得还是有用的吧
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-6-1 07:18

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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