无忧启动论坛

标题: C大请进...原来savedefault --wait=2放在后面一直没执行到 [打印本页]

作者: RightWay    时间: 2013-9-11 08:18
标题: C大请进...原来savedefault --wait=2放在后面一直没执行到
改到title下第一行就发现了问题。大大!真的是这个命令有bug——错误提示'Error occurred while savedefault'
default命令倒是没有问题。而这个savedefault我按照它使用的参数三种都尝试过了,总会有这种错误提示。Chenall大大,这个真的是有问题。那么多显眼的bug都修复了,要是能用这个命令保存默认菜单项序号到default文件那该多好啊;我尝试了一下手动修改default文件,加了个数字在第一行,居然可以成功;而在GRUB4DOS最新命令中找来找去都没找到哪个其他命令可以用来代替savedefault进行成功写入“数字”字符到default文件中
作者: chenall    时间: 2013-9-11 11:25
你的default文件有问题,或者你放在了压缩的NTFS文件系统上面了.

至于其它命令用write命令同样可以做到试试.

你可以试试这样,
write /default 1


作者: RightWay    时间: 2013-9-11 14:08
chenall 发表于 2013-9-11 11:25
你的default文件有问题,或者你放在了压缩的NTFS文件系统上面了.

至于其它命令用write命令同样可以做到试 ...

default文件应该没有问题,因为那个0.4.6a发行包是在你那里下载的。文件是放在UD区的主数据区内,前几行代码是这样写的:
timeout 30
default (ud)/default
default saved

还有...write /default 1这种格式的代码试过了,没用啊。
chenall大哥,难道就不能用某些函数来修改吗?比如C语言或C++的IO函数之类的...

作者: chenall    时间: 2013-9-11 16:58
在命令行下使用
write /default 1
上面的/default 是你default文件的路径. 如果这个文件有问题,上面的命令会有一些报告..

作者: chenall    时间: 2013-9-11 17:02
RightWay 发表于 2013-9-11 14:08
default文件应该没有问题,因为那个0.4.6a发行包是在你那里下载的。文件是放在UD区的主数据区内,前几行代 ...

timeout 30
default (ud)/default
default saved

忘了,(ud)上的文件好像是不支持写入操作的...要放在其它系统上.
作者: RightWay    时间: 2013-9-11 19:26
chenall 发表于 2013-9-11 17:02
timeout 30
default (ud)/default
default saved

chenall大大,刚才我做了一个测试:把default文件放置到唯一一块硬盘上的D分区,即D:\default这个位置;由于唯一的U盘被分配到hd0,所以硬盘是hd1——也就是default文件在这种位置:(hd1,1)/default【确认无误的】
然后我在这个menu菜单内用的是:  default (hd1,1)/default
除了这一行其他的都保持不变。我手动修改了这个default文件,在第一行加入“8”——  重启...在进入GRUB菜单后居然默认选中的不是索引“8”项(还是0项),证明default文件放置在硬盘中反而无效。。。好奇怪
接着,我把这个default (hd1,1)/default改成了default (ud)/default,将D盘的default文件(“8”项)导入到UD区中,奇迹地居然成功了


作者: chenall    时间: 2013-9-11 21:07
RightWay 发表于 2013-9-11 19:26
chenall大大,刚才我做了一个测试:把default文件放置到唯一一块硬盘上的D分区,即D:\default这个位置;由 ...

这个属于使用问题。。
你确定是这个文件是在(hd1,1)上面吗?可以使用命令ls (hd1,1)/default来测试

使用一些基本的命令就可以找到原因。
作者: RightWay    时间: 2013-9-13 13:38
chenall 发表于 2013-9-11 21:07
这个属于使用问题。。
你确定是这个文件是在(hd1,1)上面吗?可以使用命令ls (hd1,1)/default来测试

由于自我感觉测试结果不够准确,今天又做一些测试。default命令里的三个使用参数NUM,saved,file只有file的无效,前两个完全有效。首先NUM必然没问题,之前测试结果不准确的原因就是同时使用了default命令中两个参数file和saved,这次先单独测试saved,发现default saved只搜索已加载grldr文件的位置的文件夹,由于grldr文件处于ud区的首层目录上——即(ud)/grldr,所以default saved自动搜索(ud)/这个目录,此时并没有用上default (ud)/default,也就是没有用上file参数。不过default saved好像只是个默认加载功能,而默认的就是自动搜索已加载grldr文件的位置的目录,如果发现了default文件就进行读取【我还修改了default文件里数字索引,以区别唯一的效果,确保测试结果的准确性,数字索引是7。对了,我还在default saved的后面加了这个“|| pause”,即执行失败后会暂停】

另一个测试,default文件还在(ud)/default这个位置。针对这个位置用上default (ud)/default || pause,发现被暂停了,也就是代码执行失败。位置是绝对准确的,而且没用上default saved,所以只能是default命令file参数有问题。不知道各位大大会不会花时间和精力来修复这个命令参数...?

既然default saved可行,默认方式也可以;那么为什么有自动读取记录,没有保存记录的有效命令...保存和读取应该成一对才是啊。

savedefault命令的三个使用参数粗略测试过,发现--wait=T和NUM的错误提示都是'Error occurred while savedefault',而fallback没有任何错误提示,但是暂停了,确实是执行失败




作者: chenall    时间: 2013-9-13 15:09
测试一切正常.default放在(hd0,0)上面
首先在菜单头加上一句
default (hd0,0)/default
然后使用savedefault 命令保存,没有发现任何问题 。

而且你也没有按照我给你的方法去测试验证,自已测试自己的,没有办法沟通。

因时间有限,恕不再回复关注本主题。

作者: 不点    时间: 2013-9-14 17:28
ud 设备和 pd 设备一样,两者都没有扇区概念。

不能企图在 pd 和 ud 设备上正常使用 default 文件。





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