标题: grldr不首先搜索当前设备上的menu.lst
[打印本页]
作者: yaya
时间: 2008-9-8 13:02
标题: grldr不首先搜索当前设备上的menu.lst
硬盘上有一个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 ]
作者: zw2312914
时间: 2008-9-8 16:31
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 ]
作者: yaya
时间: 2008-9-8 16:39
硬盘的menu.lst在c:\boot\grub,u盘的menu.lst在根目录.加载的是硬盘的menu.lst.
[
Last edited by yaya on 2008-9-8 at 04:46 PM ]
作者: zw2312914
时间: 2008-9-8 17:05
对不起,我上面说的内置菜单的搜索顺序说得不严谨。(已修改)
我又看了下默认的内置菜单。发现内置菜单的写法是 /menu.lst 这样的形式,缺少了 (...) ,也就是说他没带设备名。而没带设备名时,如果grub4dos启动前没有指定root的话,启动后默认的设备是(hd0,0),即c:盘。
所以实际上对于grldr来说,默认的内置菜单搜索的还是c盘。
[
Last edited by zw2312914 on 2008-9-8 at 05:39 PM ]
作者: zw2312914
时间: 2008-9-8 17:22
很明显,楼主是通过了内置菜单才找到配置文件的。
所以参考上一楼,你可以修改内置菜单,在/menu.lst 这样形式的路径前,添加(),即: ()/menu.lst
()代表当前盘。
to 不点
原来就看到过有人说找不到配置菜单(特别是U盘用户),很可能也是因为默认的内置菜单没加(),从而在c盘搜索了。
所以建议不点考虑把默认内置菜单搜索路径前都加上().
[
Last edited by zw2312914 on 2008-9-8 at 05:41 PM ]
作者: 不点
时间: 2008-9-8 18:32
内置的菜单是没问题的。
/menu.lst 和 ()/menu.lst 是等价的,除非用 root (...)/.../.../.../ 的方式定义了相对路径,两者才不同。
楼主没说使用的版本。最新版(8月3日以后的版本,参见8月3日的更动说明)在这方面又有了加强。感觉这个问题不严重,某位网友曾经说了他是如何对付(解决)这一问题的。抱歉这里不能详谈。
[
Last edited by 不点 on 2008-9-8 at 06:34 PM ]
作者: yaya
时间: 2008-9-9 11:05
我使用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 ]