无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 6126|回复: 20
打印 上一主题 下一主题

【报告】Grub4DOS_0.4.5B_2010.06.07 问题

[复制链接]
跳转到指定楼层
1#
发表于 2010-6-8 08:45:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用老的0PE试了一下,启动后老0PE有个整理程序,过了那个整理程序后就 黑屏死机 了,应该是在DOS调用了GRUB.EXE,不知道会不会是GRUB.EXE有问题,下面是截图:

2#
 楼主| 发表于 2010-6-8 08:56:41 | 只看该作者
对了,忘记说了,Grub4DOS_0.4.5B_2010.06.03 版正常。。。。。。。
回复

使用道具 举报

3#
发表于 2010-6-8 09:34:43 | 只看该作者
用0PE实机测试了一下,证实上述情况属实。

虚拟机中纯DOS下,运行grub能进入grub命令行。

[ 本帖最后由 zxw 于 2010-6-8 10:05 编辑 ]
回复

使用道具 举报

4#
发表于 2010-6-8 12:01:30 | 只看该作者
你更新0pe里的GRUB.EXE文件了吗?应该一起更新在试试!!
回复

使用道具 举报

5#
 楼主| 发表于 2010-6-8 12:07:18 | 只看该作者

回复 #4 thttht 的帖子

这点还是知道的。。。。。。。。。

每次自己更新都会全部一起更新的。。。。。。。
回复

使用道具 举报

6#
发表于 2010-6-8 12:40:53 | 只看该作者
期待从其他角度报告更详细的情况。这次更新应该仅仅影响 grub.exe,应该是没有问题的。

出现问题的情况,会不会与菜单有关?有时候,菜单看起来没问题,但实际上潜藏着未发现的问题。

所以,需要更多的报告才行。
回复

使用道具 举报

7#
 楼主| 发表于 2010-6-8 12:55:09 | 只看该作者
因为0PE是P大的,我找不到菜单在哪,要P大来看看了。。。。。
回复

使用道具 举报

8#
发表于 2010-6-8 13:36:27 | 只看该作者
新版本由于要处理 HP 的问题,所以,grub.exe 的文件变大了。主要是,头部变大了。

grub.exe = 头部 + pre_stage2

pre_stage2 = 主程序。

头部 = 前期准备阶段。

由于前期准备阶段要处理很多事情,包括 bug 的排解,有些主板的 workaround 等等,所以,头部的长度是会变化的。

多年以来,头部的长度一直没什么变化。但本次变化较大。

0pe 是 grub4dos 的主要使用者。0pe 对于 grub4dos 的使用,到了非常充分的程度,我都很难看懂 0pe 的一些菜单程序。所以,0pe 有可能假定 grub.exe 的头部是某个固定长度的,而对 grub.exe 进行动态改造。我猜测这可能就是问题的原因了。

究竟是什么情况,还需要进一步确认。
回复

使用道具 举报

9#
发表于 2010-6-8 13:40:14 | 只看该作者
@echo off
c:
cd \
if not exist 0pemenu.lst goto quit
del io.sys
del autoexe1.bat
del auto_exe.bat
del command.com
>nul copy /y grub.exe a:\grub.exe
if not exist a:\grub.exe goto L1
del grub.exe
a:\grub --config-file=c:\0pemenu.lst

:L1
if exist b:\_SRS.ZIP del b:\_SRS.ZIP
if exist b:\SRS.ZIP del b:\SRS.ZIP
>nul copy /y grub.exe b:\grub.exe
del grub.exe
b:\grub --config-file=c:\0pemenu.lst

:quit
echo.
echo Sorry, PE not ready to start.

菜单应该是这个,\KERNEL\startPE.bat.

0pemenu.lst 是由auto_exe.bat生成的。

[ 本帖最后由 zxw 于 2010-6-8 13:52 编辑 ]
回复

使用道具 举报

10#
发表于 2010-6-8 13:51:13 | 只看该作者
0PE的特有现象。如果要用0PE的话,还是使用0PE所用版本的G4D比较好,反正我试过N人版本的0PE与G4D组合,一般用比0PE中的G4D要旧或版的G4D未必能启动0PE。
回复

使用道具 举报

11#
发表于 2010-6-8 13:57:38 | 只看该作者
  1. >>if "%OEMF6%"=="TRUE" IF not "%config%"=="N_SCSI" goto KEEPFD0
  2. rem 2009.11.4 根据karyonix的“Don't unmap 0x81.”提示,将map --unmap=0,1,2,0x81:0xfe全部改为map --unmap=0,1,2,0x84:0xfe
  3. rem 2009.11.10 为了支持更多磁盘,进一步将map --unmap=0,1,2,0x84:0xfe全部改为map --unmap=0,1,2,0x87:0xfe
  4. rem 2009.11.16 为了支持更多磁盘,进一步将map --unmap=0,1,2,0x87:0xfe全部改为map --unmap=0,1,2,0xA0:0xfe
  5. 0pemenu.lst echo map --unmap=0,1,2,0xA0:0xfe
  6. goto REHOOK
  7. :KEEPFD0
  8. >>0pemenu.lst echo map --unmap=1,2,0xA0:0xfe
  9. :REHOOK
  10. >>0pemenu.lst echo map --rehook
  11. >>0pemenu.lst echo map --hook=0x80
  12. >>0pemenu.lst echo chainloader (hd0,0)/setupldr.bin

  13. >>0pemenu.lst echo makeactive (hd0,1)
复制代码
auto_exe.bat生成0pemenu.lst的这一段,看来也没有问题。

[ 本帖最后由 zxw 于 2010-6-8 15:12 编辑 ]
回复

使用道具 举报

12#
 楼主| 发表于 2010-6-8 14:00:52 | 只看该作者

回复 #9 zxw 的帖子

原来菜单在这里,好象没什么问题呀,下面是直接COPY出来的:




if "%OEMF6%"=="TRUE" IF not "%config%"=="N_SCSI" goto KEEPFD0
rem 2009.11.4 根据karyonix的“Don't unmap 0x81.”提示,将map --unmap=0,1,2,0x81:0xfe全部改为map --unmap=0,1,2,0x84:0xfe
rem 2009.11.10 为了支持更多磁盘,进一步将map --unmap=0,1,2,0x84:0xfe全部改为map --unmap=0,1,2,0x87:0xfe
rem 2009.11.16 为了支持更多磁盘,进一步将map --unmap=0,1,2,0x87:0xfe全部改为map --unmap=0,1,2,0xA0:0xfe
>>0pemenu.lst echo map --unmap=0,1,2,0xA0:0xfe
goto REHOOK
:KEEPFD0
>>0pemenu.lst echo map --unmap=1,2,0xA0:0xfe
:REHOOK
>>0pemenu.lst echo map --rehook
>>0pemenu.lst echo map --hook=0x80
>>0pemenu.lst echo chainloader (hd0,0)/setupldr.bin

>>0pemenu.lst echo makeactive (hd0,1)
回复

使用道具 举报

13#
发表于 2010-6-8 15:29:18 | 只看该作者
期待更稳定的版本,我现在还是用的06.03版的。
回复

使用道具 举报

14#
发表于 2010-6-8 17:01:58 | 只看该作者
grub.exe = 头部 + pre_stage2
pre_stage2 = 主程序。

由grldr启动-dos-grub.exe,这里的grub.exe如果能象个引导器一样精简一下,可能更加健康。我们这里使用到主程序很少的功能,如:chainloader、configfile、pxe等,最终返回到grldr环境。目前PXE环境返回grldr即chainloader /grldr基本死机,这个是难点。如果撇开基本用不到的功能从而可能的话强化PXE功能,实际应用价值会更好。现在真正从DOS启动grub.exe应用相对较少。

请不点大批评指教!
回复

使用道具 举报

15#
发表于 2010-6-8 22:23:10 | 只看该作者
原帖由 不点 于 2010-6-8 13:36 发表
... 0pe 有可能假定 grub.exe 的头部是某个固定长度的,而对 grub.exe 进行动态改造。我猜测这可能就是问题的原因了。
究竟是什么情况,还需要进一步确认。

呵呵,没有改动grldr和grub.exe。久不编程,连环境都搭不起来了。

刚才在VMware中试了,还真有问题。

附件可以重现。以0PE.ISO作为虚拟机光盘启动(开始的grldr是用6.7的),一路回车最后进入DOS提示符。然后
运行startpe.bat启动6.3的grub.exe,开始正常(后面报错进不了pe是因为我精简掉pe文件了)。
如果运行startpe7.bat启动6.7的grub7.exe(grub.exe改名),当场黑掉。

0PE.part1.rar

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

0PE.part2.rar

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

0PE.part3.rar

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

回复

使用道具 举报

16#
发表于 2010-6-8 23:53:21 | 只看该作者

回复 #14 zhaohj 的帖子

你进入了一个误区:功能多,导致兼容性差。

事实上,兼容性主要是制造商故意形成的。有些东西,表面上功能多,其实,用到的底层函数并不多。这些功能,只不过是增加了一些使用方便的代码而已。这些代码本身不会涉及到新的底层函数的调用,仍然用的是已有的底层函数。我们这里说的底层函数,就是 BIOS。因此,功能多不一定导致兼容性差。反之,一样的道理,功能少,也有可能导致兼容性差。因为虽然功能少,但这些功能却有可能调用许许多多的底层函数,那么,恶意的 BIOS 制造商就可以在很多地方设下羁绊,让软件半死不活。

你的误区之二:使用很少的几个命令,如 chainloader 等,就可以把 grub 的体积减少。你忽略了,chainloader 需要用到文件系统处理代码,如 FAT,NTFS,EXT2 等等的支持。那些看不见的东西,比能看见的,要多得多。这些文件系统的支持模块,以及其他相关的东西,要占用很大的空间。

你还有一个美好的愿望:以 PXE 为中心,发展周边其他相关的软件环境。这不太可能。PXE 比之传统 BIOS 的其他领域,要年轻得多。它并不成熟。它很混乱。PXE 能够成功启动一个环境,不管是 grldr 也好,SYSLINUX 也好,DOS 也好,能进来,就不错了。再有更高的要求,比如说让它进入这个、退出那个,随便进出,那就有点奢求的味道了。技术本身没有发展到那样的成熟度,同时,恶意的 BIOS 制造商还有可能故意制造障碍。在电脑领域,理论固然不可缺少,但实践的环节尤其重要。有些东西,理论上可行,但实践上通不过,或者暂时达不到。

=======

不瞒你说,今天我又通过实践,领会到了一个新的知识。我给一台机器安装系统,其遭遇,也是第一次,很糟糕。

这台机器启动 grldr 没问题。它不支持 U 盘启动,所以,只好从硬盘启动 grldr。

然而,用 GRLDR 启动手头上的任何一个 PE,都失败了。用光盘也尝试启动 PE 或者安装 Windows,都失败。

最后启动 DOS,所有的 DOS 都不能进入 GHOST,进去之后,死了,键盘无响应,鼠标也不起作用。

不要说 ghost 的版本。8.x和 11.x 的都不行。

grub 和 DOS 的字符界面,都不至于死机。然而到了 ghost 和 PE 的图形界面,全都死掉。

这个制造商真TM的垃圾。请恕我不透露制造商的信息。

所以,请珍惜能够进入一个系统的每一次机会。不要随便离开那个系统而转换到别的系统下。

比如说,你有 DOS,请设法在 DOS 下完成 ghost 的工作,不要借助于图形界面的 ghost。

再比如,你有 grldr,请设法在 grldr 下完成(与 ghost 等价的)工作,不要进入 DOS 和别的系统。

如此,才可以把故障率降到最低。
回复

使用道具 举报

17#
发表于 2010-6-9 07:11:29 | 只看该作者

回复 #15 pseudo 的帖子

能不能把问题进一步孤立出来?究竟 grub.exe 执行之前,曾经运行过什么程序,它影响了 grub.exe 的启动?

另外,可以在 DOS 下增加一个 debugger 方便在 DOS 下进行调试。例如 http://nufans.net/grub4dos/debuggers/grdbdl96.zip 就很好。
回复

使用道具 举报

18#
发表于 2010-6-9 08:59:44 | 只看该作者
0PE也是grldr->dos->grub.exe,DOS下处理磁盘仿真。6.7新版我还没应用,我虚拟机测试一下看看。

我虚拟机测试,pxe启动grldr--纯dos--Grub.exe正常。

上传一下grldr及grub.exe下的内存,不知是否有用。

另外我虚拟机VM7测试了SRS_F6返回模块,也能正常返回。

[ 本帖最后由 zhaohj 于 2010-6-9 10:15 编辑 ]

Snap1.jpg (72.97 KB, 下载次数: 54)

Snap1.jpg

Snap2.jpg (190.05 KB, 下载次数: 61)

srs_f6返回后状态

srs_f6返回后状态

1.rar

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

grldr下640k内存

2.rar

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

grub下640k内存

回复

使用道具 举报

19#
发表于 2010-6-9 15:01:54 | 只看该作者
对不起,犯了一个错误。请再试试新版。
回复

使用道具 举报

20#
 楼主| 发表于 2010-6-9 15:38:08 | 只看该作者

回复 #19 不点 的帖子

马上试了一下9号的版本,0PE正常进入了,没有问题,网启也没问题了,多谢不点大人更新。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

21#
发表于 2010-6-9 18:31:03 | 只看该作者

回复 #17 不点 的帖子

用6.9新版正常了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-26 12:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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