无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4062|回复: 3
打印 上一主题 下一主题

fbinst v1.5:分离菜单文件,支持syslinux

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-13 01:35:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
fbinst v1.5:分离菜单文件,支持syslinux1.5版本里,菜单项在文件里指定。增加菜单文件的命令是:

fbinst (hd1) add-menu fb.cfg c:\fb.txt

该命令会解析菜单文件c:\fb.txt,生成二进制的菜单文件,并保存为ud设备的文件fb.cfg。

fb.cfg是缺省的菜单文件,启动时会自动调用fb.cfg里的菜单。

外部的菜单文本的命令有:

default N
设置缺省菜单项

timeout N
设置缺省等待时间

text TEXT
显示文本

menu KEY sub_sys ..
菜单项,key是热键,sub_sys是启动子系统,目前只支持grldr,可以启动grldr/g2ldr/ntldr。grldr后面的参数是文件名字。这里是指fb设备内部的文件,你需要用add命令把实际的文件加到ud设备里。

还有一点,新的add命令顺序改变了。第一个参数是内部文件名字,第二个参数是外部文件名,这样是为了和其他的文件管理命令更加统一:

fbinst (hd1) add grldr c:\grldr

这是一个完整的例子:

fbinst (hd1) format
fbinst (hd1) add grldr c:\grldr
fbinst (hd1) add ntldr c:\ntldr
fbinst (hd1) add-menu fb.cfg c:\fb.txt

fb.txt内容如下:
default 0
timeout 5
text "Please choose menu"
text "F1. grldr"
menu F1 grldr grldr
text "F2. ntldr"
menu F2 grldr ntldr

另外,新加命令cat,可以显示ud里的文本文件的内容:

fbinst (hd1) cat aa.txt

要显示菜单文件的内容,可以使用cat-menu:

fbinst (hd1) cat-menu fb.cfg

另外,新版本整合了一般版本和调试版本,使用--debug可选择调试版。update命令可以用于在一般版本和调试版本之间切换:

切换到调试版:
fbinst --debug (hd1) update

切换到一般版:
fbinst (hd1) update

更新#2
add-menu增加两个选项--append和--direct,--append用于向已有的菜单添加新项而不是重新创建。而--direct用于在命令行里传递参数而不是通过外部文件。例子:

fbinst (hd1) add-menu --append --direct fb.cfg "text grldr_2" "menu F2 grldr grldr_2"

支持syslinux。首先,下载syslinux代码包并解压里面的ldlinux.bin,把它加到ud设备,然后使用以下的菜单:

text "F2. syslinux"
menu F2 syslinux ldlinux.bin

ldlinux.bin必须放在扩展数据区,否则出错。而且,在导入菜单时会自动修改ud里的ldlinux.bin使得它可以正常启动。如果更新了ldlinux.bin文件,必须再次导入菜单。

我测试时利用syslinux-3.81,其他版本也应该可以。

更新#3
add命令增加--syslinux选项,在加入文件的同时就修改ldlinux.bin文件。在导入菜单时就不再修改了。改进了一下syslinux的处理,不需要重新读取文件。

add-menu命令的--direct选项改为--string,短形式是-s。现在很多选项都有短形式,不需要输入很多字符了。

text命令可以支持多个参数,在参数间自动加入空格,比如,以下的命令是等价的:

text "aaa bbb ccc"
text "aaa bbb" ccc
text aaa bbb ccc

text命令还加了参数-n,表示在输出后不换行,例如:
text -n "aaa"
text "bbb"
输出是 aaabbb

fb.txt里增加color命令,以选择文字颜色,颜色名字和grub4dos里相同:black, blue, green, cyan, red, magenta, brown, light-gray, dark-gray, light-blue, light-green, light-cyan,
  light-red, light-magenta, yellow, white。前景和背景色间用/分割。背景色是黑色时可以省略。例如:

color red/blue

前景红色,背景蓝色。颜色还可以使用normal,表示正常颜色,相当于light-gray/black 前景白色,背景黑色。

以下是一个例子:
timeout 5
color red
text -n "F1. "
color normal
text syslinux
menu F1 syslinux ldlinux.bin

更新#4
可以保存/恢复存档文件。

建立存档文件利用save命令:

fbinst (hd1) save aa.fba

需要恢复时,使用load命令:
fbinst (hd1) load aa.fba

load命令不会删除原有的文件,不过有重名的情况下存档里的文件会覆盖原来的版本。如果想要(hd1)里的文件和aa.fba里一模一样,可以在load前运行format或者clear。

保存时和恢复时,fb的结构不需要相同。主数据和扩展数据区的大小都可以不一样,只要保证空间足够就行了。而且文件的创建参数将会被保留。比如说,原有文件使用了--syslinux的,在恢复时也会加上--syslinux参数。

fbinst里的大部分命令也能作用于存档文件,可以用它们来参看和编辑存档文件。以下命令是有效的:info,clear,add,add-menu,resize,remove,copy,move,export,cat,cat-menu,pack, save, load。例如:

fbinst aa.fda info
fbinst aa.fda cat-menu fb.cfg

另外,修改了菜单按键的处理过程,不相关的键将被忽略而不是出错结束。

删除了config命令。default和timeout参数需要在菜单里设置。

format里--menu-size改为--list-size,因为现在菜单的大小没有限制了,--list-size设置的是文件列表的大小。

更新#5
format命令增加参数--archive,使用存档文件里的数据来格式化,例如:

fbinst (hd1) format --archive aa.fba

注意,如果在新u的盘里建立mbr结构,需要加上--force,不过这样的话也会重新格式化数据分区,慎用!

格式化后主数据区和扩展数据区的大小和原来相同。

另外,新版存档文件格式有所改动,和使用#4制作的不兼容。

更新#6
支持装载linux内核,比如说,你可以使用memdisk来虚拟磁盘:

text "F3. memdisk"
menu F3 linux "memdisk" "floppy.img" ""

linux的三个参数分别是内核,initrd和命令行参数。

更新#7
增加msdos的支持。使用时,把io.sys加入ud设备,其他文件如CONFIG.SYS, COMMAND.COM 和 AUTOEXEC.BAT放在数据分区。菜单:

text "F4. msdos"
menu F4 msdos io.sys

更新#8
在装载linux内核时,显示装载进度。每隔512k打印一个点。
2#
发表于 2010-1-13 06:55:01 | 只看该作者
学习了,谢谢楼主。以前只用gui界面的。
回复

使用道具 举报

3#
发表于 2010-5-15 09:00:37 | 只看该作者
学习了,谢谢楼主 学习了,谢谢楼主
回复

使用道具 举报

4#
发表于 2010-7-10 20:22:07 | 只看该作者
谢谢楼主咯,正在慢慢的啃啦!有点深奥啦!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 06:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表