中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-24 22:06
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » grldr不首先搜索当前设备上的menu.lst 查看 2,442 回复 6
楼 主 grldr不首先搜索当前设备上的menu.lst 发表于 2008-09-08 13:02 ·  中国 山西 太原 联通
银牌会员
★★★
积分 1,009
发帖 353
注册 2003-09-04 00:00
22年会员
UID 9419
性别 男
状态 离线
硬盘上有一个menu.lst文件,当用u盘启动时,grldr总是打开硬盘上的menu.lst,除非删除硬盘各分区根目录上的menu.lst,否则不会打开u盘上的menu.lst.
看来grldr不是首先搜索当前设备上的menu.lst,而是首先搜索第一硬盘各分区的menu.lst.
怎样才能使当前设备上的menu.lst发挥正常作用?

[ Last edited by yaya on 2008-9-12 at 08:42 AM ]
2 发表于 2008-09-08 16:31 ·  中国 四川 德阳 电信
初级用户
积分 39
发帖 16
注册 2007-02-19 08:27
19年会员
UID 79784
性别 男
状态 离线
grub4dos (grub.exe和grldr略有不同)对配置菜单的搜索顺序是:
grldr首先搜索当前盘根目录,然后是按硬盘顺序搜索各分区根目录。然后是软盘。
最后,如果都没搜索到,将采用内置菜单的搜索项。

默认的内置菜单搜索项不搜索软盘,搜索顺序是:
默认盘根目录,然后是/boot/grub目录,然后是/grub目录, (补充:启动前未指定root,默认设备将是(hd0,0),也即c 盘)

最终还没找到就启动到命令行。


楼主的问题应该是menu.lst没放在U盘的根目录。
因此,参照上面的顺序,楼主U盘的menu.lst只要放在U盘根目录就可以被首先找到。
如果楼主不想改变menu.lst现在的存放位置,解决的方法是把硬盘各根目录上的menu.lst改名,同时修改下内置菜单即可。

(grub.exe,只搜索当前目录和当前盘根目录然后就是内置菜单,所以对于grub.exe只要把配置菜单放在和他相同目录就可以首先被找到.)

[ Last edited by zw2312914 on 2008-9-12 at 05:57 PM ]
3 发表于 2008-09-08 16:39 ·  中国 山西 太原 联通
银牌会员
★★★
积分 1,009
发帖 353
注册 2003-09-04 00:00
22年会员
UID 9419
性别 男
状态 离线
硬盘的menu.lst在c:\boot\grub,u盘的menu.lst在根目录.加载的是硬盘的menu.lst.

[ Last edited by yaya on 2008-9-8 at 04:46 PM ]
4 发表于 2008-09-08 17:05 ·  中国 四川 德阳 电信
初级用户
积分 39
发帖 16
注册 2007-02-19 08:27
19年会员
UID 79784
性别 男
状态 离线
对不起,我上面说的内置菜单的搜索顺序说得不严谨。(已修改)

我又看了下默认的内置菜单。发现内置菜单的写法是 /menu.lst 这样的形式,缺少了 (...) ,也就是说他没带设备名。而没带设备名时,如果grub4dos启动前没有指定root的话,启动后默认的设备是(hd0,0),即c:盘。

所以实际上对于grldr来说,默认的内置菜单搜索的还是c盘。

[ Last edited by zw2312914 on 2008-9-8 at 05:39 PM ]
5 发表于 2008-09-08 17:22 ·  中国 四川 德阳 电信
初级用户
积分 39
发帖 16
注册 2007-02-19 08:27
19年会员
UID 79784
性别 男
状态 离线
很明显,楼主是通过了内置菜单才找到配置文件的。
所以参考上一楼,你可以修改内置菜单,在/menu.lst 这样形式的路径前,添加(),即: ()/menu.lst

()代表当前盘。


to 不点
原来就看到过有人说找不到配置菜单(特别是U盘用户),很可能也是因为默认的内置菜单没加(),从而在c盘搜索了。

所以建议不点考虑把默认内置菜单搜索路径前都加上().

[ Last edited by zw2312914 on 2008-9-8 at 05:41 PM ]
6 发表于 2008-09-08 18:32 ·  中国 河南 南阳 电信
银牌会员
★★★★
不甘寂寞的人
积分 2,491
发帖 1,115
注册 2003-09-24 00:00
22年会员
UID 10292
性别 男
状态 离线
内置的菜单是没问题的。

/menu.lst 和 ()/menu.lst 是等价的,除非用 root (...)/.../.../.../ 的方式定义了相对路径,两者才不同。

楼主没说使用的版本。最新版(8月3日以后的版本,参见8月3日的更动说明)在这方面又有了加强。感觉这个问题不严重,某位网友曾经说了他是如何对付(解决)这一问题的。抱歉这里不能详谈。

[ Last edited by 不点 on 2008-9-8 at 06:34 PM ]
因为我们亲手创建,这个世界更加美丽。
7 发表于 2008-09-09 11:05 ·  中国 山西 太原 联通
银牌会员
★★★
积分 1,009
发帖 353
注册 2003-09-04 00:00
22年会员
UID 9419
性别 男
状态 离线
我使用2008.8.14版本。
由于u盘被设备为软盘(分配a:盘符),需搜索软盘,所有删除了内置菜单中的"--ignure-floppies"。
从内置菜单看,是首先搜索/menu.lst ,再搜索/boot/grub/menu.lst ,最后搜索/grub/menu.lst 。
以搜索/boot/grub/menu.lst 为例,首先搜索硬盘个分区,再搜索软盘。如果硬盘和软盘都存在/boot/grub/menu.lst ,那么一定是加载硬盘的menu.lst。
解决办法:
1.更改u盘menu.lst名称,如menu.txt,同时更改grldr内置菜单(在最后面);
2.或者更改u盘menu.lst的存放目录,如/boot/menu.lst,同时更改grldr内置菜单(只保留1个相应目录,其他删除)。
用u盘制作启动维护盘,并不知被维护的电脑安装了grub4dos没有,menu.lst放在何处,因此建议不点考虑,首先搜索当前引导设备上的menu.lst。

[ Last edited by yaya on 2008-9-19 at 09:20 AM ]
论坛跳转: