无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4531|回复: 7

grub4dos 0.45c 0107 ud导致的cat --locate出错的bug

[复制链接]
发表于 2014-4-30 10:05:46 | 显示全部楼层 |阅读模式
本帖最后由 sratlf 于 2014-4-30 15:14 编辑

坛友2010guoguo发现的一个疑似bug  讨论过程可以见我的帖子#2544到#2549   同时感谢2010guoguo的辛苦测试
在这个帖子里我重新整理下  有条件的也可以帮忙测试下  看是不是普遍问题  测试内容见我的帖子#2550测试文件见附件  是个批处理和img合并的文件  批处理见下(已精简没用内容)  

  1. !BAT
  2. debug 1
  3. set runs=%~nx0
  4. set runpath=%~p0

  5. ::交换磁盘并更新,避免交换后ud内容丢失
  6. read 0x82b8
  7. read 0x82b9
  8. map (hd0) (hd1)
  9. calc *0x82b9=*0x82b9&0xffffff00|0x81
  10. map (hd1) (hd0)
  11. map --rehook


  12. ::分离img文件并map到fd3
  13. set loadfile=%@root%%%runpath%%%runs%
  14. map --mem=0x20000%loadfile% (rd)
  15. cat --locate=\x1f\x8b --number=1 (rd)+1
  16. calc *0x82d8=*0x82d8-%?%
  17. calc *0x82d0=*0x82d0+%?%
  18. map --mem (rd)+1 (3)
  19. map --rehook
  20. exit
复制代码

如果不执行 calc *0x82b9=*0x82b9&0xffffff00|0x81 这条命令更新ud位置  下面命令的执行都没有错误

执行了以后  cat --locate=\x1f\x8b --number=1 (rd)+1  的结果在0107版和之前的版本(0724)上会出现差异  原图可以看帖子#2549
0107版得到的结果为0x232e  之前版本得到的结果为0x24f   0107版在执行  map --mem (rd)+1 (3)  时报错  之前版本不会

用同一个测试文件  我自己测试cdrom启动  两个版本得到的都是0x24f   没有任何报错   会不会是0107版的某些改动引起了bug


更新:#2554正常版本的截图
#2559  0107版出错的截图
对比#2549的截图会发现  
1,不执行calc *0x82b9=*0x82b9&0xffffff00|0x81  更新ud位置的话  两个版本cat --locate得到的结果是相同的  可以正常执行map --mem (rd)+1 (3)
2,更新ud位置的话  0107版以前的cat --locate得到的结果正常  0107版得到的结果始终为  0x232e
 楼主| 发表于 2014-4-30 13:03:53 | 显示全部楼层
2014.1.17版本的grldr  未更新ud位置

更新ud位置

回复

使用道具 举报

 楼主| 发表于 2014-4-30 13:07:01 | 显示全部楼层
另一个测试结果  同样0107版0.45c  更新ud位置结果

未更新ud位置结果



回复

使用道具 举报

发表于 2014-5-11 09:25:55 | 显示全部楼层
你能否精确地说出第一个出现问题的版本的日期?元月7日之前首次出现错误的版本日期是哪一天?
回复

使用道具 举报

发表于 2014-5-11 09:29:36 | 显示全部楼层
本帖最后由 不点 于 2014-5-11 09:34 编辑

新版本不需要手动更新 ud 盘符,会自动处理好。

你试试不要改动 ud 盘符,看看是否正常了?

详细说明,map 后,ud 无法访问的问题,已经彻底解决,不需要用户去手动处理了。新版 grub4dos 会自动处理好,用户不可以手动更改 ud 的盘符信息。如果用户手动更改,反而会造成 grub4dos 内部 ud 处理的错误。

点评

有过测试 不更新就没问题 这个是什么时候的改变。。。  详情 回复 发表于 2014-5-11 18:17
回复

使用道具 举报

 楼主| 发表于 2014-5-11 18:17:19 | 显示全部楼层
不点 发表于 2014-5-11 09:29
新版本不需要手动更新 ud 盘符,会自动处理好。

你试试不要改动 ud 盘符,看看是否正常了?

有过测试  不更新就没问题  这个是什么时候的改变。。。
回复

使用道具 举报

发表于 2014-5-12 19:06:35 | 显示全部楼层
是我改的。有一次,我在看 ud 驱动代码的时候,发现这个问题能够改进,于是就给 ud 驱动打了补丁。估计有半年左右了吧。

点评

好吧 明白了  详情 回复 发表于 2014-5-13 09:27
回复

使用道具 举报

 楼主| 发表于 2014-5-13 09:27:11 | 显示全部楼层
不点 发表于 2014-5-12 19:06
是我改的。有一次,我在看 ud 驱动代码的时候,发现这个问题能够改进,于是就给 ud 驱动打了补丁。估计有半 ...

好吧   明白了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 10:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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