fbinst

王朝百科·作者佚名  2010-08-05
窄屏简体版  字體: |||超大  

新型万能USB启动盘制作软件由于种种复杂原因,不同BIOS对U盘CHS/LBA参数处理结果不尽相同,导致同一个U盘,在一台机器上BOOT成功,在另一台机器上就可能BOOT失败。

[wuwuzz注:早期硬盘也有类似问题,但最后通过多个工业标准,已经解决。而USB是万能接口,且有关标准未得到厂商统一遵守,问题更复杂]

现在开源社区的bean提出了巧妙构思,开发出fbinst,基本解决了BIOS下的CHS/LBA参数适应调整问题,使U盘BOOT成功率大大提高。(除非碰上了极度变态的主板和BIOS)。

[wuwuzz注:bean老大同时也是grub4dos和grub2开源项目在我国的开发/维护者]——————fbinst的巧妙构思预留8M(1-16064扇区)隐藏区,在每个扇区固定位置都写入该扇区在WIN下的LBA值,并在1-63扇区都写入boot code。BIOS启动时,通过boot code读取预先写入的LBA值,并与BIOS识别的LBA值进行比较,找出差距,倒推出当前BIOS对U盘的识别和访问情况,根据这个情况来调整纠正对U盘的访问。——————fbinst隐藏区空闲空间的利用fbinst对付BOOT兼容性问题的开发已经完成,目前新版本的开发重点已转向隐藏区的利用。由于8M隐藏区的每个扇区记录LBA时只用了几个字节,且boot code占据空间也不是很大,所以大量扇区空间是空闲的。在这个区域里可以嵌入:

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等。——————fbinst的一般用法:0、fbinst -h 帮助,列出命令选项

1、fbinst -l 列出当前U盘设备名,输出样例:

(hd0) 40G 本机硬盘40G,设备名hd0

(hd1) 1G 第一U盘大小是1G,设备名hd1

(hd2) 4G 第二U盘大小是4G,设备名hd2

2、fbinst (hd1) format –force –align

对U盘hd1进行格式化,创建前述fbinst结构。其中:

(hd1)是根据1中容量列示,对应找到的U盘设备名,注意:不要把本机硬盘错认成U盘!

format是fbinst的内置命令

–force是format参数,表示强制格式化,全新建立fbinst结构;

–align表示进行数据对齐;

其他format参数还有

–fat16 格式成fat16

–fat32 格式成fat32

–unit-size 指定单元分块大小,主要是用于尝试U盘提速

–zip 设置某些参数,影响BIOS识别,尝试ZIP。不保证BIOS一定能识别成ZIP。

3、重新插拔U盘

由于强制format刷新了MBR,所以必须重新插拔,让Win重新识别

4、fbinst (hd1) load grldr

将当前目录下的grub引导器grldr安装到U盘hd1的隐藏区

至此,fbinst的基本操作已经完成,选择USB启动后,应进入grub的提示符grub>——————其他注意事项: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,这已经足够了。由于菜单构造命令比较复杂,就不再介绍了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航