|
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打印一个点。 |
|