无忧启动论坛

标题: [重要提示:grubinst 安装F11热键可能发生的问题!! [打印本页]

作者: 歌理    时间: 2008-6-20 10:20
标题: [重要提示:grubinst 安装F11热键可能发生的问题!!
用grubinst安装F11开机热键,非常之简单,但是,稍不注意,就可能造成错误!

举例如下:grubinst --save=c:\oldmbr.sav (hd0)
我安装或卸载之前,用--SAVE命令保存原MBR到文件,结果是:多次或重复执行--SAVE后,原来安装的F11会失效,默认强行启动GRLDR,不能进入XP!!!

根据多次试验分析,-save会同时改写分区表!

如何避免上述情况,当然也是很简单,加个只读参数就OK了:

grubinst  -t -s=c:\oldmbr.sav (hd0)

多次试验,成功,特提示给各位,碰到时注意!
作者: lianjiang    时间: 2008-6-20 11:10
估计是用法问题。呵呵。

测试过程交代不清,无法证明是软件问题。
作者: xypcmac    时间: 2008-6-20 11:41
他的意思应该是与别人分享,说保存MBR要加个只读参数吧!

grubinst --read-only --save=oldmbr.sav (hd0)
作者: 歌理    时间: 2008-6-20 20:37
原帖由 lianjiang 于 2008-6-20 11:10 AM 发表
估计是用法问题。呵呵。

测试过程交代不清,无法证明是软件问题。


呵呵,有空你试试:grubinst --save=c:\oldmbr.sav (hd0)
看会发生什么情况
作者: lianjiang    时间: 2008-6-20 21:13
这参数现在的电脑上已经用了N次了。(N不低于100)。
“GGhost一键恢复”安装时就要用此参数。
作者: wwwcccyyy    时间: 2008-6-20 21:58
grubinst是安装F11热键的么,不是BOOTLACE么???
作者: ymcoming    时间: 2008-6-20 22:42
这个我试下,谢谢分享。
作者: 歌理    时间: 2008-6-20 22:56
我发现几个用GHOST封装的系统,开机并没有F11提示,根目录下有GRLDR文件,后来我将GRLDR删除,结果:不能重启!!

分析该GRLDR的内置MENU,发现默认启动NTLDR及BOOTMGR,但是由于系统默认默认启动GRLDR(类似按下了F11),因而删除GRLDR后,系统不能重启。

原因就是一楼所说的。。。。。。。。。。。。。。。。。。
作者: lianjiang    时间: 2008-6-21 06:23
原帖由 歌理 于 2008-6-20 10:56 PM 发表
我发现几个用GHOST封装的系统,开机并没有F11提示,根目录下有GRLDR文件,后来我将GRLDR删除,结果:不能重启!!

分析该GRLDR的内置MENU,发现默认启动NTLDR及BOOTMGR,但是由于系统默认默认启动GRLDR(类似 ...

看不出是软件问题,相反则更证明了是使用问题。呵呵。
作者: 歌理    时间: 2008-6-21 12:40
原帖由 lianjiang 于 2008-6-21 06:23 AM 发表

看不出是软件问题,相反则更证明了是使用问题。呵呵。

兄弟,你这么试试就知道了:

1、instF11.bat----重启--》F11正常
2、instF11.bat-----grubinst  -t --save=c:\oldmbr.sav (hd0)----重启----F11正常

3、instF11.bat-----grubinst --save=c:\oldmbr.sav (hd0)---------grubinst --save=c:\oldmbr.sav (hd0)----(执行两次SAVE)--重启----你会知道我说什么的

[ 本帖最后由 歌理 于 2008-6-21 12:41 PM 编辑 ]
作者: lianjiang    时间: 2008-6-21 12:59
看了自己用的批处理,原来本来就用了-t参数。呵呵。

if not exist %ggpath0%\grub\MBR.bin %ggpath0%\grub\grubinst -s=%ggpath0%\grub\MBR.bin -t (hd0)

[ 本帖最后由 lianjiang 于 2008-6-21 01:13 PM 编辑 ]
作者: lianjiang    时间: 2008-6-21 13:00
假如你发现确实是软件问题,而非使用问题,建议向作者反映。
作者: 歌理    时间: 2008-6-21 13:20
我试过不同版的GRUBINST,试了N次了,
执行 grubinst -s=mbr.sav (hd0) 两次以上时,其效果相当于:

默认安装空格键为热键(不显示提示信息),时间5秒,默认启动GRLDR;若没有GRLDR,5秒后启动NTLDR或BOOTMGR,若GRLDR或NTLDR被修改,不能重启!
作者: xypcmac    时间: 2008-6-21 14:21
我也开始有点糊涂了...

你意思是说多次执行保存MBR的动作会导致启动不正常,原因可能是保存MBR的过程中该软件修改了当前MBR的内容吗(在没有加只读参数的情况下)?

按照楼主的意思,我在虚拟机测试了一下,发现确有此事(实机没有测试)。似乎该软件是以默认参数重写一次MBR。没有热键,时间是5秒,直接超找并启动 Grldr ...,假设第一次安装到MBR时,修改了默认的 启动文件 grldr 的名称(如果是新硬盘)。这时,就什么都启动不了。因为MBR现在默认查找的是 Grldr 文件。找不到文件,会直接启动原来的系统。

[ 本帖最后由 xypcmac 于 2008-6-21 02:23 PM 编辑 ]
作者: lianjiang    时间: 2008-6-21 14:35
再次看了一下帮助,可以理解成软件本来就是这么设计的。当没有指定其它参数时,以默认参数安装。


grubinst  [OPTIONS]  DEVICE_OR_FILE
很明显,这里的OPTIONS“是可选的,而不是必须的。
因此,只要有 ”grubinst   DEVICE_OR_FILE” 就会进行安装。

也就是说,这个问题,仍然是使用方法问题,而非软件问题。呵呵。
作者: 歌理    时间: 2008-6-21 19:06
1、从--read-only参数来看,感觉如果不加该参数,就默认写入,也有一点道理;
2、但是从使用习惯而言,-save就应该只能保存,而不该写入,所以也可以说是BUG
3、如果作者能够修改,让SAVE只能是保存,而不是写入,可能会更好
4、如果作者不修改,那么提示大家,记得加read-only参数,以免出错,不能重启
如何无何,希望本贴能给各位提个醒。
感谢各位参与,不知谁能通知作者?
作者: lianjiang    时间: 2008-6-21 19:30
不是也有道理,而是很有道理。而根据楼上的修改了,就不合理了。
明白什么叫“ [OPTIONS] ”就清楚了。呵呵。
本人观点,到此为止。
作者: 歌理    时间: 2008-6-21 19:56
原帖由 lianjiang 于 2008-6-21 07:30 PM 发表
不是也有道理,而是很有道理。而根据楼上的修改了,就不合理了。
明白什么叫“ [OPTIONS] ”就清楚了。呵呵。
本人观点,到此为止。


上了作者的论坛(2007.3月的),看了一下,以前也有人提过此类问题的。。。。

哈哈,同意争论到此为止。
作者: xypcmac    时间: 2008-6-21 20:13
不是争论,是讨论!呵呵
作者: netwinxp    时间: 2008-6-21 20:49
作为备份操作却有写入行为不太合适——纯属个人观点。

[ 本帖最后由 netwinxp 于 2008-6-21 08:51 PM 编辑 ]
作者: 歌理    时间: 2008-6-21 21:00
原帖由 xypcmac 于 2008-6-21 08:13 PM 发表
不是争论,是讨论!呵呵


对, 是讨论!

我突然想起,前几天到深度论坛,求助关于某个精简系统版的问题,结果是几十楼的人都说俺去闹事,好几楼要求删除或锁定,结果,可想而知,当然被锁了。

还是无忧论坛的技术氛围好!!!
作者: 不点    时间: 2008-6-21 21:37
原帖由 netwinxp 于 2008-6-21 08:49 PM 发表
作为备份操作却有写入行为不太合适——纯属个人观点。


其实 bean 用 -t 来作为 --read-only 的别名,我觉得不是太好,因为 -t 也可以作为 --time-out 的别名。这样就容易引起理解上的问题。当然加一个等号可以把两者区分开来,机器也就不会出问题了;但毕竟是人最终要看这些命令行,要去理解这些命令行。所以,是否有助于人的理解,那是很要紧的一件事。我在 http://boot-land.net/ 上曾经提过这个问题,但 bean 似乎没有注意到我的帖子。


至于说本线索所讨论的问题,我是这么认为的:在备份操作的同时也进行写入,这就是程序本来的用法。这没有错,如果说有错,那就是使用中的错误,也可以归咎于说明文档的不完善。如果把 -t 写成 --read-only,恐怕就醒目很多了,可能从某种程度上减少此类问题的发生,关键还是在于人的理解,只要人的理解不含糊了,那么人的操作也就不会出错了。

grubinst 本来的语义就是 install,这很清楚,毫不含糊。加上 --save 之后,显然就是在 install 的同时,也保存到文件。如果只是备份到文件而没有 install 的动作,那应该叫做 --save-only 或者 --save-without-install 才合乎语义。还有,如果 --save 本身暗含 --read-only 的话,那么假若有人想在一条命令中同时执行 install 和 save,则又变成不方便、不可能的了。

另外,我觉得这事不能怪 bean 设计得不周全。注意 bootlace 是早就存在的了,为了兼容性,那么 bean 也必须兼容 bootlace 的用法。这样 --read-only 也就成了 grubinst 的一个选项了。而 bootlace 没有 --save 的选项,bean 在 grubinst 中加入 --save 之后,当然不太适合去让 --save 来默认执行 --read-only 的操作。因为“一个开关只管一件事情”,这是程序设计的一个法则,除非还有什么特别的理由,才能执行连带的操作。总之,只要我们想到 --save 是 grubinst 新增的选项,就能理解为什么会是这样了。

[ 本帖最后由 不点 于 2008-6-21 09:58 PM 编辑 ]
作者: netwinxp    时间: 2008-6-21 21:43
为了兼容那确实是没办法,在说明文件补充说明一下也是可行的。




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