无忧启动论坛

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

[讨论] 2011-10-30版本的map变化导致0PE 1.3.2(2011-10-30)异常

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-1 23:10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题如标题(前提是0PE.ISO连续存放,0PE.ISO不连续存放就正常)
我用以下菜单调用0PE,结果会提示Disk Read Error
default 16
timeout 10
if exist (hd2)+1 && map (hd2) (hd0) && map (hd0) (hd2)
if exist (hd1)+1 && map (hd1) (hd0) && map (hd0) (hd1)
find --set-root /BOOT/PE.ISO
fontfile /BOOT/FONTS.GZ
title 08. 0PE v1.3.2
chainloader /BOOT/GRLDR(0PE自带grldr)

必须取消紫色字体部分才能正常使用,而2011-08-30版本的0PE 1.3.1却没这方面问题,估计是近段时间无忧论坛上针对USB-ZIP处理的map模块变化导致该问题产生

[ 本帖最后由 rockrock99 于 2011-11-3 23:43 编辑 ]
2#
发表于 2011-11-1 23:16:36 | 只看该作者

回复 #1 rockrock99 的帖子

find --set-root /BOOT/PE.ISO
之前插入一句:map --hook
回复

使用道具 举报

3#
发表于 2011-11-1 23:31:20 | 只看该作者
无图无真相,太含糊了...不知所云.

报告BUG,要使用DEBUG ON状态,把出错的信息贴上来.
回复

使用道具 举报

4#
 楼主| 发表于 2011-11-2 09:43:36 | 只看该作者

回复 #2 zxw 的帖子

插入map --hook仍然不能解决问题。

如果在0PE的一级菜单处按空格,强制载入0PE到内存也不会出错,由此可证明是“map”与“map --mem”的差异导致

错误提示(部分信息):
  1. Loading /0PE/0PE.GZ...
  2. write --offset=200 (hd-1,0)/BAT/_ENV.BAT set PEISO=%PEISO%\r\n

  3. Error 25: Disk read error

  4. Press any key to continue...
复制代码

[ 本帖最后由 rockrock99 于 2011-11-2 09:51 编辑 ]
回复

使用道具 举报

5#
发表于 2011-11-2 12:09:56 | 只看该作者
确定是2011-10-30的版本?而不是2011-10-28的?

你的0PE也是最新版本?

PSEUDO曾给过我一个ISO,错误提示类似,2011-10-30的版本已经更新正常了。
也许是你的GRUB4DOS没有全部更新到最新版。

如果还是不行,可以提供一个可以重现问题的ISO,最小化版
回复

使用道具 举报

6#
 楼主| 发表于 2011-11-2 12:30:13 | 只看该作者

回复 #5 chenall 的帖子

已经全部都是最新版本了(2011-10-30)
回复

使用道具 举报

7#
发表于 2011-11-2 12:48:14 | 只看该作者
这个报错有点像29日我向chenall兄报告的bug,大致是:

用memdisk加载0PE.ISO为虚拟光盘并启动,光盘上grldr被引导进入内置菜单,菜单执行
map --mem /0PE/0PE.GZ (hd)
map --hook
后,
ls (hd-1,0)/异常。find看不到map --mem /0PE/0PE.GZ (hd)产生的仿真硬盘。

30日的grldr修正了此bug。

现在不是加载memdisk,而是交换磁盘,也出现类似异常。

据我了解其流程大致是(如果说得不对请rockrock99兄弟指正):
1. 执行grldr菜单,菜单中交换磁盘
2. 调用grldr,进入内置菜单,菜单执行
map /0PE.ISO (0xff)
map --hook
rootnoverify (0xff)
map --mem /0PE/0PE.GZ (hd)
map --hook
后,
ls (hd-1,0)/异常。find看不到map --mem /0PE/0PE.GZ (hd)产生的仿真硬盘。

rockrock99疑惑:加--mem则正常,或者用旧版grldr则正常,还有,前面不交换磁盘也正常。
回复

使用道具 举报

8#
 楼主| 发表于 2011-11-2 13:06:48 | 只看该作者

回复 #7 pseudo 的帖子

有一点说得不对:使用旧版0PE 1.3.1(2011-08-30)没有问题,第一层是仍然使用最新版grldr(2011-10-30)
回复

使用道具 举报

9#
 楼主| 发表于 2011-11-2 16:27:45 | 只看该作者
在USB-HDD强制为USB-ZIP模式的BIOS主板(不接硬盘)上,这故障更明显,即时取消了前面的map命令也会出错
default 16
timeout 10
find --set-root /BOOT/PE.ISO
fontfile /BOOT/FONTS.GZ
title 08. 0PE v1.3.2
chainloader /BOOT/GRLDR

在这平台执行find命令,直接会报错,报错信息(接上硬盘)
  1. grub>find
  2. (fd0)
  3. (hd0,0)
  4. (hdd0,4)
  5. (fd0,0)
  6. (fd0,3)

  7. Fatal! Inconsistent data read from (0x0)4151640087+63
  8. Fatal! Inconsistent data read from (0x0)4151640125+1
复制代码


几乎可以确定是2011-10-30版本的G4D有Bug了

再用旧版本(2011-06-01)测试,故障依旧,看来是BIOS Bug
此楼信息可以完全忽视!

[ 本帖最后由 rockrock99 于 2011-11-2 16:50 编辑 ]
回复

使用道具 举报

10#
发表于 2011-11-2 16:48:21 | 只看该作者

回复 #7 pseudo 的帖子

这样就比较清楚了,

我稍后做一个测试先...
回复

使用道具 举报

11#
发表于 2011-11-2 17:11:35 | 只看该作者
先试试这个,

建议之前有ZIP映射问题的也试试,这两个问题有相关联.

希望这次可以完美解决,否则可能只好恢复代码了.

对MAP的机制不是很了解.

[ 本帖最后由 chenall 于 2011-11-2 17:13 编辑 ]

GRUB4dos_TEST.zip

289.8 KB, 下载次数: 36, 下载积分: 无忧币 -2

回复

使用道具 举报

12#
 楼主| 发表于 2011-11-2 17:18:44 | 只看该作者

回复 #11 chenall 的帖子

2011-11-02测试版故障依旧

另外0PE.ISO里面仍然使用2011-10-30的版本,需联系P大才能做完美测试了

[ 本帖最后由 rockrock99 于 2011-11-2 17:20 编辑 ]
回复

使用道具 举报

13#
发表于 2011-11-2 17:21:10 | 只看该作者

回复 #12 rockrock99 的帖子

要把0PE里面的GRLDR也一起更新,否则肯定还是失败的.
回复

使用道具 举报

14#
 楼主| 发表于 2011-11-2 17:28:32 | 只看该作者

回复 #13 chenall 的帖子

用BootICE直接复制0PE的内置菜单,结果内置菜单不起作用,谁能帮忙下处理内置菜单
  1. ;Special MENU for 0PEterminal consoledebug offcheckrange 20111030:-1 read 0x8278 || clear && pause You should use grub4dos-0.4.5b-2011-10-30 or above. && rebootwrite 0x60368 0checkrange 0x80 read 0x8280 && write 0x60368 1if "%?_BOOT:~1,3%"=="hd0" write 0x60386 1find --devices=u && checkrange 0x80 calc *0x82B9&0xff && write 0x60368 1echo -e \n\nPress a key within 3 seconds:echo -e \n\t<Enter>--Continue(by default)\n\t<Esc>--Grub4Dos Commandline\n\t<Space>--Load 0PE.ISO into memory entirely\nset tkey= && pause --wait=3 && set /A tkey=*0x4CB00if not exist tkey commandlinedebug offset mapmem=if /i "%tkey%"=="0x20" set mapmem=1set tkey=#可在这里指定整体启动0PE.ISO的路径、名字。默认/0PE.ISO。指定的不存在,就找/0PE/0PE.ISO。if not exist PEISO set PEISO=/0PE.ISO#可改SRS路径。set SRS0PE=/SRS/call Fn.0 0 0x8217 | set /u menu0pe=checkrange 0x21 read 0x8280 && if not "%menu0pe:~-4%"==".0PE" pxe detect NotExistset menu0pe=write 0x60064 0write 0x6006C 0write 0x60130 0checkrange 0x21 read 0x8280 && write 0x60064 1set noacc=read 0x60064 && set noacc=1 ! if not exist (ud)/BOOT/GRUB/USB_ACC.0PE if not exist (224)/BOOT/GRUB/USB_ACC.0PE set noacc=1set curdev=%@root%if not exist noacc if exist (ud)/BOOT/GRUB/USB_ACC.0PE (ud)/BOOT/GRUB/USB_ACC.0PE --time-out-disable:0if not exist noacc if not exist (ud)/BOOT/GRUB/USB_ACC.0PE (224)/BOOT/GRUB/USB_ACC.0PE --time-out-disable:0rootnoverify %curdev%default 0timeout 0#0titleechoecho 0PE by Pseudoread 0x60064 || goto 4goto 5#1titlegoto 3#2titleset noacc=set mapmem=dd if=(md) of=(md) bs=1 count=8 skip=0x829c seek=0x60130echoread 0x60064 && pxe || echo -necho Device of 0PE.GZ:debug onroot || echo :(:(:debug offcheckrange 0xC0 read 0x8280 && write 0x6006C 1read 0x6006C && cdrom --stopecho Loading /0PE/0PE.GZ...map --mem ()/0PE/0PE.GZ (hd)map --hookread 0x6006C && cdrom --initread 0x6006C && map --hookwrite --offset=200 (hd-1,0)/BAT/_ENV.BAT set PEISO=%PEISO%\r\ncat --locate=/ --replace=\\ (hd-1,0)/BAT/_ENV.BATif exist ()/0PE/GRUB.0PE (hd-1,0)/BIN/FAT copy /o ()/0PE/GRUB.0PE (hd-1,0)/GRUB.EXE || pause /0PE/GRUB.0PE not found. && reboot#set burgcd=#if exist (224)/0PE/0PE.GZ set burgcd=1 && find --set-root %PEISO% && map %PEISO% (0xff) && map --hook && set burgcd= ! echo -n#if exist burgcd map --floppies=1 && map (fd0,0)%PEISO% (0xff) && map --hook && echo %PEISO% is in (fd0,0) && set burgcd= ! if exist burgcd pause --wait=5 %PEISO% not found. set PEISO=echo && configfile (hd-1,0)/BAT/M1.LST#3titleecho Loading %@root%%PEISO%...read 0x60064 && checkrange 0x21 read 0x82A0 && set mapmem=1if "%@root%"=="(cd)" set mapmem=1checktimeif not exist mapmem echo Direct map %PEISO% && map %PEISO% (0xff) || set mapmem=1 && echo Warnning: Fail to direct map %PEISO%, try to map with --mem.if exist mapmem echo Map %PEISO% with --mem && map --mem %PEISO% (0xff) || pause Error: Fail to map --mem %PEISO% (0xff). && rebootchecktimemap --hookrootnoverify (0xff)goto 2#4titleif exist (ud)/0PE/0PE.GZ rootnoverify (ud) && goto 2 ! echo -nif exist (ud)%PEISO% && rootnoverify (ud) && goto 1 ! echo -nif exist (ud)/0PE/0PE.ISO set PEISO=/0PE/0PE.ISO && rootnoverify (ud) && goto 1 ! echo -nif exist /0PE/0PE.GZ && goto 2 ! echo -nif exist %PEISO% && goto 1 ! echo -nif exist /0PE/0PE.ISO set PEISO=/0PE/0PE.ISO && goto 1 ! echo -nread 0x60064 || goto 5goto 6#5titlefind --devices=uh --set-root /0PE/0PE.GZ && goto 2 ! echo -nfind --devices=uh --set-root %PEISO% && goto 1 ! echo -nfind --devices=uh --set-root /0PE/0PE.ISO && set PEISO=/0PE/0PE.ISO && goto 1 ! echo -nfind --devices=cfp --set-root /0PE/0PE.GZ && goto 2 ! echo -nfind --devices=cfp --set-root %PEISO% && goto 1 ! echo -nfind --devices=cfp --set-root /0PE/0PE.ISO && set PEISO=/0PE/0PE.ISO && goto 1 ! echo -nread 0x60064 && goto 4goto 6#6titlepause Error:/0PE/0PE.GZ, %PEISO% and /0PE/0PE.ISO not found!
复制代码
回复

使用道具 举报

15#
发表于 2011-11-2 17:32:05 | 只看该作者

回复 #14 rockrock99 的帖子

用grubmenu导出再导入.
回复

使用道具 举报

16#
 楼主| 发表于 2011-11-2 17:37:59 | 只看该作者

回复 #15 chenall 的帖子

手头上没有grubmenu  :(
网上搜来,都是病毒、木马
FbinstTool处理菜单也是不行,只能等P大了

[ 本帖最后由 rockrock99 于 2011-11-2 17:57 编辑 ]
回复

使用道具 举报

17#
发表于 2011-11-2 18:08:23 | 只看该作者

回复 #16 rockrock99 的帖子

用winhex编辑
回复

使用道具 举报

18#
发表于 2011-11-2 18:14:06 | 只看该作者
晕了。。。。。。
看来还要更新。。。。。。
回复

使用道具 举报

19#
 楼主| 发表于 2011-11-2 18:16:28 | 只看该作者

回复 #17 zxw 的帖子

用UE编辑,发现两个版本的菜单偏移量不一致,还是等P大出手
回复

使用道具 举报

20#
发表于 2011-11-2 21:00:52 | 只看该作者
重新上传了一下,之前可能会有一些问题..

[ 本帖最后由 chenall 于 2011-11-2 22:32 编辑 ]

grubmenu.rar

7.13 KB, 下载次数: 71, 下载积分: 无忧币 -2

回复

使用道具 举报

21#
发表于 2011-11-2 21:05:14 | 只看该作者

回复 #19 rockrock99 的帖子

内置菜单写成这样:
if not exist /boot/grub/0pe.menu find --set-root /boot/grub/0pe.menu
configfile /boot/grub/0pe.menu
也是一样的
回复

使用道具 举报

22#
 楼主| 发表于 2011-11-2 21:26:07 | 只看该作者

回复 #20 chenall 的帖子

问题更大了
  1. map --mem ()/0PE/0PE.GZ (hd)

  2. Error 15:File not found

  3. Press any key to continue...
复制代码
回复

使用道具 举报

23#
发表于 2011-11-2 21:38:53 | 只看该作者

回复 #22 rockrock99 的帖子

这个应该是新版对ISO文件系统的修改导致的,我再看看..

前面的测试版本如果正常就行了.
回复

使用道具 举报

24#
 楼主| 发表于 2011-11-2 21:41:32 | 只看该作者

回复 #23 chenall 的帖子

好消息,使用grubmenu处理了0PE的内置菜单,
11#的测试版在USB-HDD的电脑上测试通过,问题基本解决
要等明天继续在USB-ZIP的电脑做进一步测试
回复

使用道具 举报

25#
发表于 2011-11-2 22:34:53 | 只看该作者
光盘的问题已经修正.请用新版本测试

http://bbs.wuyou.net/forum.php?m ... page=147#pid2330831
回复

使用道具 举报

26#
 楼主| 发表于 2011-11-2 22:59:30 | 只看该作者

回复 #25 chenall 的帖子

USB-HDD模式测试通过,USB-ZIP模式要等明天才能测试
回复

使用道具 举报

27#
 楼主| 发表于 2011-11-3 09:06:53 | 只看该作者
USB-ZIP模式也测试通过,但0PE 1.3.2内部似乎还有其它问题
载入USB_ACC.0PE:PE滚动条无限滚动
不载入USB_ACC.0PE:速度慢,且卡在Native Shell界面

[ 本帖最后由 rockrock99 于 2011-11-3 09:17 编辑 ]
回复

使用道具 举报

28#
发表于 2011-11-3 10:33:39 | 只看该作者
启动DOS7.1的问题还是与原来一样,没有改变。
回复

使用道具 举报

29#
发表于 2011-11-3 11:05:23 | 只看该作者

回复 #28 mygamexxx 的帖子

你应该努努力,破解这背后的秘密。

我就不相信,找不出根源。

通过多种测试,应该可以把问题孤立在某个范围之内。

比如说,你的盘只有 IO.SYS, MSDOS.SYS 和 COMMAND.COM ,别的都删除,看看怎么样?

然后,调整盘的大小,用 1.44M 来试验,看看又怎么样?

如果 1.44M 的没问题,就逐步加大容量,看看是不是 CHS 的什么参数影响了 MS-DOS 的成功启动?

如此等等,需要你做大量的基础工作。

工作可能枯燥无味,但最后,你有可能揭开这个谜底。否则,不可能揭开谜底。
回复

使用道具 举报

30#
发表于 2011-11-3 11:14:58 | 只看该作者

回复 #29 不点 的帖子

不点大大对g4d的bug总是不惜余力的。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-3 15:09

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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