複製鏈接
請複製以下鏈接發送給好友

fbinst

鎖定
fbinst對付BOOT兼容性問題的開發已經完成,新版本的開發重點已轉向隱藏區的利用。由於8M隱藏區的每個扇區記錄LBA時只用了幾個字節,且bootcode佔據空間也不是很大,所以大量扇區空間是空閒的。
外文名
fbinst
開發重點
對隱藏區的利用
主板支持
幾乎所有主板
性    質
硬盤優化方案

fbinst成功率

FbinstTool 1.604 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
FbinstTool 作者
jianliulin

fbinst巧妙構思

預留8M(1-16064扇區)隱藏區,在每個扇區固定位置都寫入該扇區在WIN下的LBA值,並在1-63扇區都寫入bootcode。BIOS啓動時,通過bootcode讀取預先寫入的LBA值,並與BIOS識別的LBA值進行比較,找出差距,倒推出當前BIOS對U盤的識別和訪問情況,根據這個情況來調整糾正對U盤的訪問。

fbinst空間利用

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等。

fbinst注意事項

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,這已經足夠了。由於菜單構造命令比較複雜,就不再介紹了。

fbinst主板支持

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 --set-root /BOOT/MESSAGE && gfxmenu ( )/BOOT/MESSAGE #背景文件調用
title 【 1 】 (此處編輯項目名)
map --mem ( )/BOOT/IMGS/XYLYGHOST.IMG (fd0) #打開路徑 || find --set-root /BOOT/IMGS/GHOST.IMG (fd0) #檢索文件 && #黃色字部分為自己準備的鏡像
map --hook
chainloader (fd0)+1 #改變啓動扇區啓動項所在磁盤位置
rootnoverify (fd0) #用來改變當前路徑的,在某些情況下不更改當前路徑為要啓動的設備可能出會錯
title 【 2 】(此處編輯項目名)
map --mem ( )/BOOT/IMGS/XGHOST.IMG (fd0) || find --set-root /BOOT/IMGS/XGHOST.IMG (fd0) && map --mem ( )/BOOT/IMGS/XGHOST.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 【 R 】重新啓動計算機
reboot
title 【 S 】關閉計算機
halt

fbinst所有命令

用法
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列出所有磁盤的系統並退出
--verbose,-v Print verbose messages
使用 - verbose,- v打印詳細信息
--debug,-d Use 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 sectors
--base,-b NUM Set basebootsector
--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-sectors NUM Set maximum number of sectors 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
--reset-bpb Reset bpb to inital state
--clear-bpb Clear bpb
--max-sectors NUM Set maximum number of sectors 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 passed 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

fbinst菜單

1. menu HOTKEY SUBCOMMAND
啓動內核的命令都以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內核
2. text STR
顯示一行文字
3. timeout NUM
設置自動啓動的時間
4. default NUM
設置自動啓動的menu項
5. color FG/BG
設置顏色,前景/背景的格式,顏色值有
暗色: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 > GRLDR"
menu F1 grldr "grldr"
color red
text " ----------[02]----------"
color green
text " Press F2 > WDC-SYSLINUX"
menu F2 syslinux "ibmlinux.bin"
color red
text " ----------[03]----------"
color green
text " Press F3 > MSDOS 7.1"
menu F3 msdos "io.sys"
color red
text " ----------[04]----------"
color green
text " Press F4 > SKTQB"
menu F4 grldr "SKTQB"
color red
text " ----------[05]----------"
color green
text " Press F5 > MaoTao WinPE"
menu F5 grldr "LDRXPE"
color red
text " ----------[06]----------"
color green
text " Press F6 > XORLDR"
menu F6 chain "XORLDR.MBR"
color red
text " ----------[07]----------"
color green
text " Press F7 > BULDR"
menu F7 grldr "BULDR"
color red
text " ----------[08]----------"
color green
text " Press F8 > CJJJP"
menu F8 grldr "CJJJP"
color red
text " ----------[09]----------"
color green
text " Press F9 > NTLDR"
menu F9 grldr "NTLDR"
color red
text " ----------[10]----------"
color green
text " Press F10 > BOOTMGR"
menu F10 grldr "BOOTMGR"
color red
text " ----------[11]----------"
color green
text " Press F11 > GMYghost.img"
menu F11 linux "memdisk" "GMYghost.img" "c=142 h=4 s=36 floppy"

fbinst更新歷史

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命令增加選項--reset-bpb
* 在搜索文件時忽略大小寫
v9:
* sync命令增加選項--reset-bpb
* info命令顯示bpb的三種狀態,copy, init和zero
v8:
* 修正了linux命令的問題
* 支持最新的syslinux 4
* 增加菜單命令chain,可以啓動mbr文件
v7:
* 修正了菜單文件fb.cfg超過512時出問題的bug
* export和add命令裏的FILE參數可以省略,這時,將從標準輸入和輸出讀取數據
* sync命令增加--max-sectors, --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-sectors的值,沒有數據分區格式化的參數(它們無法自動檢測)。而且,如果某一數值和缺省值相同時,將不會顯示。-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即可。