|
windrv
中级用户
积分 385
发帖 118
注册 2003-11-11
状态 离线
|
『第
256 楼』:
Dear TinyBit,
Please take sufficient rest!
When you do feel well, you could contribute by enlightening us on the technical
aspects of GRUB for DOS. You need not do coding for the moment.
We may follow up if we have time. As it is an open-source project, anybody who
has such expertise is welcome to join in.
Detailed documentation is in need and cannot be done without your enlightenment.
[em12][em12][em12]
[此贴子已经被作者于2004-3-16 9:11:36编辑过]
|
|
2004-3-16 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
257 楼』:
以前好像提到在 LINUX 伊甸园的某个文档里,有 GRUB for DOS 的技术资料。当然,也可能有些问题没有考虑到。但是,我作为一个写这篇文档的人,毕竟有我的能力和视角的限制,不一定能够体现出所有的方面、解决所有的问题。也许有些问题需要等到它暴露出来之后才能发现它、解决它。我目前脑子里好像很空白了,没能发现什么。您觉得还有什么需要说的,我会尽力的。谢谢您的关心,没有您,我的身体不会恢复这么快。我现在还是要尽量避免写程序,只能偶尔写一次,像蜻蜓点水。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-4-5 00:00 |
|
|
windrv
中级用户
积分 385
发帖 118
注册 2003-11-11
状态 离线
|
『第
258 楼』:
Quote: | 以下是引用不点在2004-4-5 13:41:44的发言:
以前好像提到在LINUX伊甸园的某个文档里,有GRUBforDOS的技术资料。当然,也可能有些问题没有考虑到。但是,我作为一个写这篇文档的人,毕竟有我的能力和视角的限制,不一定能够体现出所有的方面、解决所有的问题。也许有些问题需要等到它暴露出来之后才能发现它、解决它。我目前脑子里好像很空白了,没能发现什么。您觉得还有什么需要说的,我会尽力的。谢谢您的关心,没有您,我的身体不会恢复这么快。我现在还是要尽量避免写程序,只能偶尔写一次,像蜻蜓点水。 |
|
I think you could also consolidate what you put in 伊甸园 to your
homepage so that people can easily get all the files in one place.
[em12][em12][em12]
[此贴子已经被作者于2004-4-6 20:13:14编辑过]
|
|
2004-4-6 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
259 楼』:
我制作了 pre5。不知 windrv 兄和 wengier 兄有什么计划?可否把 pre5 在您们各自制作的主页上提供下载?
http://ipdown.com/grub4dos/grub_for_dos-0.2.0pre5.tar.gz
pre5 解决了 ruymbeke 提出的一个问题,就是在 map 命令行中可以省略 root 设备名了。即,可以这样使用:
map /file.img (fd0)
此时假定 root 设备已经指定。
另外还解决了 tmpid 所提到的两个 BUG。一个是 GRLDR 不能在 FAT12、FAT16下运行;另一个是 GRUB.EXE 不能运行。前者应当已经得到了 tmpid 兄的确认,后者需要等待 tmpid 兄的确认。估计问题不大。
还剩下 wengier 兄提到的 shell=c:\grub.exe 的 BUG 没有解决。
http://ipdown.com/grub4dos/
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-4-10 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
260 楼』:
pre6 也上载了.
http://ipdown.com/grub4dos/
http://ipdown.com/grub4dos/grub_for_dos-0.2.0pre6.tar.gz
解决了 Config.sys 中不能使用 shell=grub.exe 的问题.
至此, 所有已知的 BUG 都得到了修复. 如果没有什么问题, pre6 应当可以直接升级为最终的正式版.
我的任务应当完成了, 而且我自己很满意. 我可以睡大觉了. 剩下的都是您们的事了:-)
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-4-12 00:00 |
|
|
Wengier
系统支持
“新DOS时代”站长
积分 27734
发帖 10521
注册 2002-10-9
状态 离线
|
『第
261 楼』:
不点:您能不能大概介绍一下关于pre6版中修正的那个关于SHELL命令的BUG是什么原因造成的呢?
另外,我上次不是和您说过我用GRUB for DOS/NTLDR来禁用第二个硬盘以正常启动到WinME吗?这样做启动WinME后禁用硬盘的目的确实达到了,不过连着那个硬盘的IDE接口上的IDE光驱在WinME下也同时被禁用而看不到了。而如果在BIOS中禁用硬盘的话,那WinME启动后则看不到硬盘但能看到那个光驱。如果在GRUB禁用硬盘的情况下,在WinME的纯DOS下加载光驱驱动程序(VIDE-CDD.SYS+MSCDEX.EXE)后再进入WinME的话,那么在WinME下虽可以正常看到并读出光驱中的内容,但此时在WinME下使用光驱将和普通DOS下一样,既不支持光盘上的长文件名,也不能用Nero等软件刻录CD,因为MSCDEX并不支持这些功能。能不能使得用GRUB禁用硬盘的效果和BIOS中禁用硬盘的效果一样,在WinME下也能直接识别那个连在一个IDE接口上的光驱呢?
|
Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
|
|
2004-4-15 00:00 |
|
|
windrv
中级用户
积分 385
发帖 118
注册 2003-11-11
状态 离线
|
『第
262 楼』:
Quote: | 以下是引用不点在2004-4-12 11:57:59的发言:
pre6 也上载了.
http://ipdown.com/grub4dos/
http://ipdown.com/grub4dos/grub_for_dos-0.2.0pre6.tar.gz
解决了 Config.sys 中不能使用 shell=grub.exe 的问题.
至此, 所有已知的 BUG 都得到了修复. 如果没有什么问题, pre6 应当可以直接升级为最终的正式版.
我的任务应当完成了, 而且我自己很满意. 我可以睡大觉了. 剩下的都是您们的事了:-)
|
|
Dear TinyBit,
Don't work too hard! Please leave it until you fully recover.
Bean123 is testing Grub For DOS and is beginning to write up WINGRUB and
we expect it to be out sometime next week.
[em12][em12][em12]
|
|
2004-4-15 00:00 |
|
|
windrv
中级用户
积分 385
发帖 118
注册 2003-11-11
状态 离线
|
『第
263 楼』:
Quote: | 以下是引用Wengier在2004-4-15 10:27:48的发言:
不点:您能不能大概介绍一下关于pre6版中修正的那个关于SHELL命令的BUG是什么原因造成的呢?
另外,我上次不是和您说过我用GRUB for DOS/NTLDR来禁用第二个硬盘以正常启动到WinME吗?这样做启动WinME后禁用硬盘的目的确实达到了,不过连着那个硬盘的IDE接口上的IDE光驱在WinME下也同时被禁用而看不到了。而如果在BIOS中禁用硬盘的话,那WinME启动后则看不到硬盘但能看到那个光驱。如果在GRUB禁用硬盘的情况下,在WinME的纯DOS下加载光驱驱动程序(VIDE-CDD.SYS+MSCDEX.EXE)后再进入WinME的话,那么在WinME下虽可以正常看到并读出光驱中的内容,但此时在WinME下使用光驱将和普通DOS下一样,既不支持光盘上的长文件名,也不能用Nero等软件刻录CD,因为MSCDEX并不支持这些功能。能不能使得用GRUB禁用硬盘的效果和BIOS中禁用硬盘的效果一样,在WinME下也能直接识别那个连在一个IDE接口上的光驱呢? |
|
Dear Wengier,
Could you explain why you have to disable the secondary hard disk for booting up
WinME?
[em12][em12][em12]
|
|
2004-4-15 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
264 楼』:
wengier:
shell=grub.exe 传给 grub 的命令行是 /d /k AUTOEXEC, 这个命令行是 grub.exe 所未能识别的. 修正的方法很简单, 就是设法让 grub.exe 忽略这个命令行, 把 /d /k AUTOEXEC 的第一个空格字符变成回车就OK 了.
至于您说的 IDE CDROM 问题, 我还没有仔细看, 初步感觉, 是一个不容易解决的问题.
windrv:
如果 bean123 兄发布了, 我就把他的发布作为最新版, 以后如果我也发布的话, 就以最后的版本为基础. 今后我也许会发布, 也许不会再发布. 如果我不再发布, 我就把补丁提交给 bean123 兄. 如果 bean123 兄的发布中包含了 wingrub, 那么我将来的发布(如果有的话), 也将包括 wingrub. 我的发布, 不是正式的, 只是在那个草稿页上方便大家的下载. 而 bean123 兄的发布, 将是正式的. 工作逐步转移到 bean123 兄.
请代我谢谢他解放了我.
--------
托您的福, 我现在比一个月前好多了. 现在我仍然没有完全恢复, 尽量少参与写代码. 再次谢谢您.
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-4-15 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
265 楼』:
wengier:
grub for dos 的磁盘仿真参数 --disable-chs-mode 和 --disable-lba-mode 所做的, 仅仅是让程序通过 int13/ah=02/03/42/43 等等这类接口不能成功执行, 而是返回"介质不存在"的失败消息.
winme 可能通过int13来探测硬盘, 只有当它也通过 int13 来探测 CDROM 时, 才会发生您所说的问题. 然而, CDROM似乎从来都没有过 int13 接口, 怎么可能通过 int13 接口来探测CDROM呢? 所以, 这只能归结于 windows 的秘密, 微软不想公开它操作系统的一些细节. 我觉得对此问题, 无从下手, 无法继续研究它了.
------------
刚才提到 int13 的 CDROM 探测, 或许也是有可能的. 比如 int13/AH=4b 就是针对 CDROM 的. 我最多只能对此再研究一下.
[此贴子已经被作者于2004-4-15 15:11:28编辑过]
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-4-15 00:00 |
|
|
Wengier
系统支持
“新DOS时代”站长
积分 27734
发帖 10521
注册 2002-10-9
状态 离线
|
『第
266 楼』:
Quote: | 以下是引用windrv在2004-4-15 11:20:21的发言:
Dear Wengier,
Could you explain why you have to disable the secondary hard disk for booting up
WinME?
[em12][em12][em12] |
|
是这么回事,以前安装WinME的时候,是在只有一个硬盘的情况下装的,装在E:\WINME文件夹下。后来又加挂了一个小硬盘,有一个主分区和一个扩展分区。两个硬盘在DOS下均可以正常使用。然而,由于两个硬盘均存在主分区,造成了盘符交错的问题,结果启动WinME前结果不禁用第二个硬盘的话,WinME根本无法正常启动。而如果启动DOS的话则可以通过LetterAssign来解决此问题。我不想删除第二个硬盘中的主分区来取消盘符交错,因为它也是一个可以独立使用的硬盘。我也试过用LetterAssign等软件的DOS版和WIN版来应付WinME,但都无法成功,WinME不是无法启动就是启动后发现新硬件(即第二个硬盘)后死机。由于我的系统是多启动的(用的是WinXP的启动菜单+GRUB for NTLDR),启动到各种DOS下都可以正常使用两个硬盘,而只在进入WinME时才禁用第二个硬盘,所以我不想在BIOS中直接禁用(否则所有系统都无法看到这个硬盘了),而是通过GRUB for DOS/NTLDR来在启动WinME前临时禁用。
另外说一下,用GRUB禁用硬盘并启动WinME后,在“系统属性”->“设备管理器”中的“硬盘控制器”栏中的"Primary IDE Controller"设备前有一个感叹号。那个IDE HD和IDE CD就是连在它上面的。
|
Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
|
|
2004-4-15 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
267 楼』:
> 用GRUB禁用硬盘并启动WinME后,在“系统属性”->“设备管理器”中的“硬盘控制器”栏中的"Primary IDE Controller"设备前有一个感叹号。那个IDE HD和IDE CD就是连在它上面的。
说明该 IDE 设备不能驱动.
您的设备分配是这样的吧:
Primary IDE: (hd0)----- 硬盘 (cd)------ CDROM
Secondary IDE: (hd1)----- 硬盘 含有 winme
通过禁用 (hd0) 来启动 winme.
奇怪的是, int13 居然影响到 IDE 设备的驱动了, 所以才导致硬盘和 CDROM 未被探测到.
猜想, 假如我们能够解决 IDE 设备的驱动问题, 那么, (hd0) 和 (cd) 都会被 windows 发现, 因而您想禁止 (hd0) 的目的将达不到.
所以, 眼下 IDE 不能被驱动, 反而是个好事.
前一个帖子中我曾说到 int13/ah=4b 这类可引导的 CDROM 接口. 仔细想想, 也没发现这些接口可被用来探测 CDROM 的端口. 况且我们禁用的是 int13/DL=(禁用的磁盘号码), 对其它 DL 值不起作用, 也就是说, 其它 DL 值可以顺利通过, 能够到达原来的 BIOS 程序代码.
因此, IDE 不能驱动, 这一点可能是导致 CDROM 不能发现的根本原因.
但 IDE 为何不能驱动, 这个可就更难知晓了. 我只好放弃进一步的研究.
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-4-16 00:00 |
|
|
Wengier
系统支持
“新DOS时代”站长
积分 27734
发帖 10521
注册 2002-10-9
状态 离线
|
『第
268 楼』:
Quote: | 以下是引用不点在2004-4-15 11:55:53的发言:
wengier:
shell=grub.exe传给grub的命令行是/d/kAUTOEXEC,这个命令行是grub.exe所未能识别的.修正的方法很简单,就是设法让grub.exe忽略这个命令行,把/d/kAUTOEXEC的第一个空格字符变成回车就OK了. |
|
刚才我又试了一下,发现GRUB.EXE在一些情况下用SHELL等命令加载时仍然无效。当按F8键进行Step by Step confirmation模式,或按F5键Bypass后系统提示输入命令处理器的路径时输入GRUB.EXE的情况下,由于传给SHELL的参数已不一定是/D /K AUTOEXEC,所以这时仍无法加载GRUB.EXE成为SHELL。以下是此情况下输入GRUB.EXE时屏幕上出现的信息(这只是其中的一个情况,还有其它几种类似情况):
The following file is missing or corrupted: COMMAND.COM
Type the name of the Command Interpreter (e.g., C:\COMMAND.COM)
C>grub.exe (
我的建议是GRUB.EXE运行时自动判断命令行参数的前两个字符是否是"--",如果是的话但后面不是可以接收的参数(如现在的合法参数config-file)的话就显示GRUB的命令行用法;如果命令行参数的前两个字符不是"--"的话就直接运行GRUB,不如这样如何?
另外,正式版的GRUB中上面那些测试用的显示信息(即上面那些16进制的数字等)似乎应该去掉才好。
|
Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
|
|
2004-4-22 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
269 楼』:
太好了! 这些显示的调试信息很有用, 正式版也要保留它. 因为只是在命令行不被识别的情况下才会出现这些调试信息. 正确时不会出现这些信息. 这些信息对于帮助我们判断错误的根源太有用了.
本次错误的根源是:
2F 79 20 0D
/y 参数不是以空格开头, 而是以斜杠开头. 比较罗嗦了. 这很明显是微软的一个 BUG, 空格应当放在斜杠之前, 它却放在斜杠和 y 的后面了.
> 我的建议是GRUB.EXE运行时自动判断命令行参数的前两个字符是否是"--",
> 如果是的话但后面不是可以接收的参数(如现在的合法参数config-file)
> 的话就显示GRUB的命令行用法;如果命令行参数的前两个字符不是"--"的
> 话就直接运行GRUB,不如这样如何?
如果命令行是这样的:
--config-file=(hd0,0)/boot/grub/menu.lst/y /p /d /k AUTOEXEC
就不好了. 注意: (hd0,0)/boot/grub/menu.lst/y 会被认为是路径, 这是一个失败的路径.
所以, 必须把 "/y" 里的斜杠变成回车符. 可是程序怎么知道这个斜杠不是路径分隔符呢?
所以麻烦了.
以前的 " /d /k AUTOEXEC" 中, 第一个字符是空格, 容易判断, 现在 /y 之前没有空格了, 增添了不少混乱.
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-4-23 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
270 楼』:
我现在有个这样的想法, 你看看怎么样:
当使用 shell=grub.exe 的时候, 要求采用以下的格式:
shell=grub.exe /
shell=grub.exe --config-file=(hd0,0)/boot/grub/menu.lst /
最后的斜杠前面至少有一个空格 (这可以写入 GRUB for DOS 的文档中).
这样虽然不美观, 但是却可以完美的解决微软的这一类的 BUG.
如果这样做大家可以接受的话, 现在就不需要任何更改, pre6 就行了.
|
因为我们亲手创建,这个世界更加美丽。 |
|
2004-4-23 00:00 |
|