Climbing 发表于 2021-4-17 21:04:32

wintoflash的grub2如何保存默认启动项?

本帖最后由 Climbing 于 2021-4-18 00:29 编辑

在grub4dos下有一个savedefault命令,配合defaut /boot/defaut命令(或者说直接修改/boot/default文件)就可以有菜单外定制默认启动项。

请问wintoflash的grub2有没有类似的功能,我翻了好多人的示例菜单,貌似没有人解决这个问题,大部分都是在菜单文件里(grub.cfg)用set default=?来设置。

另外,GRUB4DOS UEFI版是否兼容grub4dos,继承了savedefault这个功能?【补充:】经测试,grub4dos UEFI版继续了savedefault的功能。

【2021年4月18日 00:23:32】继续补充关于grub2的相关答案:
首先,grub2保存环境变量的默认文件是/boot/grub/grubenv。
保存默认启动项:
set default=N
save_env default或 save_env -f /boot/grubenv default

读取默认启动项:
load_env default或 load_env -f /boot/grubenv default

经过试验,发现这个save_env要保存的grubenv文件不是随便一个文件就可以的,它也是有格式上的要求的,而且,跟Grub4dos的default文件不同。首先,它要求是一个1024字节的文件。然后文件头应该还有一行:
# GRUB Environment Block这一行下面就保存的环境变量,例如:
default=1
然后再下面用#号填充到1024字节。

附件中我上传了两个grubenv文件,v0是使用Ubuntu下的grub-editenv grubenv create创建的空模板文件。v1则是使用grub-editenv grubenv set命令写入两个环境变量后的模板文件。


江南一根葱 发表于 2021-4-17 21:22:57

这个功能我用得最多,出魔入化,应该是这个吧
set default=xxxx
save_env -f /boot/default default
我的diygrubfm就是用的这个
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=420722&extra=page%3D1

嘉秋秋 发表于 2021-4-17 21:50:53

Climbing 发表于 2021-4-17 22:02:55

楼上这个“嘉秋秋”是混ID的,鉴定完毕。

最佳答案给3楼,本来应该是2楼,但他没提load_env的事,相当于话只说了半截,完整答案:
保存默认启动项:
set default=N
save_env -f /boot/default default

读取默认启动项:
load_env -f /boot/default default

不过,我还要试一下,还没经过实践检验。

Climbing 发表于 2021-4-18 00:22:58

经过试验,发现这个save_env要保存的文件不是随便一个文件就可以的(默认位置在/boot/grub/grubenv),它也是有格式上的要求的,而且,跟Grub4dos的default文件不同。首先,它要求是一个1024字节的文件。然后文件头应该还有一行:
# GRUB Environment Block这一行下面就保存的环境变量,例如:
default=1
然后再下面用#号填充到1024字节。

附件中我上传了两个grubenv文件,v0是使用Ubuntu下的grub-editenv grubenv create创建的空模板文件。v1则是使用grub-editenv grubenv set命令写入两个环境变量后的模板文件。


朱玛12345678 发表于 2021-4-18 00:25:01

嘉秋秋 发表于 2021-4-17 21:50
谢谢楼主的分享,辛苦了。

机发大量无意义回帖浪费论坛服务器资源,此ID作禁言处理。

江南一根葱 发表于 2021-4-18 10:09:36

文要对题啊,你问的是保存默认启动项,还有savedefault没说要载入默认启动项,{:1_201:}
而且我菜单本身支持被savedefault,也就是说,我的菜单和env是同一个文件
这个我常用来保存路径,还用来保存到ipxe脚本里,曾经被我玩坏了。

最初我在菜单本身加了# GRUB Environment Block,所以不需要load_env


zhjsn 发表于 2021-4-18 10:57:41

good

Climbing 发表于 2021-4-18 12:47:39

匿名者 发表于 2021-4-18 11:29
windows下也有grub-editenv的。

文件头既可以是 "# GRUB Environment Block" 也可以是 "#!ipxe      ...

首先感谢你补充了相关的资料。

问题是我对grub2并不熟悉啊,从google中搜索到的只有Linux下的资料。

真的,你在中文区域搜索,基本上没有什么完整的答案的。https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif
页: [1]
查看完整版本: wintoflash的grub2如何保存默认启动项?