无忧启动论坛

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

反馈一个 grldr.mbr 0.4.6a 的 bug

  [复制链接]
91#
发表于 2013-12-14 10:22:22 | 显示全部楼层
本帖最后由 不点 于 2013-12-14 10:23 编辑
312楼测试:
明基笔记本
命令行下输入命令,启动XPPE成功。
菜单下,已加参数,在cahinloader (0xff)  ,boot 后,返回Error 25:Disk read error


我猜你肯定搞错了。你是个大忙人,什么测试都靠你,你忙得不亦乐乎,难免阴差阳错。

你要明白,读出扇区是最要紧的。前面你已经证明,我们可以读出扇区了。

后来你说的 chainloader (0xff) 出错,这个 (0xff) 在内存里面,根本不应该出错。如果出错,也是在 grub4dos 开发者管辖范围内,是可以控制的。这不像 bios,因为 bios 根本就不可控制。

我怀疑你把版本搞错了。

回复

使用道具 举报

92#
发表于 2013-12-14 12:39:25 | 显示全部楼层
刚刚又发现一个毛病,修正了。

grub4dos-0.4.5c-2013-12-14.7z

269.11 KB, 下载次数: 3

再修正,请测试

点评

330楼测试: 菜单启动XPPE成功。 内置菜单如下:  详情 回复 发表于 2013-12-14 13:17
回复

使用道具 举报

93#
发表于 2013-12-14 14:10:09 | 显示全部楼层
你这个变态的电脑,很难支持 “就地仿真”。如果非要支持的话,还必须得给仿真代码动手术。你知道,仿真代码空间是很紧张的,这么折腾是不划算的。

放弃算了,对于这样的电脑,它能不死机就是万幸,不要让它支持 “就地” 仿真了。

至此,我感觉全部的问题都解决了。只有 yaya 还没确认 ud 的问题是否解决了。

大家可以等待 yaya 报告之后再大面积采用这个版本。我感觉这个版本已经解决了所有的问题了,比较可靠。

再测试两天,如果没问题,就可以上载到 svn 了。

回复

使用道具 举报

94#
发表于 2013-12-14 14:33:37 | 显示全部楼层
本帖最后由 不点 于 2013-12-14 15:56 编辑

关于 geometry --lba1sector 强制单扇区访问的说明。

这条命令放在内置菜单中,应该尽量靠前。它应该出现在所有那些有可能访问启动盘的命令之前。比如,肯定要放在 configfile 命令之前。

普通的外置菜单就不要放这条命令了,因为已经是马后炮,没有用了。

这条命令的设置,是为了防止启动盘不支持 “多扇区” 读盘而造成死机、假死,或 “Disk read error” 失败。

本地硬盘都支持多扇区读盘。因此,只有 USB 盘才会出现问题。

这条命令会让读盘速度变得很慢。

接下来我可能再设计一个参数,--lba127sector 用来恢复 127 扇区的读盘能力。这样,用户就可以在内置菜单中永远带上 --lba1sector ,而在外置菜单中(或者在内置菜单的 title 之后)使用 --lba127sector 来尝试正常的高速磁盘访问。




好了,这个版本开始支持 geometry --lba127sector 命令参数,用来撤销先前的 “单扇区读盘” 设置。在有问题的机器上,肯定不敢这么做,一做就会死机,或出现其他异常。

在正常机器上使用 geometry --lba1sector 是没问题的(不会导致死机、假死等问题),只是读盘速度变慢罢了。
在故障机器上使用 geometry --lba127sector 是不行的,会死机的。

在正常机器上可以先使用  geometry --lba1sector ,然后再使用  geometry --lba127sector 。

所以,为了代码的可靠性,您可以在内置菜单中使用  geometry --lba1sector 保证成功率,而在外置菜单中使用  geometry --lba127sector  切换到高速磁盘访问。

grub4dos-0.4.5c-2013-12-14.7z

269.2 KB, 下载次数: 6

为 geometry 命令增加了新的 --lba127sector 参数

回复

使用道具 举报

95#
发表于 2013-12-16 00:48:10 | 显示全部楼层
好事多磨,又让 yaya 发现了毛病。这次再更正,希望一切 OK。

grub4dos-0.4.5c-2013-12-15.7z

269.23 KB, 下载次数: 16

更正了又一个疏忽

回复

使用道具 举报

96#
发表于 2013-12-16 11:58:02 | 显示全部楼层
气死我了,究竟哪里有问题,还真是迷宫了。

其它测试情况怎样?比如,在非 ud 启动的情况;再比如,硬盘启动的情况,是否正常?

回复

使用道具 举报

97#
发表于 2013-12-16 16:46:15 | 显示全部楼层
2011yaya2007777 发表于 2013-12-16 12:26
其他启动正常。只是不明白,为什么不加 geometry --lba1sector 参数时,也是读得很慢。

这话依旧有歧义。

是不是说,其他情况虽然能启动,不死机,但统统都是很慢。goemetry 命令统统显示 1BA。即使在普通硬盘也是如此。

请回答,是不是这个意思?
回复

使用道具 举报

98#
发表于 2013-12-16 21:57:07 | 显示全部楼层
本帖最后由 不点 于 2013-12-16 22:04 编辑

第一个字母是 L 的小写,不是数字 1。

参数用大写字母表示是这样的:--LBA1SECTOR

当然,实际上是不支持大写的,必须用正确的小写字母。

其他问题我再研究研究。如果有可能,请继续报告新的异常,以便我能定位毛病。



对了,需要说明的是,如果 grub4dos 探测出 bios 不支持 127 扇区读,则自动屏蔽 127 扇区读,因而自动设置为 “单扇区读盘” 模式。

在 bios 根本不支持 127 扇区读盘的情况下,即使设置 --lba127sector,也无济于事,最后,其效果,还是要被自动纠正为正确的 --lba1sector 模式。

回复

使用道具 举报

99#
发表于 2013-12-17 07:26:51 | 显示全部楼层
现在,yaya 报告了 ud 启动时的故障。

我需要一个成功的案例。请大家测试,ud 启动有没有成功的。只要有一例成功,即可证明 grub4dos 的 ud 相关代码没问题。

另一方面,yaya 在非 ud 启动时,启动的详细步骤,我需要了解。有没有经过 grldr.mbr? 或者是直接用 PBR 来启动的?

yaya 还需要告知,目前 svn 上的 0.4.5c 11月30日 版是否正常。

目前怀疑,yaya 的主板 bios 又有特殊性。它很可能不允许同时采用 CHS 和 LBA 两种模式访问,而只能使用其中的一种。一旦混合使用,它就给出不正常的表现。

就像 mygamexxx 的问题一样,这个问题最后肯定可以解决。我们逐步缩小范围,最后必然能够找出问题的根源。

目前就需要这些信息,请大家提供。

回复

使用道具 举报

100#
发表于 2013-12-17 10:34:59 | 显示全部楼层
ud 方式的 0.4.5c 11月30日 版的情况如何?

回复

使用道具 举报

101#
发表于 2013-12-17 10:48:53 | 显示全部楼层
非 ud 启动是直接用 PBR 来启动的。
目前 svn 上的 0.4.5c 11月30日 版是正常的。启动后是 LBA。


分析,从 PBR 启动时,只使用 LBA 模式读盘,不存在混合读盘的现象,所以,我们新的测试版就一切正常(只不过设置为单扇区读盘模式了)。

因此,问题的焦点仍然对准着:CHS 和 LBA 混合读盘,有可能造成 BIOS 系统的紊乱。

接下来我需要研究,fbinst 的启动代码,是否存在混合读盘的现象。

回复

使用道具 举报

102#
发表于 2013-12-17 11:06:28 | 显示全部楼层
最近 svn 上的版本,内置菜单的显示时间设置为 9 秒,也捕捉不到。但是进入命令行,执行 configfile (md)4+4 ,显示时间可以到 9 秒。


我来解释一下这个现象。可能是因为内置菜单里面的 configfile 命令引起的。它要切换到外部菜单。如果外部菜单存在,那就不会执行原来内置菜单里面的 timeout 命令了。即使把 timeout 命令作为内置菜单的第一条命令也不行,因为外置菜单要接管控制,timeout 的设置只能对外部菜单有效,而无法返回到内置菜单了。除非外部菜单不存在,这时候 timeout 命令才真正起作用。

我拿不准上述解释是否正确。我只是一种猜测罢了。
回复

使用道具 举报

103#
发表于 2013-12-17 11:34:22 | 显示全部楼层
2011yaya2007777 发表于 2013-12-17 11:09
ud 方式的 0.4.5c 11月30日 版正常。

好的,明白了。不会是混合 CHS 和 LBA 模式的问题了。继续找毛病。
回复

使用道具 举报

104#
发表于 2013-12-17 13:01:09 | 显示全部楼层
根据 yaya 的测试报告,这次改进了一下。读 127 扇区,失败时重试 3 次。这估计可以解决默认时被当作 “单扇区访问” 来对待的问题。

grub4dos-0.4.5c-2013-12-17.7z

269.29 KB, 下载次数: 11

改进了一点点,继续测试

回复

使用道具 举报

105#
发表于 2013-12-17 17:52:18 | 显示全部楼层
谢谢 yaya,终于找到了一处疏忽,传递参数的 DI 寄存器没有保护,导致参数是随机值,所以其效果就是胡乱设置了 “单扇区访问” 标志。

这次应该好了。

grub4dos-0.4.5c-2013-12-17.7z

269.26 KB, 下载次数: 8

又找到一个毛病,请确认问题是否解决

点评

我的华硕及精英台式机主板 UD启动没有发现异常。  详情 回复 发表于 2013-12-17 21:41
回复

使用道具 举报

106#
发表于 2013-12-24 16:44:01 | 显示全部楼层
在 grub4dos 中自动判断 u 盘是否在特定环境支持读 127 扇区,不可取。


如果在访问磁盘之前加上 geometry --lba1sector 就不会尝试读 127 扇区了。

如果不加这个参数,则对于支持 LBA 的情况,肯定是要读 127 扇区的,死了就死了,没办法。否则如果永远都使用单扇区读,那得慢死了,这会把所有的人都吓跑的。

geometry --lba1sector 的意思是告诉 grub4dos,这个盘不支持 127 扇区读。grub4dos 得到这个信息之后,就会避免尝试 127 扇区读,而只用单扇区读。

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-9 07:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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