FbinstTool 1.604由于种种复杂原因,不同BIOS对U盘CHS/LBA参数处理结果不尽相同,导致同一个U盘,在一台机器上BOOT成功,在另一台机器上就可能BOOT失败。
[wuwuzz注:早期硬盘也有类似问题,但最后通过多个工业标准,已经解决。而USB是万能接口,且有关标准未得到厂商统一遵守,问题更复杂]
开源社区的bean提出了巧妙构思,开发出fbinst,基本解决了BIOS下的CHS/LBA参数适应调整问题,使U盘BOOT成功率大大提高。(除非碰上了极度变态的主板和BIOS)。
[wuwuzz注:bean老大同时也是grub4dos和grub2开源项目在我国的开发/维护者]
目前最新的FbinstTool版本是FbinstTool 1.606。
注:上图所示的是FbinstTool
FbinstTool是Fbinst的GUI程序
| Fbinst 作者 | Bean |
| jianliulin |
预留8M(1-16064扇区)隐藏区,在每个扇区固定位置都写入该扇区在WIN下的LBA值,并在1-63扇区都写入bootcode。BIOS启动时,通过bootcode读取预先写入的LBA值,并与BIOS识别的LBA值进行比较,找出差距,倒推出当前BIOS对U盘的识别和访问情况,根据这个情况来调整纠正对U盘的访问。
f在这个区域里可以嵌入:
1,不同版本的grub4dos
2, grub2
3, ntldr
4, 1.44M/2.88M启动盘映像
5, 微型Linux
在最新的V1.3,有隐藏区扩大参数。例如,-r 20M,就是将隐藏区扩大到20M。其中8M是基本区,后12M是扩展数据区。扩展数据区延伸了fbinst的应用,可以放进体积较大的XP PE的ISO、其他IMG等。
1、有些机器的主板/BIOS有bug,fbinst处理的U盘冷启时,屏幕无提示,只有光标闪烁。此时,应重新制作,format步骤调整为: fbinst (hd1) format –force –align –fat16即增加–fat16参数。
同时,在3-4步骤中间(呵呵,步骤3.5),增加
fbinst (hd1) sync –copy-bpb命令,
这条命令的作用是将第1分区的bpb表复制到隐藏区MBR,影响BIOS的识别。
2、fbinst支持构造菜单选择不同的loader,只支持grub和ntldr,这已经足够了。由于菜单构造命令比较复杂,就不再介绍了。
2008年后半年之后的主板基本都可以使用fbinst制作启动 完成U盘系统安装 但是过老的主板还是不能
据说 USB-CDROM【量产镜像】对老主板的支持更好
关于 量产参照 下文拓展阅读
fbinst的目录 及相关作用 参照 下文拓展阅读部分
fbinst丶列表-
timeout 6 #此处默认选择等待时间
default 7 #此处默认选择项
calc *0x60200=*0x82a0 #改加电自检引导方式的内存位置,无论是(fdX)还是(hdY)还是(cdZ),实质上都是对应设备的BIOS标识号(drive number),例如(fd0)对应(0x0),(hd0)对应(0x80),而(cd)应该对应(0xA0),也就是(hd32)。一般来说,0x80开始属于硬盘,而从(0xA0)开始就对应光驱了(直到0xFF)。
calc *0x60300=*0x829c #类似上面
gfxmenu ()/BOOT/MESSAGE || find --t-root /BOOT/MESSAGE u0026u0026 gfxmenu ()/BOOT/MESSAGE #背景文件调用
title 【 1 】 (此处编辑项目名)
map --mem ()/BOOT/IMGS/XYLYGHOST.IMG (fd0) #打开路径 || find --t-root /BOOT/IMGS/GHOST.IMG (fd0) #检索文件 u0026u0026 #黄色字部分为自己准备的镜像
map --hook
chainloader (fd0)+1 #改变启动扇区启动项所在磁盘位置
rootnoverify (fd0) #用来改变当前路径的,在某些情况下不更改当前路径为要启动的设备可能出会错
title 【 2 】(此处编辑项目名)
map --mem ()/BOOT/IMGS/XGHOST.IMG (fd0) || find --t-root /BOOT/IMGS/XGHOST.IMG (fd0) u0026u0026 map --mem ()/BOOT/IMGS/XGHOST.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 【 R 】重新启动计算机
reboot
title 【 S 】关闭计算机
halt
fbinst [OPTIONS] DEVICE_OR_FILE COMMANDS [PARAMETERS]
fbinst [选项] DEVICE_OR_FILE命令[参数]
Global Options:
--help,-h Display this message and exit
- 帮助,- H显示此消息,并退出
--version,-V Print version information and exit
- 版本,- V打印版本信息并退出
--list,-l List all disks in system and exit
- 列表,- l列出所有磁盘的系统并退出
--verbo,-v Print verbo messages
使用 - verbo,- v打印详细信息
--debug,-d U the debug version of mbr
- 调试,- d使用MBR的调试版本
Commands:
format Format disk
--raw,-r Format with normal layout (notbootable)
未格式化的磁盘,格式化无引导的磁盘
--force,-f Force the creation of data partition
-强制格式化,- f强制建立数据分区
--zip,-z Format as USB-ZIP
- ZIP,格为USB - ZIP格式
--fat16 Format data partition as FAT16
- FAT16格式的数据分区为FAT16
--fat32 Format data partition as FAT32
- FAT32格式的数据分区为FAT32
--align,-a Align to cluster boundary
--nalign,-n NUM NAND alignment
--unit-size,-u NUM Unit size for FAT16/FAT32 in ctors
--ba,-b NUM Set babootctor
--size,-s NUM Set size of data partition
--primary,-p NUM Set primary data size
--extended,-e NUM Set extended data size
--list-size,-l NUM Set size of file list
--max-ctors NUM Set maximum number of ctors per read
--chsForce chs mode
--archive FILE Initialize fb using archive file
restore Try to restore fb mbr
update Updatebootcode
sync Synchronize disk information
--copy-bpb Copy bpb from the first partition
--ret-bpb Ret bpb to inital state
--clear-bpb Clear bpb
--max-ctors NUM Set maximum number of ctors per read
--chsForce chs mode
--zip,-z Format as USB-ZIP
info Show disk information
clear Clear files
add NAME [FILE] Add/update file item
--extended,-e Store the file in extended data area
--syslinux,-s Patch syslinuxbootfile
add-menu NAME FILE Add/update menu file
--append,-a Append to existing menu file
--string,-s The menu items are pasd as command argument
resize NAME SIZE Resize/create file item
--extended,-e Store the file in extended data area
--fill,-f NUM Set fill character for expansion
copy OLD NEW Copy file item
move OLD NEW Move file item
export NAME [FILE] Export file item
remove NAME Remove file item
cat NAME Show the content of text file
cat-menu NAME Show the content of menu file
pack Pack free space
check Check primary data area for inconsistency
save FILE Save to archive file
--list-size,-l NUM Set size of file list
load FILE Load from archive file
create Create archive file
--primary,-p NUM Set primary data size
--extended,-e NUM Set extended data size
--list-size,-l NUM Set size of file list
启动内核的命令都以menu开始,HOTKEY是对应的热键,子命令有
a) grldr FILENAME
启动grldr/ntldr文件
b) syslinux FILENAME
启动ldlinux.bin文件
c) msdos FILENAME
启动io.sys文件
d)freedosFILENAME
启动kernel.sys文件
e) chain FILENAME
加载启动扇区文件
f) linux KERNEL INITRD PARAM
启动linux内核
显示一行文字
设置自动启动的时间
设置自动启动的menu项
设置颜色,前景/背景的格式,颜色值有
暗色:black, blue, green, cyan, red, magenta, brown, light-gray,
亮色:dark-gray, light-blue, light-green, light-cyan, light-red, light-magenta, yellow, white
背景只能使用暗色。也可以用normal来表示普通色,它相当于light-gray/black。
举例:
timeout 1
default 0
color red
text fbinst v1.6 menu by bean
text ----------[01]----------
color green
text Press F1 u003e GRLDR
menu F1 grldr grldr
color red
text ----------[02]----------
color green
text Press F2 u003e WDC-SYSLINUX
menu F2 syslinux ibmlinux.bin
color red
text ----------[03]----------
color green
text Press F3 u003e MSDOS 7.1
menu F3 msdos io.sys
color red
text ----------[04]----------
color green
text Press F4 u003e SKTQB
menu F4 grldr SKTQB
color red
text ----------[05]----------
color green
text Press F5 u003e MaoTao WinPE
menu F5 grldr LDRXPE
color red
text ----------[06]----------
color green
text Press F6 u003e XORLDR
menu F6 chain XORLDR.MBR
color red
text ----------[07]----------
color green
text Press F7 u003e BULDR
menu F7 grldr BULDR
color red
text ----------[08]----------
color green
text Press F8 u003e CJJJP
menu F8 grldr CJJJP
color red
text ----------[09]----------
color green
text Press F9 u003e NTLDR
menu F9 grldr NTLDR
color red
text ----------[10]----------
color green
text Press F10 u003e BOOTMGR
menu F10 grldr BOOTMGR
color red
text ----------[11]----------
color green
text Press F11 u003e GMYghost.img
menu F11 linux memdisk GMYghost.img c=142 h=4 s=36 floppy
v11d:
bean 大师测试此版没什么问题,就将此版定为正式版。
* format命令增加参数--nalign,可以指定数据分区开始扇区的对齐
* 增加命令create,可以用于创建空的存档文件
* 在-l列表里,用*来表示fb设备
* 修正了进度条的一个bug
* 在XP下强制格式化后更新u盘内容。
* 当数据大于20m时, add, export, save, load, format等命令显示进度。每个点代表5%。
* 调整了一下chs检测了代码。以前需要--chs选项才能启动的用户可以测试一下这个版本,看在没有--chs的情况下是否正常。
v10:
* 修改了一下chs模式的测试
* initrd装载地址改为32m
v9b:
* sync命令增加选项--ret-bpb
* 在搜索文件时忽略大小写
v9:
* sync命令增加选项--ret-bpb
* info命令显示bpb的三种状态,copy, init和zero
v8:
* 修正了linux命令的问题
* 支持最新的syslinux 4
* 增加菜单命令chain,可以启动mbr文件
v7:
* 修正了菜单文件fb.cfg超过512时出问题的bug
* export和add命令里的FILE参数可以省略,这时,将从标准输入和输出读取数据
* sync命令增加--max-ctors, --chs和--zip参数,不需要format命令就可以修改这些参数。
* export命令会自动创建输出文件的父层目录
* info命令增加debug version和copy bpb的信息
* 修正了FAT32格式化的bug,现在最大可以支持2T
v5:
* 在没有--force时不锁定磁盘
v4:
* 可以读取编辑过的fba文件
* 增加fba文件的format option输出
* 根据fb mbr没有初始化和被覆盖显示不同的信息:fb mbr not initialized, fb mbr corrupted。后者可以用restore命令恢复。
v3:
* 缺省列表使用最大值456960。
* format命令增加参数--chs,强制使用chs模式。这可以用于某些不能自动检测模式的bios。
* info命令新增输出format options,显示格式化参数。
格式化参数只有-p,-e,-l,--zip, --chs, --max-ctors的值,没有数据分区格式化的参数(它们无法自动检测)。而且,如果某一数值和缺省值相同时,将不会显示。-l里显示的数值将上调到510的倍数(实际保存的数值是以扇区为单位的)。
chenall:新的GRUB4DOS已经上传,有条件的朋友请测试一下。
2010-06-21 applied bean's patch(supported new (ud) device created with fbinst1.6).
V2:
(2010年6月19日更新)
* 支持大的文件列表。当前缺省值是32640,最大可支持456960。
(天涯海角1216注:这个对与UD区放入多个文件很有效,防止出现文件列表不够)
* 增加缺省启动文件。如果fb里没有配置菜单fb.cfg,则自动启动buldr。
* 支持使用盘符来表示设备
(hdx)的形式依然支持,不过使用盘符更加直观。
这个版本里磁盘存储结构有较大改变,以前的grldr和buldr都用不了。测试时请用附件里文件。
bean 用最新版本的fbinst制作了一个burg的fba,里面包含了所有的风格:
fbinst编译脚本说明:
首先,需要下载burg的编译包,然后把附件grubutil_scripts.zip解压到msys的bin目录里。
grubutil_dirs
这个文件设置路径。SRCDIR是源码的存放目录,OBJDIR是编译文件目录。
grubutil_update
下载最新代码
grubutil_compile
编译代码
V1:
(2010年6月17日更新)
支持windows vista/7(需要提升至管理员权限),格式化后会remount分区,不需要弹出u盘。
将新版 fbinst.exe 与 FbinstTool 放在同一个目录下,再选外置FBINST即可。
本文发布于:2022-11-06 23:24:10,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/83/442875.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |