无忧启动论坛

标题: 需要各位帮忙测试 win98 下可否访问虚拟内存盘。 [打印本页]

作者: 不点    时间: 2013-1-1 17:53
标题: 需要各位帮忙测试 win98 下可否访问虚拟内存盘。
请有条件的朋友帮个忙,使用 grub4dos-0.4.5c-2012-12-05 来测试。

注意!12月16日以后的版本引入了 bug,导致 win98 启动时蓝屏。

测试步骤:

1. 在虚拟机或者真实机安装 win98.

2. 生办法启动到 grub4dos。

3. 用 grub4dos 仿真一个 1.44M 的内存软盘。

map --mem /A.ima (fd0)
map --hook


4. 此时用

chainloader (hd0)+1
boot

来启动硬盘上的 win98。

5. 进入 win98 后,打开资源管理器。

6. 在资源管理器中,点击软盘。

报告是否可以正常浏览软盘里面的文件。如果能浏览软盘里面的文件,就算测试成功。否则,就是测试失败。

如果  grub4dos-0.4.5c-2012-12-05 不能测试成功,请换用老版本 grub4dos-0.4.4 来试验,并报告是否测试成功。

作者: 不才    时间: 2013-1-1 23:13
嘿嘿,按照不点兄的要求在vpc上测试了一下,将结果报告如下:
采用BOOTICE_1.02将grldr写入虚拟机硬盘mbr,并在c盘放置不同版本的grldr文件,之后重启vpc进行测试。
分别采用grub4dos-0.4.5c-2012-12-05、grub4dos-0.4.5b-2011-12-06及grub4dos-0.4.5c-2012-12-16 三个版本进行了测试,前两个版本可正常进入win98桌面,并能正常浏览虚拟出的软盘中的文件。后面的那个据说有bug的版本,曾有一次能正常进入win98桌面,但虚拟的A盘无法看到,奇怪的是在我的电脑中可以看到原本放置A盘的位置空着,看不到图标及按钮。其他两次测试均在win98的logo闪过之后停留在黑屏处。若不在grub下虚拟A盘,直接通过 chainloader /io.sys 引导win98,试了两次均可以正常进入98桌面。

[ 本帖最后由 不才 于 2013-1-1 23:17 编辑 ]

11.png (19.09 KB, 下载次数: 59)

11.png

12.png (81.17 KB, 下载次数: 62)

12.png

14.png (5.91 KB, 下载次数: 58)

14.png

15.png (9.31 KB, 下载次数: 72)

15.png

作者: 北斗    时间: 2013-1-1 23:34
今天看到这个帖子有点太晚了,明天我用古董实机测试一下,稍晚些回来向不点大大反馈。

在这里也祝大家新年快乐,平安幸福!
作者: chenall    时间: 2013-1-2 11:25
用QEMU+MINI98就是天凤的那个13MB的版本.
测试都是成功的一切正常.

进入系统之后都看不到A:
不过在运行中输入A:\之后就会显示出来了,可以正常访问.一会儿用实机测试一下.
作者: 北斗    时间: 2013-1-2 12:54
在古董实机测试的结果:

测试的G4D版本:grub4dos-0.4.5c-2012-12-05

平台:Celeron 900、VIA694X主板、256MB内存、TNT2 M64 AGP、WD 10G IDE、VIA6105网卡

主板BIOS AWARD,C盘FAT32格式,98SE 中文版

C盘已安装98SE,启动到PE下,用BOOTICE向硬盘写入Grub引导,然后复制grub文件到C:\

启动到grub下,键入命令:

mem --map /144.IMA (fd0)
mem --hook

chainloader /io.sys  (chainloader (hd0,0)+1)这两个都测试了,正常。
boot

如此启动98到桌面,map的软驱操作一切正常,下面是截图,不点大大请看


键入命令




启动到98SE桌面





打开map的软驱查看内容



直接运行map软驱中的EDIT




复制map软驱中的文件到硬盘分区D




删除map软驱中所有文件


[ 本帖最后由 北斗 于 2013-1-2 14:27 编辑 ]
作者: 北斗    时间: 2013-1-2 14:26
另外回不点大大

顶楼的

chainloader (hd0)+1
boot


改为

chainloader (hd0,0)+1
boot

比较合适
作者: 不点    时间: 2013-1-2 16:04
感谢诸位辛苦帮忙。

不才提到 12 月 16 日以后的版本出现的问题,似乎又说有时是正常的。


那么再麻烦诸位测试这一情况,确认大多数情况下不正常,只有少数情况正常。


我怀疑,正常的情况是 “安全模式启动”时才会出现的,或者是未加载驱动程序的精简版才会出现的。



作者: 北斗    时间: 2013-1-2 17:44
原帖由 不点 于 2013-1-2 16:04 发表
感谢诸位辛苦帮忙。

不才提到 12 月 16 日以后的版本出现的问题,似乎又说有时是正常的。

那么再麻烦诸位测试这一情况,确认大多数情况下不正常,只有少数情况正常。

我怀疑,正常的情况是 “安全模式 ...

晚上我再测试一下12.16之后的版本,稍后给不点大大回复。
作者: 北斗    时间: 2013-1-2 19:20
grub4dos-0.4.5c-2012-12-16

grub4dos-0.4.5c-2012-12-31

按照不点大大顶楼的方法,这两个版本都测试过了,没有发现问题,进入98后我的电脑中软驱盘符显示正常,操作虚拟软盘里面的文件也正常,也没有出现2L的问题,98的启动过程也一切正常。

会不会是因为虚拟机的问题,我做测试通常都是在实机上进行的,虚拟机的准确性有时候还是有点问题的。不点大大再看看其他朋友实机的测试如何。



补充:刚刚发现的问题,如果主板BIOS中A20门地址线设置为Normal,则一切正常,若设置为Fast,grub引导后,无论是否map软盘映像,都会提示找不到himem.sys,也无法引导win98。

grub4dos-0.4.5c-2012-12-05

grub4dos-0.4.5c-2012-12-16

grub4dos-0.4.5c-2012-12-31

这3个版本都是如此


[ 本帖最后由 北斗 于 2013-1-2 22:50 编辑 ]
作者: 不才    时间: 2013-1-2 21:09
嘿嘿,报告再次在vpc上测试grub4dos-0.4.5c-2012-12-16版本的结果:
依次测试结果如下:
1、不虚拟a盘,直接使用chainloader /io.sys引导98,成功进入桌面。
2、虚拟a盘,并使用chainloader /io.sys引导98,可成功进入桌面。但看不到a盘,效仿Chenall的做法,运行a:\,提示“系统找不到指定的设备”。
3、重复第二次测试步骤,无法进入桌面,界面停留在win98 logo闪过之后的黑屏上。
4、重复第三次测试步骤,结果如上。
5、重复重复第一次测试步骤:不虚拟a盘,直接使用chainloader /io.sys引导98;  可成功进入桌面!
6、重复第二次测试步骤  可成功进入桌面!结果与第二次测试同。
7、重复重复第一次测试步骤:不虚拟a盘,直接使用chainloader /io.sys引导98;  可成功进入桌面!
8、重复第二次测试步骤  可成功进入桌面!结果与第二次测试同。

[ 本帖最后由 不才 于 2013-1-2 21:11 编辑 ]

00.png (10.72 KB, 下载次数: 64)

00.png

01.png (9.71 KB, 下载次数: 57)

01.png

02.png (13.23 KB, 下载次数: 67)

02.png

03.png (13.23 KB, 下载次数: 53)

03.png

04.png (4.21 KB, 下载次数: 60)

04.png

05.png (3.72 KB, 下载次数: 61)

05.png

停留.png (5.76 KB, 下载次数: 59)

停留.png

作者: 不才    时间: 2013-1-2 22:26
嘿嘿,将vpc关闭退出后重新开启测试:
1、依次键入如下命令后:
map (fd0) (fd0)
map --rehook
map --mem /dos1.img (fd0)
map --hook
chainloader /io.sys
boot
进入win98桌面,并能看到虚拟出的a盘,但无法开启该软盘观察其中文件。系统提示“a:\ 设备尚未准备好”。
2、在vpc中重启系统,重复上述步骤,系统可进入桌面。但已无法看到虚拟出的a盘,情况与10#介绍相同。
3、在vpc中重启系统,重复上述步骤,已无法进入桌面,界面停留在logo闪过后的黑屏上。
4、强制重启vpc,重复上述步骤,结果与上同,无法进入桌面。

[ 本帖最后由 不才 于 2013-1-2 22:29 编辑 ]

30.png (10.05 KB, 下载次数: 56)

30.png

26.png (6.35 KB, 下载次数: 61)

26.png

27.png (7.72 KB, 下载次数: 54)

27.png

28.png (7.67 KB, 下载次数: 51)

28.png

29.png (9.53 KB, 下载次数: 66)

29.png

31.png (5.9 KB, 下载次数: 60)

31.png

作者: 不点    时间: 2013-1-2 23:05
谢谢。

你俩这次都是虚拟机测试。


北斗,你用的虚拟机是哪一款?你在 5 楼的贴图,表示你有真实机环境,能否麻烦你再用真实机测试一次?


注意,一定要用 16 日或 16 日之后的版本,比如挑一个 31 日的即可,没必要同时测试两个版本。

作者: 北斗    时间: 2013-1-2 23:22
回不点大大,我前面全部的测试都是在实机上完成的,我没有用虚拟机,我第二次测试没贴图,帖子也没说清楚,让您造成了误解。


12.16之后0.4.5c版,只有12.31版了,我前面的测试都是针对0.4.5c系列

如果不点大大还有需要测试的版本,直接贴出来我帮你测试,测试方法尽量详尽些,毕竟G4D我是个新手级别的

[ 本帖最后由 北斗 于 2013-1-2 23:29 编辑 ]
作者: 不点    时间: 2013-1-2 23:29
标题: 回复 #13 北斗 的帖子
不才在反复重启测试时出现问题,甚至卡死,你也可以模仿不才的测试,试试有无失败的时候。

你选择的版本是可以的,16 日的与 31 日的都一样。

[ 本帖最后由 不点 于 2013-1-2 23:31 编辑 ]
作者: 北斗    时间: 2013-1-2 23:32
原帖由 不点 于 2013-1-2 23:29 发表
不才在反复重启测试时出现问题,甚至卡死,你也可以模仿不才的测试,试试有无失败的时候。


5楼和9楼的测试,我每个版本的g4d都连续测试了3次以上,如果不点大大有需要,我再连续测试一下。
作者: 不点    时间: 2013-1-2 23:39
标题: 回复 #15 北斗 的帖子
看来你的是成功的。不才是重启 win98 测试时失败。首次启动 win98 成功。多次重启以后就遇到卡死了。注意每次重启都需要事先仿真一个虚拟内存盘,然后再进入 win98。这是 不才 的测试步骤。

期待其他人也来测试,看看有没有在真实机失败的案例。

===============

补充:我猜测 不才是“重启到 DOS 模式”然后用 grub.exe 来进入 grub4dos 进行测试的。我就是这样遇到卡死的,不过我只是在 VirtualBox 虚拟机下测试的。

[ 本帖最后由 不点 于 2013-1-2 23:59 编辑 ]
作者: 不才    时间: 2013-1-2 23:59
原帖由 不点 于 2013-1-2 23:39 发表
看来你的是成功的。不才是重启 win98 测试时失败。首次启动 win98 成功。多次重启以后就遇到卡死了。注意每次重启都需要事先仿真一个虚拟内存盘,然后再进入 win98。这是 不才 的测试步骤。

期待其他人也来测 ...


嘿嘿,补充说明一下:
重启后的卡死均出现在前次重启时仿真了虚拟内存盘的情况下。倘若前次进入系统前未曾仿真虚拟内存盘,则不会在本次启动并仿真虚拟内存盘时出现卡死的现象。
作者: 不点    时间: 2013-1-3 00:02
标题: 回复 #17 不才 的帖子
12 月 5 日的版本,完全没有问题,确信吗?再次确认一下。
作者: 北斗    时间: 2013-1-3 00:06
原帖由 不点 于 2013-1-2 23:39 发表
看来你的是成功的。不才是重启 win98 测试时失败。首次启动 win98 成功。多次重启以后就遇到卡死了。注意每次重启都需要事先仿真一个虚拟内存盘,然后再进入 win98。这是 不才 的测试步骤。

期待其他人也来测 ...

刚刚测试的结果:

0.4.5.c版12.31

menu.lst如下

title 1 map ima
map --mem /144.ima (fd0)
map --hook
chainloader (hd0,0)+1
boot

title 2 not map ima
chainloader (hd0,0)+1
boot


按title1连续测试10次,启动98完全正常,98内的仿真软驱一切正常

按title2连续测试10次,启动98完全正常

以上测试没有蓝屏或者发现错误的地方,测试时,BIOS的A20门地址线都是在Normal状态。



12.05版的还需要测试吗?如果需要不点大大留言,我白天再来测试一下。
作者: 不点    时间: 2013-1-3 00:20
标题: 回复 #19 北斗 的帖子
从 win98 直接重启到 DOS,不要以 通电自检 的方式重启,然后在 DOS 下手动敲入 grub.exe 以及仿真磁盘的命令,然后再进入 win98,是否遇到蓝屏或黑屏?你暂时不需要测试 5 日的版本。

[ 本帖最后由 不点 于 2013-1-3 00:23 编辑 ]
作者: 北斗    时间: 2013-1-3 11:06
原帖由 不点 于 2013-1-3 00:20 发表
从 win98 直接重启到 DOS,不要以 通电自检 的方式重启,然后在 DOS 下手动敲入 grub.exe 以及仿真磁盘的命令,然后再进入 win98,是否遇到蓝屏或黑屏?你暂时不需要测试 5 日的版本。

您说的“从98直接重启到DOS” ,是指在98关机时,选择“重新启动计算机并切换到MSDOS方式”吗?这样重启到dos再手动键入grub.exe计算机会自动重启。

我前面所做的测试,都是在98关机时,选择“重新启动计算机”,相当于热启动。重新启动到grub下,再手动键入仿真磁盘的命令,再引导win98。
作者: 不点    时间: 2013-1-3 11:16
正是的,选择“重新启动计算机并切换到MSDOS方式”。

你在普通的 DOS 下能否使用 grub.exe?难道你的机器依旧是死角而未被 grub.exe 支持?

你可以先用虚拟机试验一次,这个方法是应该成功的。

如果在 DOS 下启动 grub.exe 失败,这属于 bug,本身就很严重,需要继续排除它。
作者: 北斗    时间: 2013-1-3 12:57
我把昨天做过的测试现在梳理一下

之前的测试环境,主板BIOS A20门地址线一直是处于normal状态。先安装完整版的98SE,再用BOOTICE向MBR写入G4D的引导,然后向C盘根目录下复制G4D的文件。在计算机启动到grub提示符后,键入命令map软盘或者直接chainloader boot 98。
之前的测试,硬盘的MBR是grub,A20门地址线在Normal状态时,从grub启动98没什么问题,A20门地址线在Fast时,会提示找不到himem.sys而不能启动98。
-----------------------------------------------------------------------------
今天白天做的测试:
主板BIOS A20门地址线处于normal状态,我把硬盘的MBR用FDISK /MBR恢复到了MS的标准代码。测试的G4D版本包括12.05和12.31,如果有问题我会指出是哪个版本,如果没有指出版本,就是这两个版本都有问题。

启动98前按F8,出现98的启动菜单(见下图),选择第5项,键入grub后,计算机会自动重启;若选择第6项安全模式则可以正常启动98(map软盘或者不map软盘都可以正常启动),若map了软盘,在98中软盘操作也正常,没发现有什么问题。

MBR用FDISK /MBR恢复到了MS的标准代码后,A20门地址线无论是Normal还是Fast,不加载grub直接启动进98都没有问题;若A20门地址线设置为Fast,启动98前按F8选择第6项安全模式,再运行grub,无论是否map软盘,启动98时都会提示找不到himem.sys,不能启动。





今天做的纯DOS环境测试grub启动:
另外一块硬盘,重新分区格式化,sys传递dos7.10到C,dos下启动grub,可以正常启动到grub提示符下,map一个软盘ima也可以顺利执行。12.05和12.31这两个版本都测试过了,dos下启动正常。

[ 本帖最后由 北斗 于 2013-1-3 13:18 编辑 ]
作者: 不才    时间: 2013-1-3 14:51
原帖由 不点 于 2013-1-3 00:02 发表
12 月 5 日的版本,完全没有问题,确信吗?再次确认一下。


嘿嘿,确认一下:12-05版本木有问题!
多次测试均可正常进入桌面并浏览、拷贝a盘内文件。

此外,说明一下我所做测试的引导方式:
采用BOOTICE_1.02将grldr写入虚拟机硬盘mbr,并在c盘放置不同版本的grldr文件,之后重启vpc进行测试。
前面所说的多次测试,均为在vpc内的win98下重启进行。当某项测试出现卡死状态后,则通过按下 右Alt+R 键重启vpc,进行后面一项的测试。
作者: 不点    时间: 2013-1-3 19:49
总结一下:

不才的测试结果表明,12月16日的设置 safe mbr hook = 0 的改动是有问题的,必须恢复为 12月5日的 safe mbr hook=1 的情况。

北斗在实机测试的情况表明,safe mbr hook = 0 在有些情况下也没有问题。因此,问题可能与 BIOS 或者硬件环境有关。

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

启动到 command prompt only 时,加载了 DOS 驱动程序以及 TSR,这本来就可能导致 grub.exe 失败。

启动到 safe mode command prompt only 时,不会自动加载任何驱动以及 TSR,所以,grub.exe 理应成功启动。

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

>>> 若A20门地址线设置为Fast,启动98前按F8选择第6项安全模式,再运行grub,无论是否map软盘,启动98时都会提示找不到himem.sys,不能启动。

这个情况表明,grub4dos 的 A20 控制代码在特定的硬件环境下与微软的 himem.sys 有不兼容现象。如果有可能的话,今后在某个时候会尝试解决这一问题。
作者: 北斗    时间: 2013-1-3 21:43
To:不点大大

1、发现了一个与grub有关的新现象

只要通过grub启动了98,98的关机菜单就少了一项“将您的计算机转入睡眠状态”,只有后面的3项;而不通过grub直接启动98,菜单就是正常的4项。



2、A20门地址线的问题,以前在用G4D+memdisk引导硬盘映像的Win95精简版时,就出现过前面类似的问题,必须在BIOS中修改为Normal,Win95才能正常运行,我也一直认为是兼容性方面的问题。
作者: 不点    时间: 2013-1-3 22:17
>>> 只要通过grub启动了98,98的关机菜单就少了一项“将您的计算机转入睡眠状态”,只有后面的3项;而不通过grub直接启动98,菜单就是正常的4项。

我们可以猜测一下,问题究竟在哪里?

如果是从 dos 下启动 grub.exe 的,那么,我们已知,DOS 破坏中断向量表,而 grub.exe 又不能 100% 恢复被 dos 破坏了的中断向量,所以,出问题的机会要比较大。

如果不是从 dos 启动,而是直接用 grldr 的方式启动,则中断向量表是 100% 正确的,不曾被破坏。此时,出问题的可能性就降低了。

如果无论 grub.exe 还是 grldr 都出现同样的问题,那只能怀疑,是 A20 控制的相关代码与你的硬件环境有冲突,共同造成了问题。
作者: 北斗    时间: 2013-1-3 23:39
VIA的兼容性问题比Intel的要多,一分钱一分货啊。测试软件的兼容性,我觉得还是先在Intel的平台测试比较好,没问题了再拖到其他平台上测试。
作者: 不点    时间: 2013-1-6 17:31
这里编译了一个版本,修改了 A20 代码,这次是先尝试使用 Fast 控制 A20 的方法,然后再尝试键盘控制器来控制 A20 的方法。

北斗试试看,是否能够解决你的 win98 在 grub4dos 下的问题。

grub4dos-0.4.5c-2013-01-06.7z

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

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


作者: 北斗    时间: 2013-1-6 23:29
原帖由 不点 于 2013-1-6 17:31 发表
这里编译了一个版本,修改了 A20 代码,这次是先尝试使用 Fast 控制 A20 的方法,然后再尝试键盘控制器来控制 A20 的方法。

北斗试试看,是否能够解决你的 win98 在 grub4dos 下的问题。

好的,我明天测试一下,结果稍后反馈给不点大大
作者: 北斗    时间: 2013-1-7 17:30
用不点大大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门地址线后的预期吧?
作者: 不点    时间: 2013-1-8 00:31
关于 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 编辑 ]
作者: 北斗    时间: 2013-1-8 12:27
回不点大大:

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个版本

另外小声说一下,不点大大多注意身体,总觉得您是在不眠不休的研究问题。
作者: 不点    时间: 2013-1-8 14:02
你的 config.sys 里面好像没有加载什么特别的驻留软件,怎么会不能启动 grub.exe 呢?奇怪。

再做一个测试:彻底删除 config.sys 和 autoexec.bat 这两个文件,看看它还有问题吗?
作者: 北斗    时间: 2013-1-8 20:02
原帖由 不点 于 2013-1-8 14:02 发表
你的 config.sys 里面好像没有加载什么特别的驻留软件,怎么会不能启动 grub.exe 呢?奇怪。

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

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

我自己觉得可能是因为硬件的兼容性问题,主板芯片组和BIOS的可能性比较大,VIA有时候的问题比较多。
作者: 不点    时间: 2013-1-8 22:17
又一个测试来了。这次启用了 BIOS 来控制 A20,希望能够有效果。希望全都解决了。

麻烦 北斗 兄试验一下。

grub4dos-0.4.5c-2013-01-08.7z

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

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


作者: 北斗    时间: 2013-1-9 13:26
回不点大大,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加载前,某些已在内存驻留的程序是不是也会有影响,与硬件平台的兼容性问题叠加,造成了问题?
作者: 不点    时间: 2013-1-9 14:20
你很辛苦,谢谢了。

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

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

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

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

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

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

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

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

[ 本帖最后由 不点 于 2013-1-9 14:25 编辑 ]
作者: 北斗    时间: 2013-1-9 14:42
不点大大您太客气了,相比您这么多年来对Grub的精心维护,我这些天测试的付出太微不足道了。

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

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

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

不点大大您周全考虑后决定就可以了。
作者: 北斗    时间: 2013-1-9 14:43
屏蔽EMM386的问题等我晚上测试后给您测试结果。
作者: 不点    时间: 2013-1-9 14:52
标题: 回复 #39 北斗 的帖子
搞一个开关,也是挺麻烦的。grub.exe 支持命令行参数,倒是能够添加一个开关(也比较麻烦)。但 grldr 不支持命令行参数,只能用安装选项的方式添加控制位,这都显得很罗嗦。

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

所以,还是不做算了。

这个开关是哪方面的?
如果是关于某命令的,可以给该命令添加参数
作者: 不点    时间: 2013-1-9 16:25
是 grub.exe 和 grldr 本身的控制。不是某个命令的。

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

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

而 Win9x 大都是安装在旧机器上的。所以,这个问题也就可以不用处理了。
作者: sunsea    时间: 2013-1-9 16:54
可以设置一个内存bool变量,进行控制
作者: 不点    时间: 2013-1-9 18:13
这种办法已经用过,也罗嗦,修改的地方很多。难以保证不同的加载方式都有着相同的控制方法。
作者: 北斗    时间: 2013-1-9 18:17
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单独设置一个参数开关太麻烦的话,就不要再做修改了。
作者: 不点    时间: 2013-1-9 18:31
好的,你这个测试,就把 emm386 暴露出来了。

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

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

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

但解释不了的是,为何 command prompt only 之下启动 grub.exe 正常,而 safe mode 下的 grub.exe 又不正常了?
作者: 北斗    时间: 2013-1-9 19:06
当A20=Fast,在safe模式下卡在logo不能启动的情况,我正在发送安装gho给朋友,看看他的Intel 815平台上能不能重现
作者: 北斗    时间: 2013-1-9 20:11
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 编辑 ]
作者: 不点    时间: 2013-1-9 20:35
好了,证明 emm386 与 grub.exe 的兼容问题具有普遍性。暗示:尽量少用 emm386。

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

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

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

[ 本帖最后由 不点 于 2013-1-9 20:45 编辑 ]
作者: 北斗    时间: 2013-1-9 20:41
不点大大,对不起啊,49楼第3条我修改了一下,原来写的时候是复制粘贴第2条的,疏忽了。

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

屏蔽dblbuf的测试回头我会做
作者: 北斗    时间: 2013-1-9 22:05
Grub版本:0.4.5c 2012.12.31
694X、815下双重测试表明,之前测试中Grub引导98会重启的问题与DBLBUFF.SYS无关(直接改掉文件名)。

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

DBLBUFF.SYS是好同学,EMM386有时候是捣蛋鬼。
作者: 不点    时间: 2013-1-9 22:56
所有的测试都完成了,很有成效。

总结一下:

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

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

这就是结论和收获。

北斗十分负责,十分细致。谢谢,也再次表示赞赏。
作者: 北斗    时间: 2013-1-10 18:49
能找到问题之所在就好,对于您多年来一直精心的维护Grub代码,也向不点大大深表谢意,谢谢!




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