![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 06:56 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » 12 月 9 日更新:chainloader 和 errorcheck 代码清理 |
| 可打印版本 1,611 / 11 |
| 第1楼 不点 | 发表于 2007-12-09 17:22 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
12 月 9 日更新:chainloader 和 errorcheck 代码清理 以前的代码实际上是不能完美支持两个连续的 chainloader 命令的。此次更新主要解决这个问题。
配合 errorcheck off 命令,那么你现在可以尝试连续执行多个 chainloader 命令。最后一个成功执行的 chainloader 将起作用。 你甚至也可以像下面这样: 这样的话,会按照 chainloader 出现的先后顺序启动相应的操作系统,就是说,第一个成功的 chainloader 将起作用。因为有了 errorcheck off,所以,多个 boot 命令可以出现在同一个 title 菜单项目中。 ========================================================= 早就有了 errorcheck 命令,只是其用法好像还未公开。 这是默认的情况。功能:打开错误检查。当“错误检查”是处于开启状态时,菜单命令的执行要进行错误检查,如果菜单项中某条命令的执行产生了错误,那么,这个菜单项本身将终止执行,通常是给出“按任意键返回主菜单”的提示。 功能:关闭错误检查。当“错误检查”是处于关闭状态时,菜单命令的执行不进行错误检查,如果菜单项中某条命令的执行产生了错误,那么继续执行菜单项中的下一条命令。 实用举例(注意其中同时使用了两条 chainloader 命令): 注意: 1. 当执行 errorcheck off 之后,一定要适时地执行 errorcheck on,否则,errorcheck 将一直是处于 off 的状态,这可能不是你想要的效果。 2. 处于所有的 title 之前的那些命令,姑且叫做“菜单初始化命令”或“菜单专用命令”。在这些菜单初始化命令的执行过程中,是不进行 errorcheck 检查的。也就是说,如果某条菜单初始化命令出现了错误,那么直接执行下一条菜单初始化命令,而不管 errorcheck 是 on 还是 off。 实用举例(注意其中同时使用了两条 fontfile 命令): 甚至也可以这样: 以上这个菜单,在初始化过程中就已经开始尝试启动各个 chainloader 所指定的项目,只有当这些项目都失败时,才进入 title 所定义的菜单项目。 |
|
| 第2楼 Fphn | 发表于 2007-12-09 17:31 |
| 新手上路 发帖 9 积分 18 | |
|
刚好赶上
|
|
| 第3楼 lhteee | 发表于 2007-12-09 17:46 |
| 中级用户 发帖 59 积分 223 | |
|
继续学习,跟上Grub的更新。
|
|
| 第4楼 Fphn | 发表于 2007-12-09 17:59 |
| 新手上路 发帖 9 积分 18 | |
|
这样以来通用性就好多了。
我是这样应用的: 原来一些因环境而变的不确定的东西现在可以都写上了, 比如要启动的文件不知道是在(fd0) (hd0,0) 还是(hd1,0),可以把3条都写上。 不知道理解的对不对 |
|
| 第5楼 sypl | 发表于 2007-12-09 18:51 |
| 初级用户 发帖 22 积分 46 | |
|
12-9版的GRUB.EXE还是有问题,无法加载中文,启动IMG文件报错15,所用设备U盘,纯DOS加载GRUB.EXE,2007-11-11版以前的GRUB.EXE使用正常.
以下是截获信息: hard drives: int13: F0008204 int15:F000F859 get-diskinfo(80),int13/41(80),version=AA210005,int13/48(80),err=0,c/h/s=28733/16/255, sector count/size=11723140810,int13/08(80),vesion=0,c/h/s=0/255/63,int13/02(80),err=0 LBA,c/h/s=28733/255/63,sector count/size=461595645/512 boot drive=80,int13/4B01/(80),err=1,drive=80,Not cd get-cdinfo(7F),int13/4B01(7F),err=1,drive=7F,cdrom-drive=FFFFFFFF starting cmain()... int13/41(0),version=0,int13/08(0),version=0,c/h/s=80/2/18,int13/02(0),err=0 Warning:BPB heads(64)is not equal to the BIOS one(2) Warning:BPB sectors per track(32)is not equal to the BIOS one(18) Notice:number of heads for drive 0 tuned from 64 to 255 Notice:sectors-per-track for drive 0 tuned from 32 to 63 |
|
| 第6楼 loveheartrain | 发表于 2007-12-09 19:30 |
| 初级用户 发帖 81 积分 174 | |
|
不点辛苦了\!
|
|
| 第7楼 fastslz | 发表于 2007-12-10 00:18 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
谢谢~写的太详尽了,学习了
Originally posted by Fphn at 2007-12-9 17:59: 不知道是在(fd0) (hd0,0) 还是(hd1,0)....可以用 find --set-root /xxx.img map --mem /xxx.img (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) |
|
| 第8楼 Fphn | 发表于 2007-12-10 13:36 |
| 新手上路 发帖 9 积分 18 | |
Originally posted by fastslz at 2007-12-10 00:18: 谢谢楼上的。;) 不过如果是在title之前的那些命令就不能用此法了, 因为 map --mem /xxx.img (fd0) map --hook 会把盘符弄乱。 [ Last edited by Fphn on 2007-12-10 at 01:40 PM ] |
|
| 第9楼 sypl | 发表于 2007-12-10 17:38 |
| 初级用户 发帖 22 积分 46 | |
|
感谢不点又一次更新,12-10版问题还是没有解决。
|
|
| 第10楼 clonecd | 发表于 2007-12-10 18:20 |
| 初级用户 发帖 46 积分 94 | |
|
我刚开始学习这个grub for dos
我也要与时俱进,哈哈 |
|
| 第11楼 longwang | 发表于 2007-12-11 14:47 |
| 新手上路 发帖 6 积分 14 | |
Originally posted by sypl at 2007-12-9 18:51: 我也遇到这个问题,最近的版本进行了BPB转换后,U盘启动很难成功,采用以前的版本正常。 |
|
| 第12楼 sypl | 发表于 2007-12-12 20:56 |
| 初级用户 发帖 22 积分 46 | |
|
12-12版我的问题终于解决了,再次感谢不点,但是还有点小问题,启动GRUB.EXE时比原来慢了有1-2分钟,再加载文件时也比原来慢了很多。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |