|
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时代”站长
积分 27734
发帖 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软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
|
|
2004-2-28 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 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时代”站长
积分 27734
发帖 10521
注册 2002-10-9
状态 离线
|
『第
216 楼』:
Quote: | 以下是引用不点在2004-2-28 19:49:44的发言:
在 ftp://ftp.cosoft.org.cn/incoming/ 之下已经有太多的 GRUB 文件了,有点垃圾的感觉。所以,我有点害怕上载了。谁能提供一个别的上载空间,临时的?因为最近有很多的修改之处,所以不想为一点点修改而上载到 cosoft 的宝贵空间上。
如果没有其它上载空间,要么等待下次一并更新,要么麻烦两位老兄自己编译更新。 |
|
不点:上传到上次我说的ipdown.com的FTP上如何,比如在里面建一个grubdos目录,然后随便上传GRUB的文件即可。
|
Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
|
|
2004-2-28 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
217 楼』:
好的。给我一个上传口令吧。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-2-28 00:00 |
|
|
Wengier
系统支持
“新DOS时代”站长
积分 27734
发帖 10521
注册 2002-10-9
状态 离线
|
『第
218 楼』:
OK,上传口令已用短信发送,请注意查收。
|
Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
|
|
2004-2-29 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 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 楼』:
Quote: | 以下是引用不点在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 楼』:
Quote: | 以下是引用不点在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 |
|