无忧启动论坛

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

grub4dos加载img问题....『已解决』

[复制链接]
1#
发表于 2010-4-22 13:07:44 | 显示全部楼层
从描述的情况来看,问题出在img上,应该首先怀疑 img 有毛病。从其他地方找原因,都太渺茫了。

grub4dos 曾经遇到过很多问题,那些问题都不是 grub4dos 的 bug,而最终证明是 bios 的 bug。是 bios 有意或者无意地不遵守已有的规范和工业标准而造成的 bug。既然 grub4dos 会撞上,其他实模式的软件一样也会撞上。现在 grub4dos 躲过了灾难,但其他不幸的 DOS 软件却没有躲过。我猜,情况大致就是这样的。
回复

使用道具 举报

2#
发表于 2010-4-22 21:27:47 | 显示全部楼层
失败不重要,探究失败的原因才重要。现在还不知道究竟是哪个软件引起的失败。应该去掉 config.sys 和 autoexec.bat 中的所有程序,看看还死机不?如果还是死机,就换个 DOS,比如从 MS-DOS 换成 FreeDOS,或者反之。总之,更换一个 DOS,不加载任何驱动程序和 TSR 程序,看看还死机不?估计这样就不会死机了,因为主板厂家都要运行 DOS,而且 BIOS 程序员也都是 DOS 高手。所以,不能运行 DOS 的情况是不可想象的。

fallback 确实是胡乱使用。不过,新版的 grub4dos 会检测由 fallback 的乱用所导致的无限循环,因此,这类的死机是不会发生的。

[ 本帖最后由 不点 于 2010-4-22 21:33 编辑 ]
回复

使用道具 举报

3#
发表于 2010-4-27 17:36:08 | 显示全部楼层
祝贺 yjd 成功了!

现实世界是纷繁复杂千变万化的,各种稀奇古怪的事情都可能出现。

我觉得这个问题仍然可以继续研究下去,仍然有很多疑问没有弄清楚。

你的 msdos 7是从哪里来的?你可否用 win95,win98,winXP 制作三个不同的 DOS 启动盘,制作完之后,把 config.sys 和 autoexec.bat 删除掉,然后测试启动。看看结果如何?

我不太相信一个主板厂商不支持微软的 win95 以后的 DOS,却支持以前的老的 DOS,以及 FreeDOS。

这个事情一旦确认,那么,我认为可能性之一就是,主板厂商故意这么做。grub4dos 对于 win95 以后的 DOS 支持良好(可以直接chainloader io.sys),而对于 dos622 的 IO.SYS 不支持。虽然 grub4dos 也支持 FreeDOS,但 FreeDOS 整体上还有很多缺陷,无法完全取代 MSDOS。如果主板厂商确实是故意这么做,它也可能是有意让 grub4dos 不能用 chainloader 启动微软的 IO.SYS,让 grub4dos 不再“万能”。
回复

使用道具 举报

4#
发表于 2010-5-4 23:50:44 | 显示全部楼层
你完全没有答复 sgw888 的提问。sgw888 是让你不用 grub4dos 也不用 memdisk 来启动,试试看效果如何。

比如说,直接在你的硬盘上安装 DOS(FAT16/32 都可以),而不是经由 grub4dos 来虚拟一个 DOS 软盘。

如果你会用 easyboot 的话,你也可以试试 easyboot 启动虚拟软盘,看看结果。

XORLDR 也一样,如果你熟悉的话,你都可以试试。

========

尽管你做了很多测试,但是,我仍然不太相信。我仍然怀疑是你的某个操作失误造成的。

========

其实还有一项测试需要做,就是,用不带 --mem 的 grub4dos 的软盘仿真来试验。

========

如果你能确信是主板的问题,你应该报告详细的主板信息。同时,这个问题很重要,你应该停下手中的其他不重要的工作,全力把这个情况弄清楚。

比如,从光盘启动 Windows 98 的安装盘,或者光盘上的 DOS 7+ ,看看如何。
回复

使用道具 举报

5#
发表于 2010-5-7 00:08:49 | 显示全部楼层
wuyou是个技术气氛浓厚的论坛。讨论问题,就要把问题的根源挖掘出来。以前总是有人跟踪我,不管我说什么,紧跟的就是骂声一大片。跟踪我的人并没有走开,但我希望不再听到他的骂声,因为我好怕呀!跟踪我可以,但不要再骂了,可以吗?尊敬的跟踪者朋友?

既然那人不再骂了,我就放心地、专注地谈论这个问题。

呵呵,这个问题,说来话长了。两年前,我也遇到了一个笔记本。这个笔记本装的是 XP。但有一次需要装 win98,就把原版的 win98 光盘拿来安装,结果你猜怎么着?98 盘启动死机了!这让我很震惊!不管什么 XP 盘,都能启动,但原装的 98 盘就死掉。我研究为什么死机。结果弄明白了,微软原装的 98 光盘,它在将控制传递给 DOS 之前,先有一段短小的程序要运行,这段程序就是提示用户是否跳过光盘而从硬盘启动。正是在这段程序中死机了。这段程序不长,很容易找到导致死机的指令。就是 int13/ax=4B00h 死机了。这个中断调用就是用来终止 CDROM 仿真的。

后来,用 grub4dos 的 cdrom --init 和 map --hook 来启动 (cd0) 设备,成功启动了这张光盘。由于我们的仿真代码不会故意制造死机(万一死机,就是 bug,一定会解决的,因此说,不会死机的),所以,int13/ax=4B00h 不再死机,这样,98 盘也就顺利启动了。

我那时直觉上就觉得这是微软制造的结果。微软不希望 98 还能运行在大多数机器上,所以,它就像关灯一样,逐步把以前的灯关掉。它应该是收买了硬件厂商,或者干脆就给硬件厂商编写了硬件程序,达到死机的目的。

这次 yjd 所遇到的 DOS 死机,依我看,八成还是微软所为。

有人可能有疑问了。为何不让 FreeDOS 死机?为何不让 dos6.22 死机?为何不让 syslinux 和 grub 死机?我的推测是,dos6.22 不是主流,而 dos7 却是具有主流统治地位的,现今的大多数 dos 程序都以 dos7 为基础。所以,斩掉 dos7 就可以有效地惩治那些基于 dos 的软件。而 freedos,syslinux,grub,都是开源自由的软件,微软先前已经尝试过摧毁开源软件,但证明完全无效。开源软件的最厉害的地方就在于,它是开源的,它很容易通过用户报告和跟踪调试,而找到死机的指令。然后,就躲过了微软设计的圈套和陷阱(假定BIOS 厂家只不过就是傀儡而已,假定它们只是微软的附属品或者代言人)。dos 是微软自己家的产品,微软想让它死,那是很容易的,只要买通 BIOS 厂家便可。让 dos 干净利索地马上死掉,也不符合微软的利益。微软需要的是逐步把它杀死。同时,硬件厂商也需要用 dos 和实模式的软件,彻底杀死 dos 对硬件厂商来说并没有好处。与开源软件的情况不同,微软以这种方式杀死 dos,外界却很难通过调试找到其秘密之所在。因为 dos 的源码没有公开,人们无法利用 dos 的源码编译出一个调试版的 dos来,因此,很难破解其隐藏的秘密。

多说一句,以上只是我的一管之见。是对是错,还要靠你自己的头脑来分析。
回复

使用道具 举报

6#
发表于 2010-8-22 18:36:35 | 显示全部楼层
这个问题没什么奇怪的。你可能没有注意到时空论坛的相关讨论。

http://bbs.znpc.net/viewthread.php?tid=5956

相信看完之后,你就全明白了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-3 20:29

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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