中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
<   <<   [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]  ... [19] >>   >
作者:
标题: GRUB 伤脑筋的问题, 大家会诊一下 上一主题 | 下一主题
tmpid
初级用户




积分 104
发帖 2
注册 2004-2-28
状态 离线
『第 211 楼』:  

BUG report: grldr 自从2月1号后的版本就不能在fat16上面运行了,fat32上面没问题,难道没有一个人发现么。。。。看你们好像都用得好好的,唯独我的不行。为了证明不是因为我的rpwt,我做了一个fat32的分区,果然就没问题了。但是DOS不行了。 BTW, grldr 比 grub.exe 好用,因为机器上要是装了ATA,SCSI卡之类要加载自己的BIOS的卡,grub.exe(0.2)就会抱怨有驻留程序改了中断向量,拒绝运行。grldr没这个问题。 谢谢不点的工作。


2004-2-28 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 212 楼』:  

tmpid: GRUB for NTLDR的2月13日和18的新版本(2月7日版的是不行)绝对是支持FAT16分区的,至少在我的两个硬盘(C盘均为FAT16)下可以正常使用,而且我天天都在使用它(通过它禁用另一个硬盘以启动WinME)! 不过,据我在真实机上的测试结果,当GRLDR文件本身在至少是FAT12/16分区的硬盘上是连续存储(即用blocklist命令查看没有逗号)的时候,GRLDR似乎确实无法成功启动(现象是黑屏死机)。但如果GRLDR本身存储不连续的话则启动正常。 另外,新版本的DOS本身既支持FAT16分区又支持FAT32分区。但你说你的DOS不行了,是不是你使用的DOS版本过旧??如果是的话,请升级你的DOS系统。

[此贴子已经被作者于2004-2-28 14:21:56编辑过]





Wengier - 新DOS时代 欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址: wendos.mycool.net/ E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
2004-2-28 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

谢谢两位。 我说说为什么 GRLDR 不能运行了。GRLDR 的第一扇区,在 2 月 1 日之前是拷贝 NTLDR 的相应内容,所以,运行良好。而 2 月 1 日之后,不再用 NTLDR 了,而是用我自己写的程序,所以,就出现了某些错误。正式发布的版本是不能拷贝别人的东东的。我再检查检查程序,看看有没有什么错误。 测试时,请用最新的 BOOTGRUB 文件(这个文件越新越好)。然后,把没有问题的 GRLDR 的版本贴出来。大家觉得是不是 2 月 1 日就是一个分界线? FAT32 以及 NTFS 确实没有问题,因为 GRLDR 开头的那段程序只是为 FAT12/16 写的,而 FAT32 和 NTFS 不用这段程序。出错的只能是 FAT12/16。 GRUB.EXE 应当是可以运行的。如果你的不能运行,看看是不是 DOS 版本的问题。我们支持的 DOS 版本是有限的,对 MS DOS 3.3 , 4.0, 5.0, 6.0, 6.22, 7.0, 7.10, 8.0 是支持的。如果有不支持的 MS DOS 版本,请报告版本号。 GRLDR 由 NTLDR 启动,它运行在干净的环境,与 DOS 无关,所以,它不抱怨,总能运行。




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

不甘寂寞的人


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

果然发现了毛病!谢谢 wengier 关于这个 BUG 的详细描述!没有您的描述,很难找到毛病在哪里。GRUB for DOS 离不开您,wengier 兄。 在 grldrstart.S 中,有如下一段程序: movb %al, %cl xorb %ch, %ch /* CX = number of sectors read */ shlw $9, %cx /* CX = number of bytes read */ addw %cx, %bx /* ES:BX points to new location */ jnc 2f movw %es, %ax /* BX=0, exceeds 64K boundary, adjust ES */ addw $0x1000, %ax movw %ax, %es movb $0x80, %ah /* adjust max number of sectors to read */ 2: 改成如下这样就应当 OK 了: movb %al, %cl /* xorb %ch, %ch */ /* CX = number of sectors read */ 注释掉该语句,是因为这个语句多余。保留该语句也不算错。注意下面有 shlw 左移 9 位的语句。 shlw $9, %cx /* CX = number of bytes read */ 这一语句是关键。如果扇区数 CX= 0x80,则左移 9 位之后,CX 变成 0 了!!!! jz 3f 当 CX=0 时,跳到标号 3: 去执行修正 ES 的语句。 addw %cx, %bx /* ES:BX points to new location */ 如果 CX 是 0,则把它加到 BX,不可能有进位。执行下面的 JNC 就直接跳到标号 2:了。 jnc 2f 3: movw %es, %ax /* BX=0, exceeds 64K boundary, adjust ES */ addw $0x1000, %ax movw %ax, %es movb $0x80, %ah /* adjust max number of sectors to read */ 2: 在 ftp://ftp.cosoft.org.cn/incoming/ 之下已经有太多的 GRUB 文件了,有点垃圾的感觉。所以,我有点害怕上载了。谁能提供一个别的上载空间,临时的?因为最近有很多的修改之处,所以不想为一点点修改而上载到 cosoft 的宝贵空间上。 如果没有其它上载空间,要么等待下次一并更新,要么麻烦两位老兄自己编译更新。




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

不甘寂寞的人


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

更进一步,猜想当 NTLDR 在物理位置上如下排列时,NTLDR 也会死机(微软的 NTLDR)。因为似乎 NTLDR 的程序也存在 BUG。 第一部分是连续的 x 个扇区,第二部分是连续的 y 个扇区,第三、四………部分任意。其中 x 介于 1 和 127 之间,y 大于或等于 128。 处于 FAT12、FAT16 文件系统之下才能表现出该 BUG。在 FAT32 和 NTFS 下没有问题。




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

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 216 楼』:  

以下是引用不点在2004-2-28 19:49:44的发言: 在 ftp://ftp.cosoft.org.cn/incoming/ 之下已经有太多的 GRUB 文件了,有点垃圾的感觉。所以,我有点害怕上载了。谁能提供一个别的上载空间,临时的?因为最近有很多的修改之处,所以不想为一点点修改而上载到 cosoft 的宝贵空间上。 如果没有其它上载空间,要么等待下次一并更新,要么麻烦两位老兄自己编译更新。
不点:上传到上次我说的ipdown.com的FTP上如何,比如在里面建一个grubdos目录,然后随便上传GRUB的文件即可。




Wengier - 新DOS时代 欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址: wendos.mycool.net/ E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
2004-2-28 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

好的。给我一个上传口令吧。




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

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 218 楼』:  

OK,上传口令已用短信发送,请注意查收。




Wengier - 新DOS时代 欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址: wendos.mycool.net/ E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
2004-2-29 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

已经上传。 http://www.ipdown.com/grub4dos/bootgrub http://www.ipdown.com/grub4dos/grldr BOOTGRUB 现在是 3 个扇区,也就是 1536 字节。如果它不好用,就改用以前的版本,OK。 BOOTGRUB 现在增加了 FAT32 的启动代码。请将 BOOTGRUB 的第二扇区和第三扇区放置到紧接硬盘 MBR 之后的扇区位置上。BOOTGRUB 的第一扇区,暂时不要放置到 MBR。可从 BOOT.INI 中调用 BOOTGRUB。或者从 grub 中 chainloader (...)/bootgrub 也可以的。 如果 BOOTGRUB 的第二扇区和第三扇区没有放置到紧接 MBR 之后的扇区位置上,那么也可以正常工作,不过依赖于系统存在有 nt boot sector。 BOOTGRUB 并没有彻底完成。目前缺少对 fat12/16 的支持。完成之后大约是 4 个扇区,2048 字节。 BOOTGRUB 的第一扇区,放置到 MBR 也是可以的。当然只能把 BOOTGRUB 的开头 446 字节放到 MBR,也就是说,MBR 尾部的 66 字节是万万不可覆盖掉的(不熟悉的朋友在此止步,不要盲干)。 ---------- 请测试 GRLDR 文件是否正常了。 又及,微软的 NTLDR 程序没有错误,是我看错了。不要再去试验它了。




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




积分 104
发帖 2
注册 2004-2-28
状态 离线
『第 220 楼』:  

上次我说改成fat32后DOS不行了,是我忘了更新bootsect.dos。 我做的一些测试: NTBootSector + bootgrub(2月7日版) + grldr(ipdown版2月29日, blocks连续) + FAT16 = pass NTBootSector(改NTLDR->GRLDR) + grldr(ipdown版2月29日, blocks连续) + FAT16 = pass NTBootSector + bootgrub(2月7日版) + grldr(ipdown版2月29日, blocks连续) + FAT32 = pass NTBootSector(改NTLDR->GRLDR) + grldr(ipdown版2月29日, blocks连续) + FAT32 = pass NTBootSector + bootgrub(2月7日版) + grldr(ipdown版2月29日, blocks连续) + NTFS = fail NTBootSector(改NTLDR->GRLDR) + grldr(ipdown版2月29日, blocks连续) + NTFS = 进入grub命令行 (预料之中) NTBootSector + bootgrub(ipdown版2月29日)整个在文件系统 + grldr(ipdown版2月29日, blocks连续) + FAT32 = fail (显示NTLDR not found) bootgrub(ipdown版2月29日) 2,3扇区-> MBR 2,3扇区 未测试 另:上次说过有些机器装了ATA raid卡之类的卡不能运行grub for dos 0.2版。0.1版没有这个问题,1.44M软盘只读仿真也正常。建议不点在grub for dos 0.2版遇到BIOS中断向量表有不确定的地方的时候,如果可以的话,保留0.1版最基本的boot功能,或者进一步保留0.1版的标准软盘只读仿真功能,而不是简单地退出grub。这样设计可能更周全一些。因为0.2版至少给人的感觉是0.1版的增强。如果原来0.1版用得还好,换上0.2版后压根儿就拒绝工作,连基本的boot功能都不让用了,这样不利于0.2版的推广。


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

不甘寂寞的人


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

非常感谢 tmpid 兄的大力协助! 根据您的测试,我觉得新的 GRLDR 是比较正常的了。而在你发这个帖子之前,BOOTGRUB 是有错误的,今天早晨(3月1日) 9:00 刚刚更新了 BOOTGRUB 文件,也就是纠正了一个错误。但它究竟能否启动 GRLDR,我确实也没有测试过。更新后的 BOOTGRUB 文件的下载地址仍然是 http://www.ipdown.com/grub4dos/bootgrub 另外源程序下载: http://www.ipdown.com/grub4dos/bootgrub.S http://www.ipdown.com/grub4dos/grldrstart.S 有兴趣的朋友可以下载研究,帮助改进。 > 上次说过有些机器装了ATA raid卡之类的卡不能运行grub for dos 0.2版。0.1版没有这个问题, > 1.44M软盘只读仿真也正常。建议不点在grub for dos 0.2版遇到 BIOS中断向量表有不确定的 > 地方的时候,如果可以的话,保留0.1版最基本的boot功能,或者进一步保留0.1版的标准软盘 > 只读仿真功能,而不是简单地退出grub。这样设计可能更周全一些。因为0.2版至少给人的感觉 > 是0.1版的增强。如果原来0.1版用得还好,换上0.2版后压根儿就拒绝工作,连基本的boot功能 > 都不让用了,这样不利于0.2版的推广。 您这里说的 0.2 不能运行的情况,我感到本来是不应当发生的。0.1都运行了,0.2却不能运行,这肯定是个 BUG 了。不过如果没有更进一步的详情,也难以定位这个 bug。您能否提供您的 DOS 内存映象?也就是把 DOS 所管辖的 1M 内存截获,发到一个可以让我下载的地方。




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

不甘寂寞的人


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

3月2日凌晨4点(北京时间)更新: BOOTGRUB 和 BOOTGRUB.S 文件刚刚更新。下载地址不变: http://www.ipdown.com/grub4dos/bootgrub http://www.ipdown.com/grub4dos/bootgrub.S 以下两个文件没有变化,仍然是 2 月 29 日的版本。 http://www.ipdown.com/grub4dos/grldr http://www.ipdown.com/grub4dos/grldrstart.S 更新后的 BOOTGRUB 确信可以运行了。原来是犯了一个隐蔽的错误: mov ah,8 int 13 这个调用的输出结果存放在 CX 和 DX 中,结果把我们的 BIOS 磁盘号码 DL 给覆盖掉了。像这类错误经常发生,而又经常难以避免。已经修改成这样: mov ah,8 push dx int 13 pop dx 这样就好了。




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




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 223 楼』:  

以下是引用不点在2004-3-2 4:31:55的发言: 3月2日凌晨4点(北京时间)更新: BOOTGRUB和BOOTGRUB.S文件刚刚更新。下载地址不变: http://www.ipdown.com/grub4dos/bootgrub http://www.ipdown.com/grub4dos/bootgrub.S 以下两个文件没有变化,仍然是2月29日的版本。 http://www.ipdown.com/grub4dos/grldr http://www.ipdown.com/grub4dos/grldrstart.S 更新后的BOOTGRUB确信可以运行了。原来是犯了一个隐蔽的错误: movah,8 int13 这个调用的输出结果存放在CX和DX中,结果把我们的BIOS磁盘号码DL给覆盖掉了。像这类错误经常发生,而又经常难以避免。已经修改成这样: movah,8 pushdx int13 popdx 这样就好了。
Dear TinyBit, Does the new BootGrub support FAT12/16 partition? If not, when will it be ready? [em12][em12][em12]

[此贴子已经被作者于2004-3-2 9:04:13编辑过]



2004-3-2 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

还不支持 FAT12/16. FREEDOS 的 BOOT 代码, FAT12/16 比 FAT32 还难以看懂. 由于身体问题, 我无法抽出专门时间来做. =========== BOOTGRUB 又有更新了. 上午 9 点 27 分.




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




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 225 楼』:  

以下是引用不点在2004-3-2 9:31:17的发言: 还不支持 FAT12/16. FREEDOS 的 BOOT 代码, FAT12/16 比 FAT32 还难以看懂. 由于身体问题, 我无法抽出专门时间来做. =========== BOOTGRUB 又有更新了. 上午 9 点 27 分.
Dear TinyBit, Health is of No. 1 importance. Take care of your health first! [em12][em12][em12]


2004-3-2 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
<   <<   [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]  ... [19] >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: