无忧启动论坛

标题: grub4dos 0.45c 0107 ud导致的cat --locate出错的bug [打印本页]

作者: sratlf    时间: 2014-4-30 10:05
标题: grub4dos 0.45c 0107 ud导致的cat --locate出错的bug
本帖最后由 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

作者: sratlf    时间: 2014-4-30 13:03
2014.1.17版本的grldr  未更新ud位置

更新ud位置


作者: sratlf    时间: 2014-4-30 13:07
另一个测试结果  同样0107版0.45c  更新ud位置结果

未更新ud位置结果




作者: 不点    时间: 2014-5-11 09:25
你能否精确地说出第一个出现问题的版本的日期?元月7日之前首次出现错误的版本日期是哪一天?
作者: 不点    时间: 2014-5-11 09:29
本帖最后由 不点 于 2014-5-11 09:34 编辑

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

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

详细说明,map 后,ud 无法访问的问题,已经彻底解决,不需要用户去手动处理了。新版 grub4dos 会自动处理好,用户不可以手动更改 ud 的盘符信息。如果用户手动更改,反而会造成 grub4dos 内部 ud 处理的错误。
作者: sratlf    时间: 2014-5-11 18:17
不点 发表于 2014-5-11 09:29
新版本不需要手动更新 ud 盘符,会自动处理好。

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

有过测试  不更新就没问题  这个是什么时候的改变。。。
作者: 不点    时间: 2014-5-12 19:06
是我改的。有一次,我在看 ud 驱动代码的时候,发现这个问题能够改进,于是就给 ud 驱动打了补丁。估计有半年左右了吧。
作者: sratlf    时间: 2014-5-13 09:27
不点 发表于 2014-5-12 19:06
是我改的。有一次,我在看 ud 驱动代码的时候,发现这个问题能够改进,于是就给 ud 驱动打了补丁。估计有半 ...

好吧   明白了




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3