无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 6063|回复: 21
打印 上一主题 下一主题

dos下面有没有直接引导MBR文件的软件?

[复制链接]
跳转到指定楼层
1#
发表于 2011-3-20 12:33:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这样的话,就不需要grub.exe了,我做启动盘的,grub.exe,200多k,我想节省空间,grub.mbr才8k。

[ 本帖最后由 2011大帝 于 2011-3-20 13:02 编辑 ]
2#
 楼主| 发表于 2011-3-20 13:07:15 | 只看该作者

如果有的话,还有另外的好处

比如Win98系统的mbr保存为Win98.mbr,xp的保存为xp.mbr,win7的保存为win7.mbr,想要重新启动,只要执行loadmgr.com xp.mbr。我想这个grub4dos能做到,但是太大了,能不能发个短小精悍的版本,最好十几、几十k的。或者做一个小com,专门引导grldr的,grub.exe太大了。
回复

使用道具 举报

3#
发表于 2011-3-20 15:21:10 | 只看该作者

回复 #2 2011大帝 的帖子

grub.exe是G4D的主体文件,在DOS下启动如果没有它是不能启动到G4D的,而GURB.MBR只是一个引导头,它与前者是不能分离的。离开了前者,它不起任何作用。
 GRLDR自带引导头,相当于前两者的合一。
所以楼主的愿望至少目前是不能实现的。
回复

使用道具 举报

4#
 楼主| 发表于 2011-3-20 16:15:55 | 只看该作者
能不能做一个精简的grub.exe文件,只负责查找并引导grldr这个文件?
回复

使用道具 举报

5#
发表于 2011-3-20 20:20:35 | 只看该作者

回复 #4 2011大帝 的帖子

这种事情,其答案应该是:完全有可能,因为这不存在技术困难。不过问题是目前没人愿意去做,这才是要点。

技术上行得通的事情,并非都有人去做。只要有人做,很多事情都能办。
回复

使用道具 举报

6#
发表于 2011-3-20 20:38:59 | 只看该作者

回复 #1 2011大帝 的帖子

200K的软件都嫌大啊?难道你做的是1.44M的启动盘?
回复

使用道具 举报

7#
发表于 2011-3-20 21:10:23 | 只看该作者
原帖由 2011大帝 于 2011-3-20 16:15 发表
能不能做一个精简的grub.exe文件,只负责查找并引导grldr这个文件?

如果你会编程的话,可以自行动手,G4D是开源的呢....

200K也叫大,你在用软盘吗?
回复

使用道具 举报

8#
 楼主| 发表于 2011-3-20 21:16:33 | 只看该作者

这个200k的问题么。。。

一个grldr,200多k,而且在目前的情况开来,版本越新,个头越大。再加上一个grub.exe,200多k,功能差不多,感觉就浪费空间了。没有错,我在1.44m的软盘上面用过。

感觉这个是个问题,如果,能够缩减体积的话就更好了。

比如:grub.exe的目的是引导grldr,至于传递参数么,方法很多了。

感觉两个就是功能差不多的东西。
回复

使用道具 举报

9#
 楼主| 发表于 2011-3-20 21:17:37 | 只看该作者
我只会一点点c++基础,汇编不会。所以,有了源代码,我也不会做啊。
回复

使用道具 举报

10#
 楼主| 发表于 2011-3-20 21:18:18 | 只看该作者
我只是提一些意见而已,软件怎么设计,是个架构问题。
回复

使用道具 举报

11#
发表于 2011-3-21 08:16:20 | 只看该作者
回复诸位:

2011大帝 所提出的问题,确实是个问题,就是说,确实有意义。

比如说,当用户希望使用 grldr 作为磁盘(假定是 A: 盘)第一启动,当启动 DOS 后,又想回到 grub 环境,此时,A: 盘上还得有个 grub.exe 才行。而如果有个较小的启动 grldr 的程序,就可以省掉 grub.exe 的200K 了。

将来也许我们会完善软件功能解决这些问题的。不过,目前没人有时间弄这个事。毕竟使用 1.44M 软盘的人不太多,这个问题不太紧迫。
回复

使用道具 举报

12#
发表于 2011-3-21 11:13:08 | 只看该作者
用 HDcopy 把 1.44M 的盘格成 2.08M 的吧
回复

使用道具 举报

13#
发表于 2011-3-21 12:46:01 | 只看该作者

回复 #11 不点 的帖子

不点大,我觉得这不太难实现。我们可以把grub.exe拆了,把stage2删掉,换成grldr.mbr,再略微改改加载地址什么的,利用grub.exe的文件头把dos的中断钩子去了,再用grldr.mbr重新回到grldr环境。大小应该能控制在50k以内吧?


自己编辑:哦对了,我忘了,还要解决dl寄存器的问题,我忘了。还有就是grub.exe的文件头要废除掉无用的参数,毕竟grldr.mbr什么参数也不认,也没有内置菜单什么的。

[ 本帖最后由 wannaknow 于 2011-3-21 13:20 编辑 ]
回复

使用道具 举报

14#
发表于 2011-3-21 12:59:07 | 只看该作者

回复 #13 wannaknow 的帖子

对了,我们还可以把stage_2换成wee的stage_2,不点大有心情的话加个参数动态加载内置菜单,或者让现有参数支持wee风格动态内置菜单,搞个wee.exe,嗯嗯。哈哈,我太天才了(众人:就这还敢自称天才,太臭不要脸了)

[ 本帖最后由 wannaknow 于 2011-3-21 13:17 编辑 ]
回复

使用道具 举报

15#
 楼主| 发表于 2011-3-22 01:20:30 | 只看该作者
你所关心的是参数传递的问题啊。

你们为了解决参数的传递,才做出这么大的一个grub.exe啊。可以婉转解决么?

我提一个比较笨的办法,让grldr在启动的时候,默认(不是内置菜单查找)先查找内存或者磁盘一个特殊的文件,比如暂定argv.lst,grldr启动之后,“删除”argv.lst。这里的问题是,貌似grub4dos不能删除文件。

另外一个办法是:在grldr尾部预留一段空间,暂定在grldr内核和内置菜单之间留出512字节的空间。grub4dos的参数长度好像是512字节,作为命令传递的缓冲,这个理论能够实现。grub.exe本身在dos下面,可以直接读写grldr;grldr启动之后,完全可以使用dd命令清空参数。grldr启动的时候,首先检查这块空间的参数,再加载内置菜单。
回复

使用道具 举报

16#
 楼主| 发表于 2011-3-22 01:23:47 | 只看该作者
dos命令行的参数似乎是128字节,那么,你最多留出128字节的空间作为参数就可以了嘛。
回复

使用道具 举报

17#
发表于 2011-3-22 07:24:18 | 只看该作者

回复 #15 2011大帝 的帖子

啊不,参数问题不是什么大问题,grub.exe也不是因为处理参数很麻烦才那么大的。grub.exe大的主要原因是stage2很大。grub.exe头部的核心功能是恢复被dos劫持的中断向量表,简单的说就是动态“卸载”dos。
我想说的是grub.exe支持--config-file=FILE参数,我是怕有的人错误的指定这个参数,因为我要把stage2换成grldr.mbr,而grldr.mbr没有内置菜单,我怕有问题。
回复

使用道具 举报

18#
 楼主| 发表于 2011-3-22 13:48:34 | 只看该作者
grub.exe支持的--config-file=FILE,可以像我说的那样记录在某个位置,让grldr去执行么?。
回复

使用道具 举报

19#
发表于 2011-3-22 14:56:03 | 只看该作者

回复 #18 2011大帝 的帖子

啊!我的表述能力太差了。
原版的grub.exe内含完整的pre_stage2,具备完整的功能,是个好东西!
但是你嫌它太大了,这个可以理解。
我的新想法是:把grub.exe拆了,只保留它的头部,后面接上grldr.mbr或者wee的pre_stage2(其中后者更容易实现).
但是grldr.mbr本身不含menu,它的唯一的功能是搜索grldr并且加载之.由于grldr.mbr不知道menu的那些事,因此我这个"杂交"的文件也不支持--config-file=FILE参数,而且还有可能造成严重破坏,我想说的是这个......
少个功能不是啥大问题,胡乱破坏就不好了.

[ 本帖最后由 wannaknow 于 2011-3-22 14:58 编辑 ]
回复

使用道具 举报

20#
 楼主| 发表于 2011-3-22 16:06:40 | 只看该作者
我想我的表达能力也比较差。

grldr.mbr是不支持参数,可是grub.exe支持啊,然后由grub.exe随便把参数记录在某个位置,接着让grldr.mbr启动grldr,剩下的工作由grldr来处理吧。

不过这个方案,是需要修改grldr的,整体构架就变了。
回复

使用道具 举报

21#
 楼主| 发表于 2011-3-22 16:07:53 | 只看该作者
或者我们的目的很简单,不需要传递任何参数,只是让grub.exe来启动grldr,这个就简单了。
回复

使用道具 举报

22#
 楼主| 发表于 2011-3-22 16:11:16 | 只看该作者
希望你先做出一个能用的,让我先用着。我的最初目的也只是让grub.exe能够启动grldr,从dos直接返回菜单就可以了,我还没有用过参数呢。

或者发布两个版本的grub.exe,一个是现在200多k的,一个只是简单的启动器。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-26 08:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表