无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 22180|回复: 45
打印 上一主题 下一主题

grub.exe和grldr的区别和联系是什么啊?

[复制链接]
跳转到指定楼层
1#
发表于 2010-6-6 09:38:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一次在学习别人的启动说明时,看到说grub.exe和grldr都可以加入隐藏菜单,忽然糊涂了,这二者是什么关系啊?我以前认为grub.exe是制作grldr引导的命令行程序,实际引导、启动中都用不到grub.exe。请大侠讲解释疑一下。
2#
发表于 2010-6-6 09:42:19 | 只看该作者
系统学习grub4dos就了解啦。
回复

使用道具 举报

3#
发表于 2010-6-6 10:42:41 | 只看该作者
grub.exe主要是引导dos,win98,grldr主要引导ntldr,grldr.mbr主要用于在vista和win7中引导grldr。
对我这样的一般用户来说,grub4dos就约等于grldr,用的命令10%怕是都不到,什么cat,ls,geometry几乎用不上,外部命令更别说了。

[ 本帖最后由 liuzhaoyzz 于 2010-6-6 16:15 编辑 ]
回复

使用道具 举报

4#
发表于 2010-6-6 12:11:12 | 只看该作者
grldr可以直接引导  grub.exe不能

grub.exe可以在dos下调用  grldr不能
回复

使用道具 举报

5#
发表于 2010-6-6 12:19:15 | 只看该作者

回复 #4 sratlf 的帖子

也就是说设置grldr启动后  一旦退出g4d到dos  再想回到g4
d环境只能运行grub.exe

PS: #3的瞎扯  grldr可以引导Windows全部系统(只要你要引导的系统能正常使用)  同理grub.exe也可以   grldr.mbr则是专门引导grldr的  和Win7半点关系都没有
回复

使用道具 举报

6#
发表于 2010-6-6 12:48:05 | 只看该作者

回复 #6 liuzhaoyzz 的帖子

没办法  看你的回答我查点晕了  头次见这么解释的
回复

使用道具 举报

7#
发表于 2010-6-6 15:05:09 | 只看该作者
个人理解:
grldr和grub.exe都是grub4dos的主体文件,grldr.mbr是个头文件。
grub.exe,是dos下运行的,在dos环境下要进入grub4dos,只能运行grub.exe.
grldr是启动系统时进入grub4ddos使用的文件,可用于硬盘,光盘等。比如你可以通过windows的启动项,光盘等进入grub,使用的文件就是grldr。由于grldr文件过大,win7的启动项无法直接使用,因此需要使用grldr的头文件grldr.mbr,通过grldr.mbr会搜索并引导grldr文件。
或者可以把grldr.mbr写入mbr,让它搜索引导grldr文件,以进入grub4dos环境。
回复

使用道具 举报

8#
发表于 2010-6-6 15:32:10 | 只看该作者
谢谢lianjiang的权威解释,我只是想简化他们的区别,请注意我的用词”主要引导“,没有人说grldr不能用来引导dos、win98的io.sys。
sratlf说“grldr可以引导Windows全部系统”是不对的,grldr是不能直接在vista和win7中加载grub4dos环境的,vista和win7中没有grldr.mbr怕是不能引导grub4dos吧,这样说来,“grldr.mbr和win7半点关系都没有"就更加不对了,如果直接利用grldr就能在vista和win7中启动grub4dos,那三年前bean还写个grldr.mbr干嘛?

[ 本帖最后由 liuzhaoyzz 于 2010-6-6 15:49 编辑 ]
回复

使用道具 举报

9#
发表于 2010-6-6 15:44:19 | 只看该作者
原帖由 liuzhaoyzz 于 2010-6-6 15:32 发表
谢谢lianjiang的权威解释,我只是想简化他们的区别,请注意我的用词”主要引导“,没有人说grldr不能用来引导dos、win98的io.sys。
sratlf说“grldr可以引导Windows全部系统”是不对的,grldr是不能直接在vist ...


我的不是权威解释,充其量只是一个通俗一点的说明。
对grub我只会最基本的使用,深层的理解不了。
回复

使用道具 举报

10#
发表于 2010-6-6 16:03:42 | 只看该作者
原帖由 liuzhaoyzz 于 2010-6-6 15:32 发表
谢谢lianjiang的权威解释,我只是想简化他们的区别,请注意我的用词”主要引导“,没有人说grldr不能用来引导dos、win98的io.sys。
sratlf说“grldr可以引导Windows全部系统”是不对的,grldr是不能直接在vist ...


你的理解错误  我说的"grldr可以引导全部Windows系统"是指第一引导文件是grldr  

即g4d启动再用chainloader引导各个系统的引导文件(nt5的ntldr或nt6的bootmgr)

你说的情况是ntldr或bootmgr启动后  再想办法引导grldr进入g4d环境

这样的话你所说的"grldr.mbr用来引导Win7"更是不对  明明是Win7的bootmgr引导了grldr  怎能说grldr.mbr用来引导Win7
回复

使用道具 举报

11#
发表于 2010-6-6 16:14:15 | 只看该作者
MaxNlI好像是sratlf的小号?是我领会错了。我的说法确实欠妥当。还是看lianjiang的解释吧。
确实我说反了,应该说是grub.exe主要是用来在DOS/WIN98中启动grub4dos环境,grldr主要是用来在2000/XP中启动grub4dos环境,grldr.mbr主要是用来在VISTA/WIN7中启动grub4dos环境,也可以在2000/XP中启动grub4dos环境(必须要依赖grldr的支持)。

[ 本帖最后由 liuzhaoyzz 于 2010-6-6 16:29 编辑 ]
回复

使用道具 举报

12#
发表于 2010-6-6 16:31:38 | 只看该作者

回复 #11 liuzhaoyzz 的帖子

确实是小号

有一点你一直想错了  grldr.mbr和任何系统都没有关系  它只负责寻找根目录下的grldr并引导之  

至于是谁引导grldr.mbr  那就不管了  nt5可以  nt6也可以  装到没有系统的硬盘里同样可以

这才是编写grldr.mbr的目的  是为了在任意方式下都能找到grldr来进入g4d环境
回复

使用道具 举报

13#
发表于 2010-6-6 16:47:26 | 只看该作者
原帖由 MaxNlI 于 2010-6-6 16:31 发表
确实是小号

有一点你一直想错了  grldr.mbr和任何系统都没有关系  它只负责寻找根目录下的grldr并引导之  

至于是谁引导grldr.mbr  那就不管了  nt5可以  nt6也可以  装到没有系统的硬盘里同样可以

这才是编写grldr.mbr的目的  是为了在任意方式下都能找到grldr来进入g4d环境


确实如此,但对于vista以上系统,grldr.mbr具有特殊的意义。
回复

使用道具 举报

14#
发表于 2010-6-6 16:55:37 | 只看该作者
纠缠不清了,grub4dos作为一个多引导管理器,可以引导io.sys,ntldr,bootmgr,反过来他们又可以通过grub.exe,grldr,bootmgr来引导grub4dos,这就好像是世界上先有鸡还是先有蛋的讨论一样,呵呵。

[ 本帖最后由 liuzhaoyzz 于 2010-6-6 16:58 编辑 ]
回复

使用道具 举报

15#
发表于 2010-6-6 17:03:00 | 只看该作者
找到一个权威的说明:

不点 2008-11-17 19:15
grldr 和 grldr.mbr 的区别

1. grldr 含有 16 扇区(8192 字节)的引导头,以及 GRUB 的主体程序。grldr.mbr 只有引导头(18个扇区,今后也可能会增加),而没有 GRUB 的主体程序。

2. grldr 的引导头与 grldr.mbr 的引导头的功能是一样的,都是从各个分区根目录查找 grldr 文件,载入它并执行它。但是,grldr 的引导头只有 16 扇区,无法放置磁盘几何参数的自动探测和适应代码。grldr.mbr 含有磁盘几何参数的自动探测和适应代码,这个探测代码位于 grldr.mbr 的第 17 和 18 两个扇区中。这个探测代码只有在把 grldr.mbr 安装到硬盘的 MBR 上(或者经由 VISTA 的 bootmgr 启动)时才会起作用,而经由 boot.ini 启动时,探测代码是不起作用的,这是因为在 boot.ini 的启动方式下,ntldr 只加载 grldr 的开头 16 扇区,而不加载 第17、18 扇区,这样,磁盘几何参数的自动适应代码就不存在(不在内存中)了,这个功能也就没有了。

引导头含有各种文件系统的引导支持代码。引导头的更新比较稀少,通常是几个月或者几年才更新一次。而GRUB 主体程序的更新,则很频繁(例如功能的增加、bug 的排解等),通常是几天就更新一次。无论是哪部分有更新,都会发布一个版本。

bootlace 中嵌入了 grldr.mbr,所以,一旦 grldr.mbr 有更新,bootlace 就也做了相应的更新了。

因此大多数情况下主体程序有更新,而引导头保持不变。

在 grub4dos 的每一个发布中,不管是正式的还是临时测试的,其中所有的程序都是最新的。这包括 grldr,grub.exe,bootlace.com 等。
回复

使用道具 举报

16#
发表于 2010-6-6 17:48:38 | 只看该作者
原帖由 liuzhaoyzz 于 2010-6-6 16:55 发表
纠缠不清了,grub4dos作为一个多引导管理器,可以引导io.sys,ntldr,bootmgr,反过来他们又可以通过grub.exe,grldr,bootmgr来引导grub4dos,这就好像是世界上先有鸡还是先有蛋的讨论一样,呵呵。



没办法  都是引导管理器  g4d ezboot syslinux  ntldr  bootmgr  等等  都可以互相引导  能不乱吗
回复

使用道具 举报

17#
发表于 2010-6-6 17:55:32 | 只看该作者
对用户而言,先有鸡还是先有蛋,不重要。
只要知道可以用鸡生蛋,还可以用蛋孵鸡,这就足够了。呵呵。
回复

使用道具 举报

18#
发表于 2010-6-6 18:55:27 | 只看该作者

回复 #17 lianjiang 的帖子

万一饿了想鸡吃了怎么办呢???
回复

使用道具 举报

19#
发表于 2010-6-6 22:31:44 | 只看该作者
太深奥了一点,没听懂,还得多学习。
回复

使用道具 举报

20#
发表于 2010-6-7 09:17:06 | 只看该作者
学了一下grub4dos,可惜没有看懂。还要继续啊!!
回复

使用道具 举报

21#
发表于 2010-7-14 15:33:37 | 只看该作者
#15楼的是正解也!
回复

使用道具 举报

22#
发表于 2010-8-25 19:36:19 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

23#
发表于 2010-8-26 10:13:13 | 只看该作者
没想到这么简单的一个问题我翻了三页,也没有找到一个完善的答案。更让我想不到的是,lianjiang写了grub4dos的入门教程,竟然也不完全了解grub.exe的作用。

lianjiang前面写了一些grldr和grub.exe的区别和联系,但不全面。而18楼则只是讲了grldr和grldr.mbr的区别和联系。

grldr和grub.exe都是grub4dos的主体文件,也就是说作为grub4dos的主体来说,二者是相同的,只不过相当于grub4dos穿了两件不同的衣服,也就是包装方式不同。之所以包装方式不同,是为了适应不同的启动环境的,grub4dos的设计中就尽可能考虑并照顾到了让其他启动管理软件方便的加载自己。其中grldr是为了方便被boot.ini(也就是ntldr)加载的,当然,grub4dos的mbr代码(也包括grldr.mbr)寻找的主体也是grldr,这一引导方式都是通过引导扇区的形式加载主体。而grub.exe最初是为了方便在dos环境下加载而设计的,实际上,grub4dos之所以叫grub for DOS,就是因为它最早由不点从linux下转移到了dos环境应用(我个人推测grub.exe的出现应该早于grldr,当然,仅是推测,因为我不了解grub4dos的初期发展情况),而grub.exe后来不断发展,可以经由dos命令行和win98的命令窗口直接启动(甚至还可以再返回dos或98),也可以通过config.sys以device形式加载。而且,再后来,grub.exe本身还兼容linux的内核格式,也就是说凡是支持linux内核加载的引导器都可以通过加载grub.exe来启动grub4dos,例如syslinux(pxelinux)及grub4dos自身的kernel命令,linux下的kexec,甚至dos下的loadlin,linux下的lilo等,都可以通过这种方式加载grub.exe并启动grub4dos。

既然grldr和grub.exe都是grub4dos的主体,为什么不将它们两个合成一个文件?这个问题只能用人力有时而穷来解答,也就是说,一个文件无法兼容所有的格式,只好分成多个,或许将来技术发展了,这个问题有可能得到解决。

另外,bootlace.com也是一个两栖程序,它既可以运行于dos环境,也可以运行于linux环境,也就是说,它同时是dos和linux下的可执行程序。
回复

使用道具 举报

24#
发表于 2010-8-26 14:58:29 | 只看该作者
grub.exe 进入grub后找不到ud分区
回复

使用道具 举报

25#
发表于 2010-8-26 16:39:03 | 只看该作者
我个人理解,(ud)设备有点儿类似于(pd)设备(pxe启动时),你必须从(ud)上启动时grub4dos才会识别(ud)设备,也就是说,在grub4dos启动之前,已经有BIOS级的仿真或驱动程序提供了相关设备的访问接口,才有可能在进入grub4dos之后识别相应的设备。对于(ud)来说就是bean的fbinst安装的程序(它用于驱动ud文件系统),而对于(pd)来说就是pxe的相关启动规范也就是pxe stack。同样的,你从硬盘上启动grldr,它也不会识别你的(ud)。

想让grub.exe支持ud,就要从ud直接启动grub.exe,例如,先从ud启动grldr,然后再通过grldr进入grub.exe。
回复

使用道具 举报

26#
发表于 2010-8-26 19:34:07 | 只看该作者
精彩啊 小弟一直潜水中 看了这么好的贴 不得不顶
回复

使用道具 举报

27#
发表于 2010-8-26 22:53:15 | 只看该作者
最近无忧论坛出现很多很活跃的新用户,标志是用户名都以2010打头(如楼上这位),几乎所有的新帖或回帖都要被他们占领了,怀疑是同一个人的马甲。目的不详,值得注意。
回复

使用道具 举报

28#
发表于 2010-8-27 10:37:25 | 只看该作者
原帖由 Climbing 于 2010-8-26 10:13 发表
没想到这么简单的一个问题我翻了三页,也没有找到一个完善的答案。更让我想不到的是,lianjiang写了grub4dos的入门教程,竟然也不完全了解grub.exe的作用。



对grub4dos知之甚少,由于基础太差,对基本概念基本是无法理解。
我只会一些最基本的用法。
07年初,看到有人由于搜索了一圈,也仍然不会最基本的使用,跑到论坛里发帖子抱怨grub4dos的资料太少。
因此才想写一个稍微全一点的入门教程,只讲用法,纯粹是班门弄斧。呵呵。
回复

使用道具 举报

29#
发表于 2010-8-27 12:21:55 | 只看该作者

回复 #28 lianjiang 的帖子

唉,是我不对,其实我也只是了解一些grub4dos的基本用法,象pseudo或chenall他们开发的那些高级用法,我基本上也是一窍不通的。现在学东西都是不求甚解。
回复

使用道具 举报

30#
发表于 2010-8-27 14:20:26 | 只看该作者
原帖由 Climbing 于 2010-8-27 12:21 发表
唉,是我不对,其实我也只是了解一些grub4dos的基本用法,象pseudo或chenall他们开发的那些高级用法,我基本上也是一窍不通的。现在学东西都是不求甚解。

那些高级用法确实够变态。呵呵
他们用的菜单,只有膜拜的份。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-20 01:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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