中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » [下载]grub4dos用内存仿真磁盘,请测试
« [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] »
作者:
标题: [下载]grub4dos用内存仿真磁盘,请测试 上一主题 | 下一主题
不点
银牌会员

不甘寂寞的人


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

wangsea:

> 能否开发一个精简的Grub版本

我目前的答复是,不能。原因前面说过,要真正大规模精简,就得转向汇编语言,有可能将 GRUB 精简至 30K 以内。不过,你可以尝鲜 gandalf 新近创作的 avldr.exe。

> 功能:Grub XXX.img 命令行功能的版本(不需要menu.lst)

此处的问题是(前面也曾经提到过),XXX.img 要装入扩展内存的话,有可能失败。如果此时没有 himem等内存管理程序,那么这有可能实现,但是,在有 himem 等内存管理程序存在的情况下,这将变得很复杂,很困难了。也就是说,把 XXX.img拷贝到物理内存的顶端,这个目的恐怕达不到,拷贝过程有可能会失败(比如如果覆盖掉已经分配了的关键的 XMS内存的话)。如果谁能详细研究 XMS等等这些 DOS下的扩展内存规范,能够顺利实现拷贝的话,那么,他就可能制作出你所说的这种工具。我支持有人做,但我没有时间,也没有兴趣做,即使不考虑内存管理程序的影响,我也不想做(我认为其意义不是很大)。

如果你说的是脱离扩展内存,只使用磁盘介质的仿真(相当于没有 --mem 参数),并且假定 XXX.img 是连续的。这样可以实现你的要求,但是,仍然存在下面的问题:

如果你说的是用 grub 命令实现仿真,然后退回到-------原来的------ DOS,那么,这可是在欺骗 DOS,注意 DOS 有时可以被欺骗,有时它不能被欺骗。

如果你的系统中有一个真实的软驱,你用 XXX.img 仿真(fd0)软盘,这是可以欺骗 DOS 的。如果你的系统中有 n 个硬盘,而你用XXX.img 仿真第 n + 1 个硬盘,这恐怕不行,即使你同时修改了 BIOS 数据区中的软盘和硬盘个数字节,也不行。这是因为,DOS在启动时已经确定了磁盘的总数,在启动之后新增加的磁盘,它都可能不承认的。

还有一个问题是,此时很容易死机,我能想到的死机原因,大致有以下两个方面:

1. 如果仿真程序没有处理好 DOS 常规内存的 arena 结构,则 直接就死掉。
2. 如果仿真了当前 DOS 正在使用的磁盘,则当仿真之后 DOS 可能因为找不到原来真实磁盘上的内容而出错,甚至死掉。

有鉴于以上这些复杂的原因,所以,我不主张别人去做这样的开发。当然了,如果确实有 DOS 高手愿意做,那么这些问题可能都会得到解决的,虽然很不容易。





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




积分 445
发帖 110
注册 2004-5-28
状态 离线
『第 212 楼』:  

不点:
    我想可能是我没把意思表达清楚,比如我有一个批处理:menu.bat
grub.exe --config-file=(hd0,0)/test/menu.lst  
我的menu.lst是这样的:
timeout 0
default 0
kernel (hd0,0)/test/memdisk.gz
initrd (hd0,0)/test/Grub.zip
boot
上面的批处理的内容仅仅是启动一个仿真的磁盘进入系统(不再退回),所以我想如果能去掉menu.lst(如果俺只是想仿真一个磁盘,不使用Grub的菜单功能,那么何必又要写menu.lst呢?),直接地在命令行输入:grub.exe -mem  -fdo  xxx.img  多好啊。
既然grubfordos可以在批处理中调用menu.lst直接仿真磁盘,那么命令行直接给参数应该可以的吧?(即便有一些目录路径限制这么做也值得的呀!)

[此贴子已经被作者于2005-4-28 13:08:39编辑过]




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

不甘寂寞的人


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

你的意思是将菜单或者命令直接嵌入到命令行中。这个有点意思,应该可以实现。谢谢你提供此建议。请你关注 grub.exe 的开发。




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




积分 445
发帖 110
注册 2004-5-28
状态 离线
『第 214 楼』:  

谢谢不点,期待grub的新功能。

2005-4-28 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gmy
版主

操作系统爱好者


积分 1113
发帖 392
注册 2002-11-11
状态 离线
『第 215 楼』:  

GRUB菜单中加入引导U盘,不知能否做到?关键在于BIOS对U盘引导的支持不规范,有的形同虚设(USB-FDD,USB-HDD,USB-HDD)



DOS之家 http://doshome.com 站长 葛明阳
2005-4-29 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『第 216 楼』:  

有些BIOS不支持从U盘启动,GRUB能不能从U盘启动?(这当然需要在GRUB里事先加载U盘驱动的)
另,GRUB现在能不能支持多光驱?

[此贴子已经被作者于2005-4-30 1:11:49编辑过]




2005-4-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dato
高级用户




积分 916
发帖 377
注册 2004-3-8
状态 离线
『第 217 楼』:  

好像有吧  --enable-preset-menu=FILE
                          preset a menu file FILE in Stage 2不过要是包含菜单的话,分发给别人,想修改就麻烦了



http://dato.ys168.com
google search bot
http://dato.minidns.net/
2005-4-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hnlyzhd
高级用户




积分 544
发帖 164
注册 2004-10-17
状态 离线
『第 218 楼』:  



  Quote:
以下是引用gmy在2005-4-29 23:38:13的发言:
GRUB菜单中加入引导U盘,不知能否做到?关键在于BIOS对U盘引导的支持不规范,有的形同虚设(USB-FDD,USB-HDD,USB-HDD)

USB-ZIP是最有希望的一种可以引导的方式,不过有的BIOS不支持GRUB引导,你可以用安装到软盘的方法以,把GRUB安装到U盘,然后测试,我仅在ASUS和IBM的机子上成功启动



    我的留言簿

http://hnlyzhd.ys168.com            我的网络盘
2005-4-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
GONGXP
初级用户




积分 184
发帖 31
注册 2005-3-13
状态 离线
『第 219 楼』:  

还是关于从netware下远程启动的dos(6.22或者7.1)无法使用grub.exe的问题,试过Avldr情况也一样。netware下远程启动的dos改变了bios向量,int19,和int13,不知可否改改善grub for dos, 能够在这些“污染”了bios的dos中使用?

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

不甘寂寞的人


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

gmy和GOTOmsdos的U盘/光盘相关问题,本人以前说过,无能力解决。

GONGXP的问题,也许将来我们可以一并解决,但是,现在我本人没有开发计划。将来如果改进我们的探测算法,就可能顺便把该问题解决掉。我本人不会专门为了这一个问题而去着手解决它。探测算法的改进,是一个巨大的变化,有相当大的开发难度,是不会优先开发它的。如果2006年年底时能做好就很不错了。如果你不能等待,你可以自己尝试修改 dosstart.S 来实现你的目的。




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




积分 544
发帖 164
注册 2004-10-17
状态 离线
『第 221 楼』:  

不点你到哪里去了,常来呀,或者到无忧去呀,好多人在找你呢!



    我的留言簿

http://hnlyzhd.ys168.com            我的网络盘
2005-5-20 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

最近都在搞 wangsea 所提到的 grub.exe 的功能增强。真没想到这很麻烦,有许多困难需要克服,不过现在已经完成,在 0.4.1pre5 中实现了。

具体的实现是这样的:并未给 GRUB.EXE 增加新的命令行参数,而是仍旧沿用旧的 --config-file=FILE 格式,不过,对FILE 有新的解释。当 FILE 是以 左括号 "(" 或者 斜杠"/" 或者加号 "+"开头的时候,就仍旧像以前那样,解释为一个配置文件的名字。当 FILE 不是以上述三个字符之一开头的时候,认为 FILE是命令序列,也就是认为把配置文件的内容直接嵌入到 FILE 处了。注意,写在 FILE处的命令如果多于一条,应当用分号分隔开来,GRUB.EXE 会把“分号”自动转换成“换行符”,然后才交给 GRUB 的主程序。最好在 FILE的两边加上双引号。举例如下:

grub.exe --config-file="root (hd0,0);chainloader +1"

你注意到最后的一条 boot 命令是可以省略的。你甚至可以用

grub.exe --config-file="halt"

来关机,或者用

grub.exe --config-file="reboot"

来重启动机器。

也就是说,在 FILE 的位置,你可以填入任何 GRUB 可以识别的命令。





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

CPU


积分 362
发帖 96
注册 2004-7-8
来自 北京
状态 离线
『第 223 楼』:  

支持不点提供的新功能! [em07]也就是说,可以从命令行载入 FDD image 了! ^_^,太好了。



f22_storm@163.com
http://sysoft.zdwx.com/
2005-5-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangsea
中级用户




积分 445
发帖 110
注册 2004-5-28
状态 离线
『第 224 楼』:  

感谢不点,在第一页提供的Grub地址中下吗?真有些迫不及待想试啦。有个建议:      能不能单独开发一个版本的grubfordos或是gurb带上某个参数后就可实现默认启动与grubfordos同一目录的img,不用填写root (hd0,0)这样的绝对磁盘路径(让程序来完成这个操作)。如果路径指定失败,返回一个错误提示后不再启动Gurb, 感觉这样更方便些。

2005-5-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangsea
中级用户




积分 445
发帖 110
注册 2004-5-28
状态 离线
『第 225 楼』:  

刚才做了个测试,成功启动了镜像
偶的参数:
grub.exe --config-file="map --mem (hd0,0)/gxms.img (fd0);map --hook;chainloader (fd0)+1"
使用的镜像是偶写的ghost完美中文shell (http://wangsea.ys168.com/  ghost完美中文shell目录下的gxms_hpa.rar)
发现有个问题:
1:第一次因我忘了指定(hd0,0)/gxms.img ,而直接写的是gxms.img,结果菜单出来后我编辑正确并启动镜像后在偶写的图形界面中死机。
2:参数如果第一次就指定正确进入镜像没有问题。
但不管参数正确与否,grub未启动镜像前软驱都一直在响,,直至屏幕上出现参数时才停止。
再次感谢不点提供了这么好一功能给我们使用,期待提供方法避免这个问题。
另外,因dos命令行的字符限制问题,还是我楼上想说的,能否有个默认当前路径,这样可以写更多的命令参数。

[此贴子已经被作者于2005-5-26 21:09:10编辑过]




2005-5-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: