以前的代码实际上是不能完美支持两个连续的 chainloader 命令的。此次更新主要解决这个问题。
配合 errorcheck off 命令,那么你现在可以尝试连续执行多个 chainloader 命令。最后一个成功执行的 chainloader 将起作用。
title test1
errorcheck off
chainloader .........................
chainloader .........................
chainloader .........................
chainloader .........................
chainloader .........................
errorcheck on
boot
你甚至也可以像下面这样:
title test2
errorcheck off
chainloader .........................
boot
chainloader .........................
boot
chainloader .........................
boot
chainloader .........................
boot
chainloader .........................
boot
errorcheck on
这样的话,会按照 chainloader 出现的先后顺序启动相应的操作系统,就是说,第一个成功的 chainloader 将起作用。因为有了 errorcheck off,所以,多个 boot 命令可以出现在同一个 title 菜单项目中。
=========================================================
早就有了 errorcheck 命令,只是其用法好像还未公开。
errorcheck on
这是默认的情况。功能:打开错误检查。当“错误检查”是处于开启状态时,菜单命令的执行要进行错误检查,如果菜单项中某条命令的执行产生了错误,那么,这个菜单项本身将终止执行,通常是给出“按任意键返回主菜单”的提示。
errorcheck off
功能:关闭错误检查。当“错误检查”是处于关闭状态时,菜单命令的执行不进行错误检查,如果菜单项中某条命令的执行产生了错误,那么继续执行菜单项中的下一条命令。
实用举例(注意其中同时使用了两条 chainloader 命令):
title load setupldr.bin
errorcheck off
chainloader (cd)/boot/setupldr.bin
chainloader (cd)/BOOT/SETUPLDR.BIN
errorcheck on
boot
注意:
1. 当执行 errorcheck off 之后,一定要适时地执行 errorcheck on,否则,errorcheck 将一直是处于 off 的状态,这可能不是你想要的效果。
2. 处于所有的 title 之前的那些命令,姑且叫做“菜单初始化命令”或“菜单专用命令”。在这些菜单初始化命令的执行过程中,是不进行 errorcheck 检查的。也就是说,如果某条菜单初始化命令出现了错误,那么直接执行下一条菜单初始化命令,而不管 errorcheck 是 on 还是 off。 实用举例(注意其中同时使用了两条 fontfile 命令):
fontfile (cd)/BOOT/FONTS
fontfile (cd)/boot/fonts
default 0
timeout 5
title 1........
......
title 2........
......
甚至也可以这样:
chainloader .........................
boot
chainloader .........................
boot
chainloader .........................
boot
chainloader .........................
boot
chainloader .........................
boot
default 0
timeout 5
title 1........
......
title 2........
......
以上这个菜单,在初始化过程中就已经开始尝试启动各个 chainloader 所指定的项目,只有当这些项目都失败时,才进入 title 所定义的菜单项目。