无忧启动论坛

标题: 写菜单时怎么保持根设备(初始启动设备)不变? [打印本页]

作者: tingyue-wu    时间: 2011-8-14 21:37
标题: 写菜单时怎么保持根设备(初始启动设备)不变?
不管内置 还是外置菜单,不管切换了多少个菜单,转过了几个分区、几个设备,不管用了多少个configfile命令

都能保持初始设备不变,这样的菜单开头怎么写/

我本来以为用find命令可行,例如每个菜单开头写上
debug off
find --set-root /BOOT/GRUB/USB_ACC.0PE
就能保持根设备不变了,但是其实不行,切换了几个菜单之后,一些命令就不能用了 如ls 、run(外部模块)等

应该怎么写开头?

得chenall指点 把菜单复制进内存再加载可以解决问题。

[ 本帖最后由 tingyue-wu 于 2011-8-15 11:32 编辑 ]
作者: Hcxp    时间: 2011-8-14 22:05
configfile (hd0,x)/menu.lst应该不会改变根吧,按我理解只是读取(hd0,x)/menu.lst配置菜单,

没刻意试过,

debug off

find --set-root /BOOT/GRUB/USB_ACC.0PE

不明白debug off的含义,但find --set-root /boot/grub/usb_acc.ope就已经改变根了啊。

我是菜鸟。

坐等高人。。。  - -b!

[ 本帖最后由 2011hcxp 于 2011-8-14 23:30 编辑 ]
作者: Hcxp    时间: 2011-8-14 23:32
但按我理解的意思,如果不想改变根,就应该避免root (hd0,x)和find --set-root /出现在菜单中。
作者: tingyue-wu    时间: 2011-8-15 07:40
find --set-root --ignore-floppies (bd)/BOOT/IMGS/FIRADISK.IMG
error 42:the leading DEVICE of the filename to find must be stripped off,and DIR for set-root must begin in a slash(/)

什么意思?

我的菜单命令是
find --set-root --ignore-floppies (bd)/BOOT/IMGS/FIRADISK.IMG
ls (bd)/BOOT/IMGS/
echo
echo
作者: chenall    时间: 2011-8-15 08:20
目前只有configfile 一块内块菜单时不会改变(bd)的值.即configfile (md)x+y 的形式

所以你可以试试如下方法,先把菜单写入到内存中,然后再调用.

dd if=(xx)/path/file.lst of=(md)0x200+16
configfile (md)0x200+16
作者: tingyue-wu    时间: 2011-8-15 09:23
标题: 回复 #5 chenall 的帖子
谢谢 指点 我试试
作者: aweihaitun    时间: 2011-8-15 10:18
dd if=(xx)/path/file.lst of=(md)0x200+16
configfile (md)0x200+16
又学了一招,这招够直接
作者: tingyue-wu    时间: 2011-8-15 11:18
很好用 。现在不管串接多少菜单也不会出现命令失效的问题了,真的很强。甚至感觉切换菜单也快了(呵呵 纯属错觉)
作者: zhaohj    时间: 2011-8-16 09:39
我也一直希望给configfile加个参数,以解决上面的问题。
实际使用环境用户都不希望configfile破坏(bd)及()
如configfile --ignore-init
----------------
不过现在事情也简单,可以使用setlocal
作者: tingyue-wu    时间: 2011-8-16 10:24
setlocal  ??
设置临时环境变量 置顶教程有吗?

给个例子怎么写
作者: chenall    时间: 2011-8-16 13:51
setlocal
configfile (xxxx)/xxxx/file.lst

在(xxxx)/xxxx/file.lst的第一行里面写上endlocal

这样就会恢复setlocal之后的变量变动,也同时恢复了原来的BOOT DRIVE

如果你的菜单需要用到变量,不建议使用,因为会恢复到之前状态.可能会影响执行结果.




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3