无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5506|回复: 54
打印 上一主题 下一主题

grub4dos-0.4.6a-2023-06-09,grub4dos-0.4.6a-2023-06-10无法出现菜单menu.lst 问题

[复制链接]
1#
发表于 2023-6-10 23:21:36 | 显示全部楼层
我觉得有必要发个贴子,置顶,告诉反馈问题的朋友,开发者需要了解哪些方面的问题,比如g4d/g4e版本,主菜单,硬盘MBR/GPT情况(若有必要)。这方面,我感觉英国人steve6375,还有那个JP95Git,那个墨西哥的alacran(Taviruni),反馈问题都超级棒,感觉给开发者节省了大量的时间和精力。
为啥中国人开发的引导器,国外网友反馈问题到位,国内的一些网友指向性精准反馈并能帮助开发者定位问题的人,太少了。

点评

精辟,起码将原理说清楚,易于入门!! 很多人是云里雾里,不知其所以然  发表于 2023-10-27 08:01

评分

参与人数 2无忧币 +6 收起 理由
rbwrbw + 1 说得到位
dfw9 + 5 很给力!

查看全部评分

回复

使用道具 举报

2#
发表于 2023-6-11 14:59:58 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-6-11 15:27 编辑
2011yaya2007777 发表于 2023-6-11 13:08
14#的截图已经说明问题。在grub_menu目录下,只有main_menu.lst和_mainmenu.lst,而没有mainmenu.lst。犯了 ...

实测楼主反馈的问题属实。为了简化问题,实测结果如下:
grub4dos-0.4.6a-2023-06-10版本,menu.lst
title mainmenu.lst
find --set-root --ignore-floppies --ignore-cd --devices=hf /boot/grub4/grub_menu/mainmenu.lst
configfile /boot/grub4/grub_menu/mainmenu.lst



/boot/grub4/grub_menu/mainmenu.lst菜单,我确定存在,UTF-8无BOM格式。

title   DiskGenius
find--set-root /boot/program/DGDOS_ISO.iso
map /boot/program/DGDOS_ISO.iso (0xff) || map --mem /boot/program/DGDOS_ISO.iso
map --hook
chainloader (0xff)


vmware虚拟机测试,从主菜单进入子菜单直接死机了。
手工输入命令也是一样。
我感觉是configfile命令有问题。我记得原来sunsea超版针对g4e也提出过类似的问题,还有之前在高版本的ubuntu环境下编译,yaya自己也提出过类似的问题,不清楚是否与编译环境有关,不清楚yaya是否修复了该问题,请再次确认下。
http://bbs.wuyou.net/forum.php?m ... 5896&fromuid=298214

grub4dos-0.4.6a-2016-12-23版本测试,正常。√
grub4dos-0.4.6a-2023-03-29版本测试,死机。
grub4dos-0.4.6a-2023-03-06版本测试,死机。
grub4dos-0.4.6a-2023-03-01版本测试,死机。
grub4dos-0.4.6a-2023-02-28版本测试,死机。
grub4dos-0.4.6a-2023-02-23版本测试,死机。
grub4dos-0.4.6a-2022-12-22版本测试,正常。√
grub4dos-0.4.6a-2022-11-28版本测试,正常。√
grub4dos-0.4.6a-2022-10-26版本测试,正常。√
很显然,2023年之后的版本,从grub4dos-0.4.6a-2023-02-23开始,应该是引入了bug。

看了下changelog:
grub4dos-0.4.6a-2023-02-23.7z
发表于 2023-02-23
更新信息(update log):
2023-02-23 7173aed@yaya . 增加外部定时器。(应用之一,外部命令进度条ProgressBar)。
修正压缩菜单最后一行没有换行符而缺失的问题。
修正切换视频模式菜导致单框失误的问题。
调整函数的内存使用,解决屏幕分辨率大于1600*1200时覆盖字库的问题。现在字体尺寸、屏幕分辨率都不受限制。

好像有问题。

linux64 位-2023-06-11-14-46-10.png (5.14 KB, 下载次数: 63)

linux64 位-2023-06-11-14-46-10.png

linux64 位-2023-06-11-14-46-22.png (4.7 KB, 下载次数: 63)

linux64 位-2023-06-11-14-46-22.png

linux64 位-2023-06-11-15-03-29.png (5.3 KB, 下载次数: 59)

linux64 位-2023-06-11-15-03-29.png
回复

使用道具 举报

3#
发表于 2023-6-11 15:49:38 | 显示全部楼层
2011yaya2007777 发表于 2023-6-11 15:20
问题已经重现。
qemu虚拟机测试,执行:
     configfile  /boot/grub4/grub_menu/mainmenu.lst
UEFI版本
grub4dos-for_UEFI-2022-12-27测试正常√
grub4dos-for_UEFI-2023-02-23虚拟机测试死机,提示异常并重启。
情况应该跟g4d类似,是configfile引入了bug。


QQ拼音截图20230611154456.png (12.61 KB, 下载次数: 83)

QQ拼音截图20230611154456.png
回复

使用道具 举报

4#
发表于 2023-6-12 12:01:01 | 显示全部楼层
不点 发表于 2023-6-12 11:30
在 legacy bios 的情况,grub4dos 里面的许多处理,我是比较了解的。

相关的问题,我觉得,有必要给您 ...

不太像是iftitle引起的问题呀?

title   DiskGenius
find--set-root /boot/program/DGDOS_ISO.iso
map /boot/program/DGDOS_ISO.iso (0xff) || map --mem /boot/program/DGDOS_ISO.iso
map --hook
chainloader (0xff)

我在21楼给的简化菜单,就是为了排除这样子的特殊菜单问题,没有采用iftitle,照样死机啊。

        

点评

有个小毛病,不知您是否留意: find 和 --set-root 之间,缺少一个空格,属于命令格式错误。  发表于 2023-6-12 12:47
版主大人辛苦啦!您在 grub4dos 上的贡献,是无可替代的。深表敬意! 我没能讲清楚。其实,iftitle 只是导致死机的一种可能性。 死机的可能性有很多,不一定是 iftitle 导致的。 我只是说,请大家尽量不要  详情 回复 发表于 2023-6-12 12:35
回复

使用道具 举报

5#
发表于 2023-6-12 13:58:10 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2023-6-12 11:06
感谢liuzhaoyzz超级版主的精准定位。确实是由于增加外部定时器,挤占了配置文件的空间。配置文件+路径超 ...

用这个版本,我测了下,g4d可以进菜单了,还没有深度测试,我要开会了。
回复

使用道具 举报

6#
发表于 2023-6-12 14:18:40 来自手机 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-6-13 18:28 编辑
不点 发表于 2023-6-12 12:35
版主大人辛苦啦!您在 grub4dos 上的贡献,是无可替代的。深表敬意!

我没能讲清楚。其实,iftitle 只 ...

不点大太客气了,绵薄之力不足挂齿,开发者们才是贡献最大,付出最多的啊。


不点2003年创立了g4d分支,很多年了一直在与各种buggy主板作斗争。


bean让bootmgr支持直接启动grldr.mbr,还有很多贡献,比如NTFS驱动支持,pxe等,用fbinst加强了USB-CHS模式下启动成功率,完善了g4d的中文说明文档。


chenall给g4d带来了丰富的批处理扩展,改进了pxe/ipxe支持。现在从前台转向了后台,也在做贡献。


2007yaya7777一个人抗下了很多开发维护任务,多线作战,run模块/g4d/g4e。

wintoflash为g4e写了wimboot/NTLOADER,方便直接启动pe.iso/wim/vhd/RAMOS,将g4d/g4e带入了高版本gcc编译器,引入EFI handover协议让kernel/initrd可以启动linux,引入了loadfile2协议,为未来linux高版本内核做好了准备。


......


点评

开发者们确实很尽力,很有水平,当然在某种程度上都是不可替代的。Gandalf 和 Roy 两位大神也亲自主持过开发维护工作【记忆力不好,可能会有遗忘】。我觉得,不同的人,在不同的时间,不同的地点,做了不同的事情。  详情 回复 发表于 2023-6-12 17:52
回复

使用道具 举报

7#
发表于 2023-6-12 18:53:35 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-6-12 19:35 编辑
2011yaya2007777 发表于 2023-6-12 11:06
感谢liuzhaoyzz超级版主的精准定位。确实是由于增加外部定时器,挤占了配置文件的空间。配置文件+路径超 ...

怎么我测试,最长可以支持57个字符的长路径?/boot/grub4/grub_menu/grub_menu/grub_menu/mainmenu222.lst

title /boot/grub4/grub_menu/grub_menu/grub_menu/mainmenu222.lst
find --set-root --ignore-floppies --ignore-cd --devices=hf /boot/grub4/grub_menu/grub_menu/grub_menu/mainmenu222.lst
configfile /boot/grub4/grub_menu/grub_menu/grub_menu/mainmenu222.lst

超过57个字符的长路径,会提示“Select item cannot fit into memory”,这个提示容易引起歧义,什么叫做不能加载到内存,用户可能会问,我的内存大着呢,怎么会不能加载到内存呢?
建议修改为"Configfile path and filename is too long to load(<58)"之类的不会引起歧义的提示语。
如果汇编空间有限,可以精简为"Configfile path too long(<58)"



linux64 位-2023-06-12-19-22-07.png (15.53 KB, 下载次数: 45)

linux64 位-2023-06-12-19-22-07.png

linux64 位-2023-06-12-18-48-31.png (3.67 KB, 下载次数: 47)

linux64 位-2023-06-12-18-48-31.png
回复

使用道具 举报

8#
发表于 2023-6-12 19:10:15 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2023-6-12 19:32 编辑
不点 发表于 2023-6-12 17:52
开发者们确实很尽力,很有水平,当然在某种程度上都是不可替代的。Gandalf 和 Roy 两位大神也亲自主持过 ...

Gandalf 和 Roy我不是很了解,没有过交流,他们也是前辈了。
“他们早已不在江湖,但江湖依旧流传着他们的传说”!
Gandalf的个人资料 - 上次活动时间2012-1-15 17:21
http://bbs.wuyou.net/home.php?mod=space&uid=50823&do=profile

http://bbs.wuyou.net/forum.php?m ... 3958&fromuid=298214
grub4dos 在解决内存冲突方面,作了多次的努力。最早的努力,是 gandalf 发现 grub4dos 总是莫名其妙地死机,然后,我们了解到,那是因为 gnu grub legacy 的保护模式堆栈位于较高内存地址造成的。当某些程序片段使用较多堆栈时,就要发生死机了。对此,我们作了两项改进,其一是把保护模式堆栈撤销,与实模式堆栈合并,只保留一个堆栈;其二是把c语言函数内的数组和局部函数都移出到函数体之外,不再占用堆栈。后来又作了一项改进,那就是,把递归函数修改成非递归的函数,用循环来代替递归,大大减轻了堆栈的负担。所以,后来再也没有出现莫名其妙死机的问题了。

http://bbs.wuyou.net/forum.php?m ... 1715&fromuid=298214
gandalf 提供的 scdrom 代码,好像存在内存冲突,不稳定,后来由我移植 smart boot manager 的 cdrom 代码,替换了 gandalf 的代码。同样是 gandalf,他所做的基于 vga 图形模式的中文化代码则非常稳定,我们一直保留了下来,直到我们彻底转向 vbe 之前。cdrom 驱动支持是 gandalf 首先引进的,他有首创之功,不可抹杀。

      

点评

中文支持是 gandalf 实现的。没有 gandalf,就没有中文支持。 中文支持,vga 图形代码的编写,都是很困难的, 我是不可能有这样的神力的,我会躲得远远的。 后来,我仔细研读了 gandalf 的代码,居然能看懂  详情 回复 发表于 2023-6-12 22:56
回复

使用道具 举报

9#
发表于 2023-6-13 18:37:27 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2023-6-13 17:46
实际测试,全路径,包括(HDx,y),可以有72个字符。错误提示修改了。


前一个版本怎么我测试只支持57个字符?你改过的版本支持72个字符是吗?请传上来。我在官网没看到release
回复

使用道具 举报

10#
发表于 2023-6-13 21:25:55 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2023-6-13 20:05
我修改了一下限制字符0x41为0x49。你在命令行执行:
echo --img=0x8210=128
从0x8217至0x825f是配置文件 ...

你说的这些是程序内部的处理,不太懂。一般地用记事本编辑的菜单尾部会有\0字符吧?
回复

使用道具 举报

11#
发表于 2023-6-14 10:14:53 | 显示全部楼层
感谢两位答疑!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-8 00:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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