使U盘引导成功率大大提高的Fbinstfbinst的巧妙构思
预留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等。
注意事项
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)。fbinst
calc *0x60300=*0x829c #类似上面
gfxmenu ()/BOOT/MESSAGE || find --set-root /BOOT/MESSAGE && gfxmenu ()/BOOT/MESSAGE #背景文件调用
map --mem ()/BOOT/IMGS/XYLYGHOST.IMG (fd0) #打开路径 || find --set-root /BOOT/IMGS/GHOST.IMG (fd0) #检索文件 && map --mem ()/BOOT/IMGS/XYLYGHOST.IMG (fd0) #字部分为自己准备的镜像
map --hook
chainloader (fd0)+1 #改变启动扇区启动项所在磁盘位置
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-41652-1.html
那巴萨尔就活过来
你具备了当省长的水平
因为还有中国和这样的国家能制衡美国