中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: grub bug报告 上一主题 | 下一主题
spitfirebay
初级用户




积分 141
发帖 14
注册 2004-1-10
状态 离线
『楼 主』:  grub bug报告

我刚才用grub虚拟映象文件,退出重启进入XP后居然找到新硬件,一看自动添加了一个软驱B。


[此贴子已经被作者于2004-1-11 19:32:14编辑过]




2004-1-11 00:00
查看资料  发送邮件  发短消息 网志  OICQ (389882)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 2 楼』:  

谢谢。

这个 BUG 产生的原因不明。这可能说明 GRUB for DOS 改动了 CMOS 的设置。

GRUB for DOS 0.2.0 的 grub.exe 文件在启动时要执行 int 13/AX=4b00 命令,强制退出 CDROM 的软盘和硬盘仿真。可能是因为某些 BIOS 在执行  int 13/AX=4b00 的时候,顺便修改了 CMOS 或者 BIOS 数据区中的软盘数目字节。

解决的办法是不执行  int 13/AX=4b00 命令。目前没有提供这个选项,必须修改源程序并重新编译。

当把 GRUB 安装到 MBR 时应当不存在这个问题。【目前的测试版还不能安装到 MBR】

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

背景资料:

当我们从 CDROM 引导了 DOS 并运行 grub.exe 时,如果由 GRUB.exe 启动了 win98,则 win98 访问 A: 盘时将导致死机,原因是 A:盘是经过 BIOS 仿真过的,不是真实的 A:软盘驱动器,而是 CDROM 上的一个 1.44M 的映象。

运行 GRUB.exe 的时候,由 启动代码来执行 int13/ax=4b00 来退出 CDROM 上的软盘、硬盘等的仿真,就可以解决这个问题。

但是,正如您所看到的,这带来了另外一个问题。

以上只是猜测。

==========

如果这时候并无其它大的妨碍,我想,暂时就保留这个 int13/AX=4b00 吧。

或者在下一个版本【 grub_t14 】增加一个选项,使得可以用命令行参数禁止执行  int13/AX=4b00 。





因为我们亲手创建,这个世界更加美丽。
2004-1-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaojun
银牌会员





积分 2202
发帖 499
注册 2003-6-12
状态 离线
『第 3 楼』:  

呵呵,我上次用Vfloppy,XP在Reboot后就活生生多出1个小软-B,呵,1模1样。:)



一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
2004-1-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
spitfirebay
初级用户




积分 141
发帖 14
注册 2004-1-10
状态 离线
『第 4 楼』:  

对,删掉了那个多的软驱再次重新启动,XP里的软驱B就不见了
谢谢你的回复。

2004-1-12 00:00
查看资料  发送邮件  发短消息 网志  OICQ (389882)  编辑帖子  回复  引用回复
spitfirebay
初级用户




积分 141
发帖 14
注册 2004-1-10
状态 离线
『第 5 楼』:  

还有个问题:我用真实的软驱启动,启动时有个boot:等在那儿20秒,按f2后还有个选单出来。但用虚拟的就是一闪而过。我是将knoppix拷到硬盘用映象文件启动的,所以需要配置关于显示器的选单和选择进入哪个桌面。另外,我想能不能做个这样的程序(或者在grub.exe里加一个选项)这样来使用:在XP的boot.ini里加上c:\grub.dat="grub启动程序"其实也是相当于MBR的启动映象。

2004-1-12 00:00
查看资料  发送邮件  发短消息 网志  OICQ (389882)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 6 楼』:  

关于 knoppix , 不知道是怎么回事, 猜想是由 knoppix 的启动程序本身造成的.

关于在 NTLDR 的 boot.ini 中加入 GRUB 项目的问题, 讨论如下:

1. 由 boot.ini 加载的启动映象, 只能加入一个扇区, 也就是第一扇区, 其余的扇区被扔掉. 所以, 不可能用它来直接加载 GRUB 的 stage2, 最多只能用它来加载 stage1, 或者 加载 MBR.

2. GRUB 不支持 NTFS 文件系统, 所以, 需要在 FAT32 中操作.

好了, 基于以上两点, 您可以试试下面的方法 [ 不过也够罗嗦的了 ] :

首先把你的 MBR 引导扇区(512个字节)备份起来, 然后在 C: 盘(FAT32格式)安装 GRUB 的 boot/grub/*.* 目录和文件, 把 GRUB 安装到 MBR.

这时, MBR 已经是 GRUB 的代码了. 您把这个 MBR 引导扇区保存为一个文件 c:\grub.dat , 然后就可以修改 boot.ini 为 c:\grub.dat="grub启动程序" 了. 修改之后, 你再恢复 MBR 为原来的 win2000/xp 的 MBR. 这时, MBR 中不再有 GRUB 的代码了.

重启动机器, 您的 boot.ini 菜单上应当有 grub 的启动项目, 这应当可以启动 grub 了.





因为我们亲手创建,这个世界更加美丽。
2004-1-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
spitfirebay
初级用户




积分 141
发帖 14
注册 2004-1-10
状态 离线
『第 7 楼』:  

谢谢,我也想过你写的这个步骤,但我的C盘是Ntfs格式,但F盘我为了不刻盘安装Linux我前几天刚转换为F32了,我的Linux盘上应该有Grub的映象,不过那个能用来映射软盘吗?

2004-1-12 00:00
查看资料  发送邮件  发短消息 网志  OICQ (389882)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 8 楼』:  

只要硬盘上存在着 FAT32,ext2 等分区,就可以用上述方法。需要做的,仅仅是把 boot/grub/*.* 放在 GRUB 所支持的 FAT32,ext2 等分区上,其它都没什么了。

只有 grub for dos 0.1.x 以后的版本才支持仿真软盘的功能。一般的 LINUX 发行版所带的 GRUB 是不支持软盘仿真的。





因为我们亲手创建,这个世界更加美丽。
2004-1-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
spitfirebay
初级用户




积分 141
发帖 14
注册 2004-1-10
状态 离线
『第 9 楼』:  

我刚才试过了,我先是用system commander7.05里有个增加启动项功能,它将启动mbr文件写入c:\下,不过在sc705中启动不成功。我写入boot.ini里却成功了。还有就是在Linux分区装的grub里可以执行:
map (hd0,6)/knoppix/boot.img (fd0)
chainloader (hd0,6)/knoppix/boot.img
却不能执行
rootnoverify (fd0)
好象说什么BIOS不支持?(不好意思,我英文不大好,一时没弄明白那意思。)

2004-1-12 00:00
查看资料  发送邮件  发短消息 网志  OICQ (389882)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 10 楼』:  

rootnoverify (fd0)

这条命令总是可以执行成功的,不可能失败。它显示的信息不是失败信息。

执行 rootnoverify (fd0) 后,接着再执行

boot

就行了。




因为我们亲手创建,这个世界更加美丽。
2004-1-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
spitfirebay
初级用户




积分 141
发帖 14
注册 2004-1-10
状态 离线
『第 11 楼』:  

我那样做了,但显示 boot fail

2004-1-13 00:00
查看资料  发送邮件  发短消息 网志  OICQ (389882)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 12 楼』:  

如果这两条命令
map (hd0,6)/knoppix/boot.img (fd0)
chainloader (hd0,6)/knoppix/boot.img
都没有出错信息的话, 那就是因为 boot.img 本身, 不适合于用 grub 仿真的方法来启动.

当 boot.img 启动一个 LINUX 内核之后, 如果这个内核还要读取 /dev/fd0 的内容, 那将是失败的. 这在 grub 的说明网页上已经说的很清楚了.





因为我们亲手创建,这个世界更加美丽。
2004-1-13 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: