无忧启动论坛

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

[求助] 如何动态设置grub4dosuefi的工作目录

[复制链接]
跳转到指定楼层
1#
发表于 3 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,grub4dosuefi(以下简称g4e)的默认工作目录是/efi/grub,如果是用其他efi程序调用g4e,如果不是放在工作目录,会调用失败,有时候会进入一个grub的命令行界面。
我目前采用的方法是,内置menu.lst,定制一个g4e。
mkimage -p /8888 -o BOOTX64.EFI -O x86_64-efi -c menu.lst
通过这样,就能把g4e放在8888目录。
然后现在有了新的需求,要求8888目录可以动态改名,然后通过g4e引导目录内的menu.lst。这时候就遇到问题了,上面的p参数是写死的,没法通用。
使用deepseek,要求设置工作目录,以及动态加载目录内menu.lst,代码如下。

timeout 0
default 0
# 设置根设备为当前设备
root (bd)
# 获取当前路径
set /a current_path=%@root%
set /a current_path=%current_path:~1%
# 设置当前路径为工作路径
prefix %current_path%
# 检查当前目录下是否存在menu.lst文件
if exist %current_path%/menu.lst goto boot_menu
if exist menu.lst goto boot_menu
# 如果当前目录没有menu.lst,尝试在上级目录查找
set /a current_path=%current_path%/
set /a parent_path=%current_path:~0,-1%
if exist %parent_path%/menu.lst goto boot_parent

# 如果都找不到,显示错误信息
echo Error: menu.lst not found in current or parent directory!
pause
fallback 1
:boot_menu
configfile %current_path%/menu.lst
goto end
:boot_parent
configfile %parent_path%/menu.lst
goto end
:end

但是这些代码失败了,请问各位大神,大概需要怎么写代码,或者说,是不是无法实现这个功能。

2#
发表于 3 天前 来自手机 | 只看该作者
建一个 /efi/grub/ 目录费事吗?特别费事的话,就直接把菜单内置到g4e里 ,直接执行好了。

点评

是环境特殊,引导g4e那个程序就是这样实现的,可以从任意子目录启动一个系统镜像,但是他在引导linux系统时有点问题,我就想用g4e帮助解决。 目前在任意目录启动的问题解决了。使用下面这样的命令定制g4e。 mkimag  详情 回复 发表于 3 天前
回复

使用道具 举报

3#
 楼主| 发表于 3 天前 | 只看该作者
2011yaya2007777 发表于 2025-5-16 10:26
建一个 /efi/grub/ 目录费事吗?特别费事的话,就直接把菜单内置到g4e里 ,直接执行好了。

是环境特殊,引导g4e那个程序就是这样实现的,可以从任意子目录启动一个系统镜像,但是他在引导linux系统时有点问题,我就想用g4e帮助解决。
目前在任意目录启动的问题解决了。使用下面这样的命令定制g4e。
mkimage -p . -o BOOTX64.EFI -O x86_64-efi -c menu.lst
就是动态加载目录内menu.lst这个还没解决。
回复

使用道具 举报

4#
 楼主| 发表于 3 天前 | 只看该作者
目前的问题是,怎么获取当前BOOTX64.EFI所在的目录名。
回复

使用道具 举报

5#
发表于 3 天前 | 只看该作者
用批处理:  g4e接收 参数,  分析参数.


参考: http://bbs.wuyou.net/forum.php?m ... &fromuid=413782
回复

使用道具 举报

6#
发表于 3 天前 来自手机 | 只看该作者
你就一个menu.lst吧,直接把这个菜单内置就可以了,不用查找。
回复

使用道具 举报

7#
发表于 3 天前 | 只看该作者
来学习一下
回复

使用道具 举报

8#
发表于 3 天前 | 只看该作者
来学习一下..........
回复

使用道具 举报

9#
 楼主| 发表于 3 天前 | 只看该作者
这个帖子完结吧,查了半天参数,只有%@root%这是当前根目录信息,没有工作目录这个概念。最后是这样实现的。
回复

使用道具 举报

10#
 楼主| 发表于 3 天前 | 只看该作者
把g4e放进img里面,用那个程序加载引导img。如果要修改引导文件,用DG加载img后,修改img里面的/efi/grub/menu.lst文件。最终还是靠那个引导程序本身实现功能。

点评

用什么引导的g4e?  详情 回复 发表于 3 天前
回复

使用道具 举报

11#
发表于 3 天前 | 只看该作者
tuice0liu 发表于 2025-5-16 12:38
把g4e放进img里面,用那个程序加载引导img。如果要修改引导文件,用DG加载img后,修改img里面的/efi/grub/m ...

用什么引导的g4e?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-5-19 05:27

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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