- 論壇徽章:
- 0
|
BIOS中的分區(qū)工具
原創(chuàng):killer(killer)
來源:http://nfans.net;http://xfocus.org
BIOS中的分區(qū)工具
killer
http://nfans.net
其實這只是一個廣告 :)
下面是廣告時間:
你是否為ms的丑陋的FDISK感到頭痛?或者在為沒有一款可心的多OS引導工具發(fā)愁?別急,下面就讓
我來幫助你把分區(qū)工具集成到BIOS中,以后你不用引導系統(tǒng)就可以對硬盤分區(qū)了,hoho~~
1、介紹:
以前一直對BIOS感到神秘莫測,因為他掌管了computer的啟動大權,各種設備要聽他調度,后來捷波
主板提供了一個恢復精靈,據(jù)說對刪除文件、format/fdisk系統(tǒng)都能恢復,中文版本的,還聽說是一大賣
點。于是一激動就給人家寫了個mail,結果人家說商業(yè)技術機密,就不理俺了。
本打算反匯編看看,但偶用的OS都是WIN32下的,居然無法反匯編,而且也找不到DOS下的反匯編工具
了,另外這個從BIOS中分離出來的.dat文件反匯編也不會正常。(誰有好辦法不防告知一聲)后來看到有人
在bios中居然集成了分區(qū)工具,才知道寫能運行在BIOS中的軟件的格式和正常的略有不同,為了能讓大家
體會一下這個工具的方便之處和使用方法,我簡單說明如下:
bfdisk (Bios Fdisk) 是一個多系統(tǒng)的分區(qū)工具,他可以支持劃分15個分區(qū)安裝15個操作系統(tǒng),可以
設置在每個系統(tǒng)啟動的后能看到哪些分區(qū)。軟件集成分區(qū)、多系統(tǒng)引導的功能,這個以ISAROM格式編寫的
軟件還支持高分辯率的LOGO,強!還有,這是全中文的界面。
下載:http://nfans.net/tmp/bfdisk.rar
下載完成后,可以看到壓縮包中包括bfdisk.rom、bfdisk.com兩個文件,我們需要將bfdisk.rom這個
文件寫入BIOS中。BFDISK.com是BFDISK.rom的實模式下的版本,他們的功能是一樣的。通常我們利用
bfdisk.com來檢測一下顯卡,看看是否支持VESA1.0。如果能看到出現(xiàn)的畫面就可以確定顯卡測試通過。
在測試完成后利用AWARD的工具進行BIOS的修改,首先把主板上的BIOS讀出來:
推薦用winflash.exe來讀取,這個軟件上手比較快,而且能運行在win9x上。執(zhí)行后點保存的按鈕,在
出來的對話框中起個名字,點保存后出現(xiàn)save bios窗口,點擊backup按鈕即可。(我這里把BIOS保存為
815ep.BIN)
然后用cbrom.exe來進行修改,用下面的指令將bfdisk.rom加入到bios文件中:
CBROM 815ep.bin /ISA BFDISK.ROM
最后在用winflash.exe 來將BIOS文件寫回主板。
方法是點擊工具欄上面保存后面的按鈕(第三個),在出來的對話框中找到剛才修改后的BIOS文件。
點擊打開按鈕后會出現(xiàn)新的對話框update bios,點UPDATE按鈕即可。(通常所謂的BIOS升級就是如此簡單
的,我們通過此方法可以集成你想集成的其他的BIOS模塊)
然后重新開機,在硬件檢測完成后就會看到一個漂亮的LOGO,在這個時候按CTRL+F鍵,就會進入程序
的主界面。
需要注意的是該軟件只能運行award bios主板,顯卡支持VESA1.0,主板支持8.4G以上硬盤的配置,還
有利用ISAROM來使用的工具只能加載一個,就是說如果你的機子中有恢復精靈的話,在使用本軟件后恢復
精靈將會失效。
另外,如果用該軟件對硬盤進行分區(qū)并進行多系統(tǒng)引導了,不要用PQMAGIC之類的軟件來重新移動硬盤分
區(qū),很簡單這會造成引導程序出錯。
have fun ~
如果你不小心改壞了導致無法開機,別怪我。。。
可以通過這個方法修復回來,利用sys a:作一張引導軟盤。然后拷貝awdflash.exe 和沒有修改的
815ep.bin到軟盤上,在軟盤的autoexec.bat寫上awdflash 815ep.bin,軟盤啟動成功后會兩次車,然后按
“Y”鍵,就會將沒修改的815ep.bin寫回主板。
2、原理:
上面已經說出,該工具是通過ISAROM格式編寫的,只要遵守ISAROM的規(guī)范,就可以寫出能在BIOS中使
用的工具,下面是一個hello world !寫回主板后開機會顯示hello world !提示。
有如下代碼:
=============================================================
;FILENAME BHW.ASM
;MAMS6.0 BHW
;LINK/T BHW
.Model Tiny,C
.486
.code
InitCode PROTO
printf PROTO :WORD,:WORD
GetKey PROTO
org 0h
start:
DW 0AA55h ;擴展BIOS標志
DB 40h ;本程序大于32K值為80H,否則為40H
invoke InitCode ;入口標志
retf ;遠程返回
Message db 0dh,0ah,'hello world!',0dh,0ah,0
InitCode proc
invoke printf,cs,addr Message
invoke GetKey
ret
InitCode endp
printf proc uses ds MemSeg:WORD,address:WORD
push MemSeg
pop ds
lea si,address
xor bx,bx
mov ah,0Eh
cld
lodsb
.while al != 0
int 10h
lodsb
.endw
ret
printf endp
GetKey proc
@@:
mov ah,1
int 16h
jz @B
xor ax,ax
int 16h
ret
GetKey endp
end start
=============================================================
利用本文提供的方法,你可以寫出能在BIOS中運行的程序,如果具體想編寫的話,最好要參考PNPBios的
資料來編寫。 |
|