无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
12
返回列表 发新帖
楼主: 不点
打印 上一主题 下一主题

需要各位帮忙测试 win98 下可否访问虚拟内存盘。

[复制链接]
31#
发表于 2013-1-7 17:30:55 | 只看该作者
用不点大大01.06版的grub测试的结果:

1、用grub引导98,若BIOS中A20设置为Normal,则出现不能加载himem.sys的情况,而且多了不能加载EMM386的情况(见下图),若A20设置为Fast,则一切正常



2、直接引导98,按F8选择第5项,再加载grub,计算机会自动重启;按F8选择第6项安全模式,加载grub后,若BIOS中A20为Normal,会出现不能加载himem.sys的情况,且也多了不能加载EMM386的情况(同上),若A20设置为Fast,则一切正常。

这样的结果,应该符合不点大大修改了grub A20门地址线后的预期吧?
回复

使用道具 举报

32#
 楼主| 发表于 2013-1-8 00:31:43 | 只看该作者
关于 Unable to control A20 line! 的消息,微软有个解释在如下网页:

http://support.microsoft.com/kb/96711

你可以参考一下,看看能否帮助你解决问题。



你的这个测试结果,有点出乎意料,但又似乎在意料之中。

看来 grub4dos 不能随便去碰 A20 。碰得不对的话,将会出问题。

grub4dos 原先是采用先 Normal 后 Fast 的方式,结果不行。后又让你测试先 Fast 后 Normal 的控制方式,结果也遇到问题。

这暗示,如果实际需要用 Normal,则不可以用 Fast。反之,如果实际上需要 Fast,则不可以用 Normal。

明天我再想办法编译一个测试版。

另外,请贴出你的 config.sys 和 autoexec.bat 的内容。

---------------------

请补充测试一项内容:

不管是新版还是旧版,给启动 win98 的那条 chainloader 命令添加 --disable-a20 参数,即:

chainloader --disable-a20 /io.sys

试试这样是否能够同时应对 Normal 和 Fast 两种情况。

[ 本帖最后由 不点 于 2013-1-8 09:16 编辑 ]
回复

使用道具 举报

33#
发表于 2013-1-8 12:27:35 | 只看该作者
回不点大大:

1、测试用的Win98的config.sys和autoexec.bat

DOS=HIGH,UMB
DEVICEHIGH=c:\win98\HIMEM.SYS /TESTMEM:OFF
DEVICEHIGH=c:\win98\EMM386.EXE NOEMS


@echo off
SET PATH=c:\win98;c:\win98\COMMAND;C:\;C:\DOS
@echo on


2、 chainloader 命令添加 --disable-a20 参数测试结果
无论A20是Normal还是Fast,无论是启动98之前按F8手动加载gurb,还是从grub启动98,只要执行到chainloader --disable-a20这行,就会自动重启。
测试的grub版本:12.05、12.31、01.06这3个版本

另外小声说一下,不点大大多注意身体,总觉得您是在不眠不休的研究问题。
回复

使用道具 举报

34#
 楼主| 发表于 2013-1-8 14:02:19 | 只看该作者
你的 config.sys 里面好像没有加载什么特别的驻留软件,怎么会不能启动 grub.exe 呢?奇怪。

再做一个测试:彻底删除 config.sys 和 autoexec.bat 这两个文件,看看它还有问题吗?
回复

使用道具 举报

35#
发表于 2013-1-8 20:02:16 | 只看该作者
原帖由 不点 于 2013-1-8 14:02 发表
你的 config.sys 里面好像没有加载什么特别的驻留软件,怎么会不能启动 grub.exe 呢?奇怪。

再做一个测试:彻底删除 config.sys 和 autoexec.bat 这两个文件,看看它还有问题吗?

删除这两个文件还是跟之前一样的,应该不关它们的事。

我自己觉得可能是因为硬件的兼容性问题,主板芯片组和BIOS的可能性比较大,VIA有时候的问题比较多。
回复

使用道具 举报

36#
 楼主| 发表于 2013-1-8 22:17:25 | 只看该作者
又一个测试来了。这次启用了 BIOS 来控制 A20,希望能够有效果。希望全都解决了。

麻烦 北斗 兄试验一下。

grub4dos-0.4.5c-2013-01-08.7z

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

这只是给 北斗兄 测试用的。

回复

使用道具 举报

37#
发表于 2013-1-9 13:26:41 | 只看该作者
回不点大大,01.08版grub的测试结果:

1、BIOS A20设置为Fast→启动Win98→F8→选择5→手动加载Grub→map软盘映像→启动Win98=自动重启

2、BIOS A20设置为Fast→启动Win98→F8→选择6→手动加载Grub→map软盘映像→启动Win98=找不到himem.sys,不能启动98

3、BIOS A20设置为Normal→启动Win98→F8→选择5→手动加载Grub→map软盘映像→启动Win98=自动重启

4、BIOS A20设置为Normal→启动Win98→F8→选择6→手动加载Grub→map软盘映像→启动Win98=启动正常,map的软驱正常

启动98前按F8选择5或6项,用dos的mem查看,内存驻留的程序是不一样的

选择5的时候,内存驻留的程序:
system
himem
emm386
dblbuff
command
ifshlp


选择6的时候,内存驻留只有
msdos
command

grub加载前,某些已在内存驻留的程序是不是也会有影响,与硬件平台的兼容性问题叠加,造成了问题?
回复

使用道具 举报

38#
 楼主| 发表于 2013-1-9 14:20:13 | 只看该作者
你很辛苦,谢谢了。

你的测试很详细,很清楚。我怀疑造成重启的是 dblbuff。

你的测试表明,只要选择 command prompt only,就会遇到自动重启问题。

我也有与你同样的感觉,觉得可能是与硬件平台兼容性叠加的结果。

你的测试还表明,这台机器的 A20 的 BIOS 不起作用。

看来没招了,只有针对 Normal 和 Fast 选项,分别编译两个版本的 grub4dos(让用户选择),或者等价地给出一个开关(让用户选择 Normal 或 Fast),才能解决这个问题。

您觉得有必要给出一个开关吗?如果有必要,我再修改代码。如果没必要,那就算了,维持 chenall google code 上代码的现状,不再修改。

---------------

又想了一下,觉得 emm386 也可能是造成问题的一个原因。把它屏蔽掉,看看可否解决自动重启问题?

[ 本帖最后由 不点 于 2013-1-9 14:25 编辑 ]
回复

使用道具 举报

39#
发表于 2013-1-9 14:42:04 | 只看该作者
不点大大您太客气了,相比您这么多年来对Grub的精心维护,我这些天测试的付出太微不足道了。

若是针对A20的问题编译两个Grub版本发布,我觉得会不会对以后的维护造成不必要的负担?版本越多,分支就越多,后期维护起来太费力了。

我的建议,如果不涉及到对Grub代码的深度改动,那么不点大大只发布一个版本,内置一个开关可以选择A20的Normal或者Fast就好了,当用户需要对A20进行控制的时候,选择对应的参数就行了,而且A20的问题在grub这么多的用户群中,似乎并不太常见,这样可以在Grub后期维护的工作量与用户的实际需要之间找到一个平衡。

如果这个A20的问题涉及到Grub代码的深度改动,我建议还是不要理会A20的问题了,毕竟Grub现在在绝大部分的硬件平台上工作的还不错,避免改动造成新的不必要的问题。我的这套平台只是个少数情况,不能做为典型代表。

不点大大您周全考虑后决定就可以了。
回复

使用道具 举报

40#
发表于 2013-1-9 14:43:28 | 只看该作者
屏蔽EMM386的问题等我晚上测试后给您测试结果。
回复

使用道具 举报

41#
 楼主| 发表于 2013-1-9 14:52:58 | 只看该作者

回复 #39 北斗 的帖子

搞一个开关,也是挺麻烦的。grub.exe 支持命令行参数,倒是能够添加一个开关(也比较麻烦)。但 grldr 不支持命令行参数,只能用安装选项的方式添加控制位,这都显得很罗嗦。

所以,还是不做算了。
回复

使用道具 举报

42#
发表于 2013-1-9 16:14:25 | 只看该作者
原帖由 不点 于 2013-1-9 14:52 发表
搞一个开关,也是挺麻烦的。grub.exe 支持命令行参数,倒是能够添加一个开关(也比较麻烦)。但 grldr 不支持命令行参数,只能用安装选项的方式添加控制位,这都显得很罗嗦。

所以,还是不做算了。

这个开关是哪方面的?
如果是关于某命令的,可以给该命令添加参数
回复

使用道具 举报

43#
 楼主| 发表于 2013-1-9 16:25:46 | 只看该作者
是 grub.exe 和 grldr 本身的控制。不是某个命令的。

对于那些有问题的电脑,现在只好在 CMOS 设置中,设置为 A20:Normal,而不是 A20:Fast。

这只是在启动 win9x 时才会表现出来。也或许可以认为是 Win9x 的 bug。

而 Win9x 大都是安装在旧机器上的。所以,这个问题也就可以不用处理了。
回复

使用道具 举报

44#
发表于 2013-1-9 16:54:15 | 只看该作者
可以设置一个内存bool变量,进行控制
回复

使用道具 举报

45#
 楼主| 发表于 2013-1-9 18:13:09 | 只看该作者
这种办法已经用过,也罗嗦,修改的地方很多。难以保证不同的加载方式都有着相同的控制方法。
回复

使用道具 举报

46#
发表于 2013-1-9 18:17:19 | 只看该作者
To:不点大大

01.08版屏蔽EMM386.EXE的测试结果(将EMM386.EXE直接改名):

1、BIOS A20设置为Fast→启动Win98→F8→选择5→手动加载Grub→map软盘映像→启动Win98=启动正常,map的软驱正常

2、BIOS A20设置为Fast→启动Win98→F8→选择6→手动加载Grub→map软盘映像→启动Win98=卡在98启动LOGO处不能启动

3、BIOS A20设置为Normal→启动Win98→F8→选择5→手动加载Grub→map软盘映像→启动Win98=启动正常,map的软驱正常

4、BIOS A20设置为Normal→启动Win98→F8→选择6→手动加载Grub→map软盘映像→启动Win98=启动正常,map的软驱正常

另外补充一下37楼测试的情况:在加载EMM386.EXE的情况下,使用RAM和NOEMS参数的结果是一样的。

为A20单独设置一个参数开关太麻烦的话,就不要再做修改了。
回复

使用道具 举报

47#
 楼主| 发表于 2013-1-9 18:31:44 | 只看该作者
好的,你这个测试,就把 emm386 暴露出来了。

在普通的电脑上,emm386 与 grub.exe 兼容性很好。可是你这台电脑就出问题了,总是导致自动重启。我现在有一种感觉,那就是,这台机器 A20 控制的特殊性(特殊的难度)再加上用 emm386 进入 VM86 模式所造成的问题。

这就是一个例子,证明 emm386 与 grub.exe 存在不兼容的情况。

你贴的第 2 条,说明 grub.exe 没有导致自动重启,而是 Win98 在启动过程中死掉。这又一次看到 A20 设置不同所带来的问题。

但解释不了的是,为何 command prompt only 之下启动 grub.exe 正常,而 safe mode 下的 grub.exe 又不正常了?
回复

使用道具 举报

48#
发表于 2013-1-9 19:06:09 | 只看该作者
当A20=Fast,在safe模式下卡在logo不能启动的情况,我正在发送安装gho给朋友,看看他的Intel 815平台上能不能重现
回复

使用道具 举报

49#
发表于 2013-1-9 20:11:27 | 只看该作者
815平台的测试结果:

01.08版的grub

1、不加载EMM386的情况下,无论CONFIG.SYS中是否加载HIMEM.SYS、无论BIOS是Fast还是Normal、无论98启动前按F8选择5还是6,grub加载ima映像后启动,815启动98都一切正常。(此处应该可以确定前面的VIA 694存在兼容性问题)。

2、若加载了EMM386.EXE,无论BIOS是Fast还是Normal,98启动前按F8选择5后,grub加载ima映像后启动,系统都自动会重启。

3、无论BIOS是Fast还是Normal,98启动前按F8选择6后,grub加载ima映像后启动,系统启动都正常。

[ 本帖最后由 北斗 于 2013-1-9 20:39 编辑 ]
回复

使用道具 举报

50#
 楼主| 发表于 2013-1-9 20:35:54 | 只看该作者
好了,证明 emm386 与 grub.exe 的兼容问题具有普遍性。暗示:尽量少用 emm386。

另外我怀疑 dblbuf 也有问题。你可以试试看,去掉 dblbuf,情况是否会得到改善?

另外,1月8日的版本仅仅不过就是在普通版本的基础上,增加了调用 A20 BIOS call 罢了。在你的机器上,它没起作用,但也许在另外的机器上,它又起作用了。

所以,今后你就用普通版本来测试,不要用这个增强版了。这个增强版对你的机器无效,因此,把它作废。

[ 本帖最后由 不点 于 2013-1-9 20:45 编辑 ]
回复

使用道具 举报

51#
发表于 2013-1-9 20:41:20 | 只看该作者
不点大大,对不起啊,49楼第3条我修改了一下,原来写的时候是复制粘贴第2条的,疏忽了。

98启动前按F8选6后默认就是没有EMM386的,更正一下。

屏蔽dblbuf的测试回头我会做
回复

使用道具 举报

52#
发表于 2013-1-9 22:05:23 | 只看该作者
Grub版本:0.4.5c 2012.12.31
694X、815下双重测试表明,之前测试中Grub引导98会重启的问题与DBLBUFF.SYS无关(直接改掉文件名)。

Grub引导98时发生重启的时候,只是在加载了EMM386的情况下才会触发。

DBLBUFF.SYS是好同学,EMM386有时候是捣蛋鬼。
回复

使用道具 举报

53#
 楼主| 发表于 2013-1-9 22:56:40 | 只看该作者
所有的测试都完成了,很有成效。

总结一下:

1。了解了 A20 的问题很严重,grub4dos 无法用一种方式完美应对,只能安排两种方式:Normal 的键盘控制器方式,以及系统控制端口 A(即 port 0x92)的 Fast A20 控制方式。这个工作不再做了。我们一直是先用 Normal 再用 Fast 的。遇到问题时,BIOS 中应该设置为 Normal 方式,或许可以减少问题的发生。

2。了解到 EMM386 会导致 grub.exe 的启动失败。因此暗示,要尽量避免使用 EMM386。

这就是结论和收获。

北斗十分负责,十分细致。谢谢,也再次表示赞赏。
回复

使用道具 举报

54#
发表于 2013-1-10 18:49:40 | 只看该作者
能找到问题之所在就好,对于您多年来一直精心的维护Grub代码,也向不点大大深表谢意,谢谢!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-15 03:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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