![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 03:14 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » 报告GRUB的一个BUG! |
| 可打印版本 8,866 / 69 |
| 第31楼 Wengier | 发表于 2006-06-14 12:41 |
| 系统支持 发帖 10,521 积分 27,736 | |
Originally posted by 不点 at 2006-6-14 08:05 AM: 嗯,又试了一下最新版本,发现VMWare中的此问题也已解决,可见就是这个BUG引起的。不过仍然发现有一个问题(在VPC中也有出现),那就是找不到/menu.lst(MENU.LST文件位于在C:\下),但(hd0,0)/menu.lst则可以。比如说启动GRUB.EXE时不指定任何命令行参数或在命令行下指定--config-file=/menu.lst的话会失败(随后将自动转入GRUB命令行),而在命令行下指定--config-file=(hd0,0)/menu.lst则可以正常显示menu.lst中的菜单。 |
|
| 第32楼 不得不爱 | 发表于 2006-06-14 13:22 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
我刚才试了下,我的问题已经解决了!不知道中文版好久有?
|
|
| 第33楼 不得不爱 | 发表于 2006-06-14 13:28 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
还有连原来GRUB在启动时会关闭小键盘灯的问题也解决了!
|
|
| 第34楼 不得不爱 | 发表于 2006-06-14 13:34 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
不过现在怎么/menu.lst会无条件执行?如果有/menu.lst内在菜单就不会出现,这是怎么回事?
|
|
| 第35楼 不点 | 发表于 2006-06-14 15:52 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
wengier: 你说到的问题,我会再看看的。
qwe1234567:不要等中文版,估计很快会发布 pre6 的。 本来就是这样设计的,当 menu.lst 和 GRLDR 在同一分区、同一根目录时,优先执行它;也就是说,它在 preset_menu 之前就要检查执行了。 --------- 这还没完,还得麻烦你们继续测试,更改之后我会来这里通报的。你们刚刚下载到的,是一个最保守的版本,把 A20 控制中有关重启键盘的指令全都去除了。你们的机器是正常了,但 USB 键盘的机器可能就遭殃了。所以,还得再打开某些设置,看看怎么样可以照顾更多的机器。这恐怕要反复多次。 |
|
| 第36楼 不得不爱 | 发表于 2006-06-14 16:00 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
pre5可以把它去掉吗?有需要我们继续测试的尽管说!
|
|
| 第37楼 不点 | 发表于 2006-06-14 17:16 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
刚刚上载了一个中文版的,你可以暂时用用。
我在等待 DVHZ 的测试情况。根据他的测试,再做相应调整。 |
|
| 第38楼 不点 | 发表于 2006-06-15 11:24 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
好了,DVHZ 和 qwe1234567 的问题都已经彻底解决了,感谢您们两位不辞辛劳大力协助!现在还有 wengier 的问题没能解决。这个问题仍然很顽固,比 qwe1234567 所说的问题还要顽固。同样,如果该问题发生在我的机器上,我比较有把握的说,能够解决它。但是,发生在别人的机器上,我就缺少调试的手段了。
该问题产生的原因,应该是 GNU GRUB 设计上的一个缺陷造成的。GNU GRUB 在读取磁盘扇区之后,要对所读取的磁道进行缓冲,也就是说,保留一份放在内存中,以便下次读取同一磁盘空间的时候,能够避免访问磁盘。 可是这个机制带来的 BUG 非常多,而且这样的 BUG 都非常隐蔽。GNU GRUB 之所以败在 LILO 手下,有三大根本原因(我的观点):一个是 A20 门控问题,一个是引导路线曲折蜿蜒(BUG隐蔽而且多多)所带来的各种不良后果,再一个就是糟糕的磁盘缓冲设计。到目前为止,前两个问题都在 GRUB4DOS 中得到了比较好的解决。如果我们能够拔掉这最后一个钉子,那么就为 GRUB4DOS 的普及扫清障碍了。 实际上,GRUB 中连续访问同一个磁盘文件的现象并不多见,所以,磁盘缓冲其实是多此一举,没什么必要性,也因此它并不能给磁盘访问带来足够的好处,反而是个累赘,因为多了一道手续,既要为缓冲区保留可贵的内存,又要复制磁盘扇区到缓冲区,实际上反而是减缓了磁盘访问的效率。 可见,如果把磁盘缓冲这块赘肉割去,那么 GRUB 的代码结构和内存占用就能够更加精简、更加合理以及更加有效率。不过这是我们未来可以考虑的问题,现在顾不上这些了。 ---------- wengier 如果能制作一个磁盘映像来反复再现该问题,那就比较容易解决了,因为我可以亲自去调试。或者,wengier 如果能有时间的话,也可以自己调试。调试从 stage2.c 入手,其中有下面的代码: /* Try config_file */ if (*config_file) is_opened = grub_open (config_file); 首先应该在这后面添加一条打印语句,看看 grub_open 的操作是成功了还是失败了(应该是失败了,否则不会有问题;但还是要打印出来确认一下)。 既然是失败了,那我们就要跟踪到 grub_open 的函数体内部,在里面添加其它打印命令,看看究竟是什么语句导致 grub_open 返回代表失败的 0 值的。如果还要调用其它函数,那就继续跟踪进去,这样一步一步,反复试验,顺藤摸瓜,总可以把那个 BUG 揪出来的。 |
|
| 第39楼 不得不爱 | 发表于 2006-06-15 14:59 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
中文版已经收到。
现在我还有个问题,就是如果从可可启动光盘启动硬盘后,如果不按方向键让内植菜单停下来手工选择正确的寻找路径的话,GRUB就会进入GRUB命令提示符出现: find --set-root /menu.lst GNU GRUB version 0.97 (639K lower / 130048K upper memory) 这个问题可以解决吗? [ Last edited by qwe1234567 on 2006-6-15 at 15:14 ] |
|
| 第40楼 不点 | 发表于 2006-06-15 15:52 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
我来分析一下。在硬盘中找 /menu.lst 和 /boot/menu.lst 都失败了,它们应该是不存在。
/grub/menu.lst 找到了,它在 (hd0,4) 分区,也就是第一个逻辑分区。 当执行 configfile /grub/menu.lst 时,出现了未知错误,导致打开该文件失败。 因此我感觉这个 BUG 和 wengier 说的是一样的。你们能否制作一个硬盘和光盘映像,让我也可以再现这一情况呢? 制作映像之后,要先在你们自己的虚拟机下运行,确信能够再现这一错误情况,然后才可以传给我。 通过你们的描述,我越发觉得应该将 GRUB 的磁盘缓冲摘除掉了!它所带来的坏处,简直没完没了、无穷无尽了。 |
|
| 第41楼 不得不爱 | 发表于 2006-06-15 17:13 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
这个问题嘛,你就用我上次给你的硬盘映像就可以了,光盘映像嘛随便找一个就可以了,反正你只要从光盘启动后选择从硬盘启动就可以了!
|
|
| 第42楼 Wengier | 发表于 2006-06-15 23:56 |
| 系统支持 发帖 10,521 积分 27,736 | |
Originally posted by 不点 at 2006-6-15 03:52 PM: 呵,基本上就是这种情况。经一些测试和研究后本准备现在上来说说具体情况的,没想到让qwe1234567先说了(主要是这几天太忙,刚才才有点时间继续测试)。。menu.lst是在C:\上,也就是(hd0,0)/上。实现方法很简单,比如说用MS-DOS 7.10完整安装版的光盘版启动,出现启动菜单后选3从硬盘启动,启动后再运行GRUB的话就会出现这种结果,而且一定会出现。 |
|
| 第43楼 不得不爱 | 发表于 2006-06-16 20:19 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
Originally posted by Wengier 你这说的问题不会和我说的一样吧? |
|
| 第44楼 fastslz | 发表于 2006-06-16 21:21 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
Originally posted by qwe1234567 at 2006-6-15 14:59: 这个现象我也经常出现,还有装有grub的IMG文件在光盘上也无法启动,好象有EasyBoot就被排斥了。用0.95的stage1 stage2做成EasyBoot可引导IMG是行的,可能是我比较菜看了好多此类贴子也试了好几种办法,0.97还是没办法运行在光盘上。 这几天装了个虚拟机感觉批处理或某个程序还要照顾能否在虚拟机运行还是不习惯,相比之下不点大师伟大的多! |
|
| 第45楼 Wengier | 发表于 2006-06-16 23:18 |
| 系统支持 发帖 10,521 积分 27,736 | |
Originally posted by qwe1234567 at 2006-6-16 08:19 PM: 看起来是一样的吧,只不过是我先说的。等我准备来详细报告情况时,你又说了。 |
|
| 上一页 1 2 3 4 5 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |