POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 13169|回复: 7
打印 上一主题 下一主题

INTEL原装主板BIOS损坏的看过来

[复制链接]
跳转到指定楼层
1#
发表于 2006-9-19 22:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一直以来,使用INTEL原厂主板的网友,都会发现这样一个问题,那就是INTEL原厂的主板BIOS比较特殊;其官方网站提供的BIOS文件,并不是一个单纯的BIOS文件,也不同于刷新程序和BIOS文件整合的自动刷新程序,其是由多个单纯的文件模块组成的EXE自解压文件./ N) Y( f( a" [$ q' c
0 J6 V) _9 I# H6 E
   现在INTEL官方网站提供的BIOS文件,分WIN环境(Express BIOS Update)和DOS环境(IFlash BIOS)二种刷新文件,但无论哪种刷新文件,都是设置为自动刷新BIOS。如DOS环境下的文件下载解压后,还需要运行其解压出的RUN文件,RUN文件将自动制作启动软盘,使用制作好的软盘启动系统即可自动完成刷新,虽然这样可以方便网友刷新BIOS;但是如果遇到主板BIOS损坏的特殊情况时,由于其BIOS文件的特殊性,就算使用编程器都不可能重写BIOS芯片的。
8 |% g1 ]5 }" p4 g0 X/ Q6 E: x8 \. C; l1 ]
   INTEL原厂主板BIOS损坏后,维修难的问题一直困扰着很多网友,包括一些主板维修人员。如何找到INTEL主板的BIOS文件,就成了维修的关键。那么是否可以通过INTEL官方网站提供的BIOS文件,从中将BIOS文件提取出来呢?答案是肯定的,因为即然INTEL官方网站下载的BIOS文件,可以用于刷新,虽然BIOS特殊些,但表明其下载的文件中已经包括了BIOS文件,我们只要想办法将其中的BIOS文件提取出来,一切问题就解决了。6 J2 n1 O: J5 P4 p: h
1 U0 S2 P# [; H; [
   通过对下载文件的分析,INTEL官方网站提供的文件解压后分两种情况,一是,单独的刷新程序,但BIOS文件是由多个单独的文件模块组成的(图一),为了方便下面的介绍,我们暂称分散型BIOS文件。二是,单独的刷新程序,BIOS文件是一个组合的整体(图二),我们暂称整体型BIOS文件。对于以上两种情况的BIOS文件提取,BIOS将一一详细介绍,了解后你会发现,提取INTEL原厂主板BIOS,原来就是这么简单。
* w$ z* L& m5 p6 k) X" K(图一)7 f  U; F1 m8 \
(图二)
0 I: G1 w, O3 u# a5 t4 Z" M一、准备工具。
+ R. K0 S3 j5 ~7 L& l6 E3 G
& t6 X+ O/ Y  g) L8 K需要使用的工具有:UltraEdit32(下载http://www.biosrepair.com/biosfiles/ultraedit.zip) 计算器(WIN系统自带)
2#
 楼主| 发表于 2006-9-19 22:23 | 只看该作者

2

二、提取分散型BIOS文件。( n% ?/ P( n# E8 H

3 q: |, y  f$ [# c& u    首先按主板型号,到INTEL官方网站下载到BIOS文件(文章以Intel英特尔D845EPT2/D845EBG2主板 PTAP07EB文件为例),其是WIN环境下自安装程序,如果当前主板不是INTEL原厂,直接运行EXE文件,系统将提示错误而退出安装。我们应用鼠标选择PTAP07EB文件,右键--选择--用WINRAR打开(当然,系统中要安装WINRAR程序)(图三)。使用WINRAR打开后,选择文件菜单--命令--解压缩到指定文件夹,将解压的文件保存在相应的文件夹中(如c:INTEL)。打开保存的INTEL文件夹,我们会发现,文件夹中有很多文件,其中的P07-0013.BI0--p07-0013.BI6等7个文件,即为我们需要的文件(图四)。- g! A6 S+ q8 l* J: y* U- d
(图三)# Q/ Y) _1 ^6 g, G* \2 C
(图四)
& E2 B, Z1 D) h! p. j. D3 \! i+ e. S删除其它无用的文件,只保留P07-0013.BI0--p07-0013.BI6等7个文件;从文件名中可以看出,INTEL的BIOS文件模块,其文件名相同,但扩展名是不同的。这也是合并的关键,合并时要以文件的扩展名为顺序,即标明为BI0的为第一个文件,然后依次类推;当然,完整的BIOS文件并不是简单的合并就可完成的,请随BIOS继续。4 Q  i3 Q: H( R  `
& |0 R) h2 u' Z
    运行UltraEdit32程序,调入P07-0013.BIO文件,文件从头部0000H--009FH的地址,是BIOS模块的标识部分,其内容为主板的型号及日期等,我们称为文件头部。在这里,可能细心的网友会发现,我们打开的文件是P07-0013.BIO,但标识信息中却是显示的P07-0013.BI1(图五),难道是文件错误?其实是这样的,INTEL在BIOS模块标识中定义的文件名,是代表此文件下一BIOS模块的文件名。IFLASH在刷新时,也是根据读取BIOS模块标识中的文件名,来定义联接下一个BIOS模块。但是此标识,只起到定义文件模块的作用,并没有写入BIOS。因此我们要先将标识部分(文件头部)删除。  w" [9 e* _* a2 D( l' Y0 C
(图五)
" t2 ]8 \" e, W! M0 D% j' _由于此标识部分数据很少,因此只要在UltraEdit32编辑界面中,使用鼠标选择0000H--009FH地址的数据后,点击菜单--编辑--剪切即可(图六)。剪切完成后选择文件--保存,将修改后的文件按原名保存即可;然后按此方法逐一修改其它几个剩余文件(注意,最好按原名保存,如果选择另存为,一定要注意顺序,即不能打乱原文件名的排列顺序)。+ Y; I+ b7 C- y; {# r7 D1 a
(图六)  [% Z" t8 N( l* `3 I8 w/ B9 m
所有文件修改完成后,点击Windows--开始--运行。输入COMMAND确定后,进入DOS模式(以WINXP为例),进入BIOS文件模块的文件夹(即INTEL文件夹)。输入Copy P07-0013.BIO/b+P07-0013.BI1/b+P07-0013.BI2/b+......P07-0013.BI6/b BIOS.ROM,回车后即可将上述7个文件合并成一个BIOS文件(图七)。在这里一定要注意,输入的文件名一定要顺序输入,即从BIO--BI6,不能打乱顺序;每一个文件名后一定要加/B参数,即表明文件按二进制的方式联接;还有一点,请网友注意BIOS模块第一个文件,其扩展名是BIO,是O不是零。# k+ T# G/ d2 T- ?% K% P( i  O
(图七)& K5 p0 c2 J$ a1 \/ ^. j0 [
网友看到这里,是否认为BIOS文件已经合并完成了。其实这只是开始,关键步骤如下的。运行UltraEdit32程序,调入我们刚才合并的BIOS.ROM文件(如果编辑栏显示为HEX格式(图八),只要选择菜单编辑--HEX编辑即可)。点击菜单--搜索--查找,在查找内容中输入AMI,注意一下是否选定了查找ASCII(图九),(为什么输入AMI,因为INTEL的BIOS,实际就是AMI的BIOS文件,呵呵,绝对想不到吧;搜索AMI,即寻找AMI BOOT区)。找到后,我们将鼠标移到58000H的地址处(图十),我们要在此插入相应数量的空字节即FF;插入的字节数根据主板BIOS芯片容量和我们合并的INTEL.ROM文件的大小决定,即使用BIOS芯片的容量减去合并文件的大小,由于主板使用IN82802AB的BIOS芯片,其容量为4M,大小为7FFFFH,我们合并的INTLE.ROM文件,只有67FFFH(即INTLE.ROM文件的尾部地址(图十一));运行开始--所有程序--附件--计算器,选择计算器上的查看--科学型,选择计算器上的十六进制,从键盘输入7FFFF-67FFF(不包括H),鼠标点击=,即可显示值为十六进制的18000H,选择十进制,显示的98304即为我们要加入的字节数(图十二)。' y* Y& z: r9 O! R
(图八)$ W& \. k; M. E, J
(图九)
2 N+ \) n% ~* T8 @  E0 M(图十)
; r) {: w# t* ]  o3 s4 a- ], l/ a(图十一)- T9 {( k) m; H8 ^% o
(图十二)
5 _- C' l5 b# x选择UltraEdit32程序的文件--新建文件,在空白处随意输入字符,然后选择菜单栏--编程--HEX编辑/EBCDIC,然后在编辑栏中0000000H地址处,删除后面的内容,删除后应只显示地址0000000H(图十三);将鼠标指向0000000H地址后,选择菜单栏--编辑--HEX插入/删除,选择插入,在插入/删除的字节数量后输入98304确认(图十三),即可加入输入字节数的空字节;选择菜单栏--搜索--替换,在界面查找内容处输入20,替换为输入FF(注意,要去掉ASCII选择),点击全部替换(图十四);这样所有的20即替换为FF。选择菜单栏--编程--全部选定然后再选择复制。$ _8 U# e  e8 g  Z- U3 h7 P
(图十三)6 ^+ M" k: R# U+ c
(图十四)1 z. x% e! ~4 U
选择UltraEdit32程序左侧的状态栏,转换到开始的INTEL.rom,在58000H地址处,选择菜单栏--粘贴即可。完成操作后,看一下文件的尾部,如果正好是7FFFFH,那说明修改正确(图十五),选择文件--另存为即可(如BIOS.rom)。到此INTEL分散型BIOS文件即提取完成,使用编程器即可将文件写入。
# Z2 H* x1 r; K; w6 J* w0 i) |$ p/ {
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2006-9-19 22:26 | 只看该作者

3

三、INTEL整体型BIOS的分离方法 # V8 E2 R' T2 |" E
/ b5 c' C' e2 z/ X6 J- ]

' e4 S6 h  q) H3 a. |; `8 \! Z" g7 v  首先到INTLE网站下载到BIOS文件,解压后文件如下:
8 X; {( G' X) P! q    由于无法准确判断哪一个是BIOS文件,所以只有先分析一下解压缩出的文件。文件中包括自动批处理文件(autoexec.bat),因此我们首先分析一下此文件,通过编辑此文件发现此文件没有任何有用的资料,就是直接读取iflash.exe文件;接着我们分析另外一个批处理文件EXECUTE.BAT,在此文件中找到我们需要的内容:
4 C- L' v4 X* V# X- l% c& m- a  B6 Q& c" E
2 Y( h& @3 c0 B1 n
(图十七)
  Y8 k0 i# o3 y  N' {+ q3 _  看出IFLASH都是调用的p34-0125.bio文件,由此判断,主板所需要的BIOS文件,就在p34-0125.bio文件中,但从分离的文件可以看到,p34-0125.bio文件有1.2M大小,因此,此文件是需要分离的。
- b( Q9 O: p( l. U" o  b& r0 M! P2 i4 y, ^5 _5 ?: W. R
    我们使用ULTRAEDIT32打开p34-0125.bio文件。打开文件后,真的无处下手呀。通过寻找关键字,发现此BIOS竟是AMI的BIOS,因为他使用的是AMIBOOT的BOOT文件;呵呵,BIOS一直认为INTEL原厂的BIOS是PHOENIX的,呵呵,绝对意外。
6 R% f* O  Z+ h- D2 E$ d
& D) J( v( H" A1 L6 p: U     即然其是AMI的BIOS,那么我们就从AMI BIOS来分析,我们知道,AMI BIOS在头部往往都是FF的空字节,这点与AWARD是不同的。通过分析文件,发现文件的头部是BIOS文件的识别码,就是IFLASH就是通过此来识别BIOS文件的,从头部到0acf H为识别代码,我们先在ULTRAEDIT中将其删除。
! Q* _. R7 f4 ]5 O! v
5 ]* e) j' j" i! d; O2 i3 u/ [) |% \  n& s. T
将光标移动到文件的头部,即00000H的位置,点击“编辑”--“HEX 添加/删除”,选择删除,输入需要删除的字节即可。(注意:删除时,一定要将光标移动到文件的开头呀。呵呵。)对于删除的字节数,我们可根据此计算,由于ULTRAEDIT显示的16进制,而且我们需要将0acf H以前的内容全部删除。因此我们需要计算的地址是ad0 H转换成10进制;呵呵,这个对于一般的网友来说,困难呀。不过,有简单的方法,我们只要在开始--程序--附件--计算器。运行计算器后,点击查看--选择科学型,首先选择16进制,然后输入ad0,呵呵,再选择上面的10进制,即可显示出对应的10进制数了。5 ]- e8 {; e* A/ m& _7 v

9 _- C( v: w5 Y" v- x/ _    将文件的头部删除后,我们再判断BIOS文件的尾部;通过分析INTLE AMI BIOS,其BIOS的尾部字节应是0F 09 EB CE 00 00 00 00 00 00 00 00 00 00 FF,在搜索中搜索此字节,确定尾部在fffff H位置上,再通过主板使用的BIOS芯片来判断,其使用的是N82802AC芯片,此芯片是8M容量的,其地址正好是00000H---fffffH,因此确定我们确定的BIOS文件尾部是正确的。# l  ~+ r0 m& Y8 g7 y: H
# e& X" @' P7 S) K3 P) C) a$ L
即然确定了BIOS文件的尾部,那么我们只要将100000 H后面的内容全部去掉就可以了。将光标移动到100000 H位置上,点击“编辑”--“HEX 添加/删除”,选择删除,输入需要删除的字节即可。由于我们要删除100000 H后面所有的字符,因此在删除输入的字节数时,我们随意输入一个尽可能大的字节数,点击删除即可;这样就不用计算需要删除的节节数了。呵呵,BIOS感觉这样最方便呀。最大的删除字节数是2147483645。! a; u! D3 u3 ]3 w+ U

6 f4 t' I2 r4 e    删除后,我们就可把剩余的00000--fffffH之间的内容保存即可。点击文件--另存为,输入保存的文件名保存即可。
; q) q+ V, l/ l* z% ^8 J% z1 A* T1 Z! ]# A4 q2 m. ?
    修改完成的BIOS文件,使用AMIBCP8可以正确打开,因此确定BIOS文件分离成功;然后使用编程器将修改好的文件写入主板BIOS后,插到主板上,开机一切正常,至此INTEL原厂BIOS分离完成。
" W  p& j6 G& F* a4 Q7 I; \  ^& v
+ [% f  E% \, F7 ^% n% @; R  S" L# o    注意:修改BIOS时,一定要参考BIOS芯片的容量,来判断要分离BIOS文件的大小。
7 ~* E  H1 o; u8 Z8 L' N3 h          分离BIOS,首先要分析BIOS文件的头部和尾部,而且计算删除的字节数时,一定要判断出要删除的地址,然后再做计算。
( G( |/ ?! Q) {9 M6 O          分离BIOS也有一定的危险性,因此此方法最好用于维修方面,即BIOS损坏需要使用编程器来恢复的情况下。
回复 支持 反对

使用道具 举报

4#
 楼主| 发表于 2006-9-19 22:27 | 只看该作者
自己顶一下,转来的强贴,解决了刷INTEL原装板BIOS的问题,希望兄弟们支持下,哈哈。
回复 支持 反对

使用道具 举报

5#
发表于 2006-9-20 00:13 | 只看该作者
好贴,只是俺不买INTEL原稿厂的东西,也不买带AMI的BIOS东西,用不上了...
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2006-9-26 12:21 | 只看该作者
呵呵。看来很多人不感冒的啊。
回复 支持 反对

使用道具 举报

7#
发表于 2006-9-26 14:38 | 只看该作者
我以前用过Intel965主板,现在用975得,我觉得刷BOIS就是下载在Windows下得EXEBOIS,点击让他自己运行就好了,好像没这么麻烦。) |) C8 A0 j. \4 [" q; n$ m: v+ S
+ E% g, e& x7 h3 s8 x% e3 H
楼主说得BOIS损坏是怎么回事,BOIS什么情况下会被损坏?
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2006-9-27 19:22 | 只看该作者
我是板子BIOS点不亮后刷的BIOS,你的板子是好的,用工具刷当然方便。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-2-3 22:12

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表