无忧启动论坛

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

求解 Grub4Dos 的 find --set-root 命令……

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-22 10:21:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人用 Grub4Dos 引导 U 盘上的 Hiren's Boot CD,HBCD 为文件夹,hbcd.txt 为标识文件……

引导、运行成功的情况是:
命令:find --set-root /hbcd.txt
结构:
U 盘/HBCD
U 盘/hbcd.txt

引导、运行失败的情况是:
命令:find --set-root /HBCD/hbcd.txt
结构:
U 盘/HBCD
U 盘/HBCD/hbcd.txt
命令:find --set-root /Tool/hbcd.txt
结构:
U 盘/Tool/HBCD      
U 盘/Tool/hbcd.txt


标识文件只能放在根目录下吗?
推荐
 楼主| 发表于 2009-4-25 08:52:43 | 只看该作者
原帖由 Climbing 于 2009-4-24 22:49 发表
这个帖子充分说明了“提问的智慧”这篇文章的重要性和实用性。

直到看到楼主在23楼的回复,我才算明白了到底是怎么回事。我没有用过Hiren的bootcd,但从上面的反馈看,它应该是一张基于DOS的启动光盘,它的启 ...


哈哈哈哈……看来这帖子把版主气着了……大可不必呢……
不了解也罢,不懂也罢,不理解也罢,俺总是有兴趣琢磨琢磨启动光盘滴……如果俺啥都懂了,就不会来这里“泡坛”咧……

对26#的情况,还是不理解的说……

无论如何,感谢版主的回复……
回复

使用道具 举报

2#
发表于 2009-4-22 10:44:27 | 只看该作者
标识文件可以放到子目录中。
回复

使用道具 举报

3#
 楼主| 发表于 2009-4-22 10:45:58 | 只看该作者
原帖由 Climbing 于 2009-4-22 10:44 发表
标识文件可以放到子目录中。


两种失败情况的原因分别是啥呢?
回复

使用道具 举报

4#
发表于 2009-4-22 11:24:00 | 只看该作者
如果是CD,请注意目录和文件名大小写。
回复

使用道具 举报

5#
发表于 2009-4-22 12:33:54 | 只看该作者
未必是 find --set-root 的错吧,下面这种方法不知楼主试过没有

在 grub4dos 菜单按 c 进入命令行,然后输入你的语句如:find --set-root /HBCD/hbcd.txt,回车看提示是什么,如果是 File Not Find,那就表明真是这句话的问题,可以在命令行多测试一下,一般能找到问题
回复

使用道具 举报

6#
 楼主| 发表于 2009-4-22 15:36:08 | 只看该作者
原帖由 wind_fsm 于 2009-4-22 12:33 发表 未必是 find --set-root 的错吧,下面这种方法不知楼主试过没有在 grub4dos 菜单按 c 进入命令行,然后输入你的语句如:find --set-root /HBCD/hbcd.txt,回车看提示是什么,如果是 File Not Find,那就表明 ...


错误提示信息都是:找不到 HBCD 文件夹……
回复

使用道具 举报

7#
发表于 2009-4-22 15:51:35 | 只看该作者

回复 #6 xiaoyuan0417 的帖子

呵呵,你的提示好奇怪,会提示“找不到 HBCD 文件夹”,你翻译过了?不是在开玩笑吧,什么版本的Grub4Dos?你的 grldr 传上来测试一下
回复

使用道具 举报

8#
 楼主| 发表于 2009-4-22 16:05:02 | 只看该作者
原帖由 wind_fsm 于 2009-4-22 15:51 发表
呵呵,你的提示好奇怪,会提示“找不到 HBCD 文件夹”,你翻译过了?不是在开玩笑吧,什么版本的Grub4Dos?你的 grldr 传上来测试一下


谢谢关注,谢谢回复!
这点英文还是能读懂滴,呵呵……
刚才想了想,估计是 HBCD 的一些工具运行时,需要在根目录下找 HBCD 文件夹……

grldr.rar

112.94 KB, 下载次数: 69, 下载积分: 无忧币 -2

回复

使用道具 举报

9#
发表于 2009-4-22 17:35:25 | 只看该作者

回复 #8 xiaoyuan0417 的帖子

呵呵,应该是我们俩的测试方式不一样,因为按我说的方式是不会出现那样的提示的,所以我觉得奇怪,不过按你说的应该不是 find --set-root 的问题

用你的 grldr 没有启动成功,不知道是什么原因

贴个图说明一下我的测试方法
grub4dos启动后首先显示这个菜单界面


在上面界面中按 c 出现下面界面,在命令行中输入语句即可看到执行结果,图中测试了两条语句,第一个是找到文件的情况,第二个是未找到文件的情况
回复

使用道具 举报

10#
发表于 2009-4-22 17:48:38 | 只看该作者
你用的版本居然是 GRUB4DOS 0.4.4 2009-04-06,在哪儿下载的啊?
我在 http://download.gna.org/grub4dos/ 最新的只找到 grub4dos-0.4.4.zip  31-Mar-2009
回复

使用道具 举报

11#
 楼主| 发表于 2009-4-22 18:53:08 | 只看该作者
原帖由 wind_fsm 于 2009-4-22 17:48 发表
你用的版本居然是 GRUB4DOS 0.4.4 2009-04-06,在哪儿下载的啊?
我在 http://download.gna.org/grub4dos/ 最新的只找到 grub4dos-0.4.4.zip  31-Mar-2009


感谢相助!!!
对我遇到的问题的准确描述应当是:可以引导进入 HBCD 菜单,运行其中的工具时提示找不到 HBCD 文件夹……
看来,不是引导问题,是有些工具运行时必须到根目录下找文件夹……
我是从下载的 PE 中“借”来的 Grub4Dos……不好意思的说……
回复

使用道具 举报

12#
发表于 2009-4-22 19:29:21 | 只看该作者
到现在我也没有搞明白楼主遇到了什么问题,总之,问题描述不清,无从判断。

最新版的grub4dos下载在这个链接上:
http://grub4dos.nufans.net
回复

使用道具 举报

13#
 楼主| 发表于 2009-4-22 20:19:01 | 只看该作者
原帖由 Climbing 于 2009-4-22 19:29 发表
到现在我也没有搞明白楼主遇到了什么问题,总之,问题描述不清,无从判断。

最新版的grub4dos下载在这个链接上:
http://grub4dos.nufans.net


呵呵,看来是我拙于表达啦……
我原来以为,通过 find --set-root /Tool/hbcd.txt 命令,就能够将 Tool 文件夹设定为根目录,HBCD 中的工具运行时,也能够到 Tool 文件夹中寻找 HBCD……
现在的理解是:find --set-root /Tool/hbcd.txt 命令只是将 hbcd.txt 所在的驱动器设为要目录……
是否正确,请赐教!
回复

使用道具 举报

14#
发表于 2009-4-22 20:47:57 | 只看该作者
原帖由 xiaoyuan0417 于 2009-4-22 20:19 发表
现在的理解是:find --set-root /Tool/hbcd.txt 命令只是将 hbcd.txt 所在的驱动器设为要目录……

是的,就是这样,这个命令是将 hbcd.txt 所在的驱动器设置为根

另外谢谢版主,但是你说的网址访问不成功

[ 本帖最后由 wind_fsm 于 2009-4-22 20:50 编辑 ]
回复

使用道具 举报

15#
发表于 2009-4-22 20:58:22 | 只看该作者
find --set-root只是用来寻找并设置grub4dos的根设备,不加参数,没有其它的功能。

还是搞不明白你的tool和HBCD分别是什么东东,所以没法进一步说明什么。

root命令有一个设置当前目录的功能,假设:
chainloader /Tool/PE/setupldr.bin

可以用root命令如此简化:
root ()/Tool/PE
chainloader /setupldr.bin

grub4dos的readme.txt中相关的说明:
******************************************************************************
***                  New Feature of Relative Path Support                  ***
******************************************************************************

Use the `root' or `rootnoverify' command to specify the `working directory'.

For example:

                root  (hd0,0)/boot/grub

This specifies that the working dir is (hd0,0)/boot/grub. So all subsequent
filenames of the form "/..." will actually refer to (hd0,0)/boot/grub/...

That is to say:

                cat  /menu.lst

will be equivalent to

                cat  (hd0,0)/boot/grub/menu.lst



******************************************************************************
***                 Notation For The Current Root Device                   ***
******************************************************************************


The notation `()' can be used to access the current root device. You may use
`find --set-root ...' to set the current root device, but the find command
does not set the `working dir' of the root device. In this case you should
use `()' to set the working dir after the find command:

                root  ()/boot/grub

Update 2008-05-01:

        FIND can also set the `working directory' now. For example:

                find  --set-root=/tmp  /boot/grub/menu.lst

        It is equivalent to this pair of commands:

                find  --set-root  /boot/grub/menu.lst
                root  ()/tmp
回复

使用道具 举报

16#
发表于 2009-4-22 21:00:47 | 只看该作者

回复 #14 wind_fsm 的帖子

无忧的域名解析服务器出现了问题,请通过以下网址访问:
http://nufans.net/grub4dos/
回复

使用道具 举报

17#
发表于 2009-4-22 21:38:13 | 只看该作者

回复 #16 Climbing 的帖子

谢谢,这个网址可以访问

楼主成功的情况是 hbcd.txt 不在 HBCD 目录,这时候你的 HBCD 目录为空还是只有特定的几个文件?
看你失败的情况应该是 HBCD 只能在根目录,另外会不会是这个目录必须为空或者是只能有它自己的文件不能有其它文件存在
回复

使用道具 举报

18#
 楼主| 发表于 2009-4-22 22:26:42 | 只看该作者
谢谢二位,我刚接触 Grub4Dos,描述问题词不达义,见笑了……
我再尝试,然后汇报……
回复

使用道具 举报

19#
发表于 2009-4-24 12:50:42 | 只看该作者
学习了。grub4dos需要定义hd0,0这个位置,u盘启动非常难弄,有的机子能在u盘启动时把u盘当第一个分区,有的就死活不成,联想的removeable.dev如此……

还是我学习不到家啊,难道有什么命令能够搞定这个吗?find命令能通过文件标定是哪个位置,但是能标定的hd0,0还是hd1,0吗?这个bios认定的东西能改吧

[ 本帖最后由 shn 于 2009-4-24 12:52 编辑 ]
回复

使用道具 举报

20#
发表于 2009-4-24 13:09:59 | 只看该作者
grub的部分问题
通过改menu.lst里描写目标文件的改成大写能解决不少莫名其妙的问题
回复

使用道具 举报

21#
发表于 2009-4-24 13:48:10 | 只看该作者

回复 #20 neteasylive 的帖子

所谓的莫名其妙,是因为你缺乏基础知识。在我看来,很少遇到grub4dos的莫名其妙问题,至于大写小写,该大写的就大写,该小写的就小写,没有什么好莫名其妙的。

例如,grub4dos本身是区分大小写的软件,所以,它的命令和关键字你只能用小写。至于路径和文件名,有的文件系统不区分大小写,例如FAT和NTFS,那么这时候你的文件名也可以不区分,但在区分大小写的文件系统上,例如Ext、光盘,你就要严格按照实际的情况来进行。
回复

使用道具 举报

22#
发表于 2009-4-24 14:47:22 | 只看该作者
原帖由 Climbing 于 2009-4-24 13:48 发表
所谓的莫名其妙,是因为你缺乏基础知识。在我看来,很少遇到grub4dos的莫名其妙问题,至于大写小写,该大写的就大写,该小写的就小写,没有什么好莫名其妙的。

例如,grub4dos本身是区分大小写的软件,所以, ...


没用过UNIX或者LINUX等的用户,大多对文件名与目录区分大小写都不知道或者不在意。
回复

使用道具 举报

23#
 楼主| 发表于 2009-4-24 15:31:39 | 只看该作者
该问题的提出,源于要把 Hiren's BootCD 集成到基于 Syslinux 引导的工具光盘……具体作法是:

1.将  Hiren's BootCD 的所有文件放在 HBCD 文件夹中,置于光盘根目录下;

2.通过 Syslinux 调用 Grub4Dos,引导 HBCD 文件夹中的软盘镜像启动文件……之所以劳驾 Grub4Dos,是因为 Syslinux 在引导软盘镜像方面的致命缺陷。

按上述方法集成,一切顺利,可以启动运行 Hiren's BootCD 的各类工具!

后来又不想将 HBCD 放在光盘根目录下,而是放在 Tool 文件夹中,让光盘看起来更清爽些……
所以就想到了 Grub4Dos 的 find --set-root 命令……

尝试至今,都以失败告终,具体表现是:

能够进入 Hiren's BootCD 菜单,但运行其中的工具时,提示“找不到 HBCD 文件夹”……

请高手赐教……
回复

使用道具 举报

24#
发表于 2009-4-24 17:32:15 | 只看该作者
1. 解压 HBCD 下面的 boot.gz 得到文件 boot.img
2. 提取 boot.img 中文件 AUTOEXEC.BAT、STARTUP.BAT,修改这两个文件中的 hbcd 为你想要的路径
3. 提取 boot.img 中文件 DRIVERS.CAB
4. 解压 DRIVERS.CAB,将 temp 目录下所有 bat 文件中的 hbcd 修改为你想要的路径

5. 用修改后的文件重新压缩 DRIVERS.CAB
6. 更新 boot.img 中的  AUTOEXEC.BAT、STARTUP.BAT、DRIVERS.CAB
7. 压缩 boot.img 为 boot.gz

这样大部分的工具应该可以使用了,还不能使用的工具请解压对应的 uha 文件看看里面是否还涉及 hbcd 路径
回复

使用道具 举报

25#
发表于 2009-4-24 18:23:12 | 只看该作者
原帖由 shn 于 2009-4-24 12:50 发表
学习了。grub4dos需要定义hd0,0这个位置,u盘启动非常难弄,有的机子能在u盘启动时把u盘当第一个分区,有的就死活不成,联想的removeable.dev如此……

还是我学习不到家啊,难道有什么命令能够搞定这个吗? ...

在U盘上,我个人不建议用FIND,FIND在U盘上并不通用。
我在我的U盘上,在grub4dos的命令符下直接用find得到证明,实际显示的只有硬盘而没有u盘盘符。
使用虚拟机测试,用find查找软盘和硬盘和光盘是没有任何问题的,这个我也得到了证明,但实机就是不行,其实不用find通用性会更强些的。
回复

使用道具 举报

26#
 楼主| 发表于 2009-4-24 19:33:24 | 只看该作者
原帖由 wind_fsm 于 2009-4-24 17:32 发表
1. 解压 HBCD 下面的 boot.gz 得到文件 boot.img
2. 提取 boot.img 中文件 AUTOEXEC.BAT、STARTUP.BAT,修改这两个文件中的 hbcd 为你想要的路径
3. 提取 boot.img 中文件 DRIVERS.CAB
4. 解压 DRIVERS.CAB, ...


后来换了个思路,直接把 Hiren's BootCD 的光盘镜像放在 Tool 文件夹中,用 Grub4Dos 加载,在 U 盘上测试通过,各类工具运行正常,但在光盘上却不成,仍然提示找不到 HBCD 文件夹……

为何 U 盘和光盘有差别呢?

[ 本帖最后由 xiaoyuan0417 于 2009-4-24 19:46 编辑 ]
回复

使用道具 举报

27#
发表于 2009-4-24 22:49:42 | 只看该作者

回复 #23 xiaoyuan0417 的帖子

这个帖子充分说明了“提问的智慧”这篇文章的重要性和实用性。

直到看到楼主在23楼的回复,我才算明白了到底是怎么回事。我没有用过Hiren的bootcd,但从上面的反馈看,它应该是一张基于DOS的启动光盘,它的启动方式是先启动一张DOS软盘映像并在DOS下加载光驱的驱动,并从光驱根目录下的HBCD文件夹中寻找自己的其它工具。

搞明白了这些,稍微有点儿常识的人就应该知道,这跟grub4dos的find命令有什么关系呢?grub4dos在这个过程中只是负责启动那个DOS软盘映像,只要成功启动了它,剩下的都是这张软盘映像的事情了(再与grub4dos无关了),正如24楼所回复的,你要修改这张DOS软盘映像中的内容来适应你的改动。

看你来来回回说了这么多,其实最有用的就是23楼这个帖子。

结论:楼主基本不了解什么是提问的智慧;楼主不懂光盘启动、DOS及相关基础知识;楼主基本上不理解grub4dos是什么东东。
回复

使用道具 举报

28#
发表于 2009-4-24 22:57:03 | 只看该作者

回复 #25 xiaolongkun0 的帖子

在grub4dos下没有盘符这个概念,请你自己先搞清楚这些基本概念。

grub4dos的find搜索是有其内置的顺序的,一般来说先从硬盘开始挨个分区搜索,并将找到的第一个匹配的分区作为结果返回。假设你的U盘排在搜索顺序的后面并且这个搜索有多个结果,当然就不会找到你的U盘,例如你搜索/boot/grub/menu.lst,如果硬盘上某分区有这个文件,而你的U盘被识别为软盘,当然,就不会找到你的U盘。所以,你应该在U盘上设立唯一的查找标志,例如,你可以在U盘上建立/boot/blabla.usb(确保这个文件不会有重复就行了),这样,只要grub4dos能够正常访问你的U盘,那么它就一定能够找到你的U盘。
回复

使用道具 举报

30#
发表于 2009-4-25 11:50:47 | 只看该作者
原帖由 Climbing 于 2009-4-24 22:57 发表
在grub4dos下没有盘符这个概念,请你自己先搞清楚这些基本概念。

grub4dos的find搜索是有其内置的顺序的,一般来说先从硬盘开始挨个分区搜索,并将找到的第一个匹配的分区作为结果返回。假设你的U盘排在搜索 ...

其实我就是按你的思维方法去操作的,可惜我的U盘和主板不识这套操作手法。看来我的主板和U盘要比别人的“高级”点。

[ 本帖最后由 xiaolongkun0 于 2009-4-25 11:54 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-30 20:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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