MBR

来源:互联网 发布:瑞士军刀能过安检知乎 编辑:程序博客网 时间:2024/05/01 00:33
什么是MBRx宝库5C/w y(flIG�r0bW

'DwMucgq^0 除了那些具有从非物理 C盘启动选项的PC外,任何一个PC都无法从物理 
6Pii;Ci+L0第一硬盘的{0,0,1}以外的任何一个扇区启动,所以{0,0,1}被称为主引导记 Linux宝库c6~{;I-^GNnn
录即:MBR(Main Boot Record)。 修改 MBR 的病毒或程序把原 MBR 移动到 Linux宝库pLIB-v8^$HE
其他扇区后,这个程序就不能再称为 MBR 了,充其量称为“原MBR”,而占 Linux宝库+EI Ug?nRCP)`s
据{0,0,1}的新引导程序才能称为当前的 MBR。修改 BIOS Setup 中的参数, Linux宝库9mz�Vl[n�L7I9q
可以改变硬盘逻辑盘的结构,但是无论怎么修改{0,0,1}都还是{0,0,1}。 Linux宝库sKE6n+X#LC[
 
/{/B1OM6[V*@7~+F0    有一部分比较麻烦的MBR病毒(如前面Wwashington提到的),当强行使用 Linux宝库.l2g|q9@F(N7r.c#pO
fdisk /mbr后,计算机将不能启动,是因为计算机正常的引导和文件结构是 
to@4//e]*bk0经过病毒(除了病毒情况外还包括一些管理工具 System Commander、Norton 
D{5D?0Q,cP}q0DiskLock)编码/加密的,解码成正常的结构需要从病毒程序现行引导。 Linux宝库I6J+D2h7f.^q
 
/|/ip/q'S'c0    所以说: Linux宝库G8EhyK
 Linux宝库6u"D*X(H6{ x
    (1) 去除任何病毒都不需要低级格式化硬盘,这是真命题; 
4D8m:[G#}+]a#@ DYlH0    (2) fdisk /mbr + sys c: 可以在恢复数据的前提下去除任何引导型病 
l)@1[MtB*/3L0毒,这是假命题。 Linux宝库+_cji mk{
 Linux宝库�/bk3c.I+y!pe
    上述结论的依据是一般情况下,PC都无法从物理第一硬盘的{0,0,1} 以 Linux宝库lF|({ q5bu
外的任何一个扇区启动。我想我和Wwashington 要表达的意思是一致的,仅 Linux宝库~*q]E6wX G
仅是由于对一些基本事件是从不同的角度去理解的,因此在宏观的表述上有 
z+I.@ r|N^#q0不同的侧重点。 Linux宝库u)mTy8b+n/
 
T6wd*ZpDN@0    所以在这里也提醒一下, 试图用 fdisk /mbr + sys c: 清除病毒的时 Linux宝库r|+p2Sx:_5R
候,务必备份 MBR,即 {0,0,1}。KV300、病毒克星VRV在这些方面的处理是 Linux宝库s%AI2~}&s-/
不完善的,KV300这里不再多提了,VRV 号称可以备份 MBR, 但是由于程序 Linux宝库+tT8f&?/@fi,{
的缺陷,备份不总正常,据从原VRV的技术支持那里了解,使用VRV后“丢失 
[%WJi)t;f$U�qkR0硬盘”的不在少数,都无奈把责任推给了稀里糊涂的用户。在这里,我们也 Linux宝库*YJpp3pu,W
不建议使用这个软件。 

C!RUJzid?"bH0

/qmw Z4`0 Linux宝库&M@ r*P&/kF

[k"W!G7_vkTE0    Fdisk的MBR参数

:en6o:~j+s/0

cS:yQs["l0Fdisk的mbr参数介绍(转载) Linux宝库aZ8},h:jb

Linux宝库[%O]*vl"oW

Fdisk是我们在硬盘分区时最常用的命令,但有的读者可能还不知道,Fdisk命令还

Pd#z4k$U^&c0Linux宝库7p7R1t*/c%}:Ea%v$t

有一个未公开参数/MBR,如果在DOS提示符下使用Fdisk /?不会发现此参数,但是

/NIj;y s$FJ0

4w tr"x@5o0这个参数却有很重要的作用,MBR是主引导记录(Master Boot Record)的缩写。那

pLJ8i"[Q&Ge0Linux宝库W.V#|2o'kl;Kw@QH

么,Fdisk /MBR是如何工作的呢?下面和各位读者共同学习一下。
K;sbH;^I0Linux宝库:G7Jd|z    先来看看主引导扇区,硬盘的零柱面零磁道的第一个扇区,被称为主引导扇区(当然是512个字节喽),主引导扇区由主引导记录(MBR)、硬盘分区表(DPT ,Disk $qW+v8FF3c+P%z@$b(s0Linux宝库p j~6T1_Z^

Partition Table)和结束标志三部分组成,各部分的大小和偏移量可参考下表,主Linux宝库uF7qq&J

Linux宝库m5X1[5JSHCwu

引导记录中包含了硬盘的一系列参数和一段引导程序,引导程序主要是用来在系Linux宝库9ye$}QkV

n2m9S~�W G6H0统硬件自检完后引导具有激活标志的分区上的操作系统。它执行到最后的是一条Linux宝库]0x%f7zhB9HE5oS

Linux宝库YLQ[d,RS F ck

JMP指令跳到操作系统的引导程序去,所以这里往往是一些引导型病毒和一些多系Linux宝库)Y1PkF }j8P

d ?qs(K,rh-q0统引导程序的切入点。此部分还包括启动出错时的提示信息Invalid partition Linux宝库Qw:iI,[ST~

Linux宝库8O2FKzas5q@

table、 Error loading operating system、Missing operating system和一些Linux宝库-oTrIy @!T?

Linux宝库IL|#co8G�^} @Z

保留信息。硬盘分区表的64个字节记录了分区的大小、类型,哪个是活动分区等Linux宝库 H'^h0b+T�A7x!es,I

yX{&JU6TK0等(具体结构请参考相关资料)。主引导扇区最后的两个标志“55AA”是主引导扇Linux宝库W4n4Gb a"YK

${p[0_U/b/l)g8@ R{0区的结束标志,有些病毒就会修改这两个标志,结果系统引导时将报告找不到有

#J#q2S6A] H K0

^ ?$ng2}}Gc8~0效的分区表。主引导扇区的数据可以用一些工具或者自己写一段汇编来查看。
3h/D.vx+R*{6Mo0   使用Fdisk /MBR时,会把前446个字节(如果你在Linux下用dd

O:X(n5J,g$kM�@0

c&t'RAv]0if=/boot/boot.NNNN of=/dev/hda bs=446 count=1命令恢复过MBR就知道为什么Linux宝库6U2op@,_POg`5RX

T9Y:^TAn0这个数字是446了)清零后重新“安装”引导程序,但并不会破坏硬盘分区表。安

2x&tNhsM.p eXy7@�Dj0Linux宝库5dd#w ~(XM

装一些安全保护软件或者新的操作系统往往引导程序会被更改,一部分引导扇区

|;EKyb0

W Q ]m)k0病毒也可能占领这块地盘,达到获得系统的控制权的目的。在上述情况下,如果Linux宝库/Kt;i-B%L6@p aC)M

Linux宝库Nt @&[5g]

由于操作不慎或其它原因,系统无法正常启动时可以使用没被病毒感染的启动盘Linux宝库$C*u4^:]Kg;r[$/

Linux宝库"h|Os l4V+S;z

启动系统,然后使用Fdisk /MBR,各位注意,使用时一定要对症下药,下面讲述一

9/Svr�_x@[2v0

/}"g QCrC]FS5_0下我经历的几个例子:
oWn0z&`2v�b0   1.我的一个同学曾经用过一个叫超级保镖的软件,有开机密码的功能,可是密Linux宝库1b*tU)/e

Linux宝库/sme;v ?

码被他忘记了(做茧自缚),他从软盘启动,并且把软件删除了,可是在开机的时Linux宝库Q6/Z!y9DPx#z

Linux宝库zr v7U/P

候还是要求他输入密码。根据他说的,提示输入密码的时机是硬件自检完成以后Linux宝库$u!XK!L7ga.ayw

Linux宝库'Q@K2wN)Q"uPz.K

,Windows刚启动的时候,我推测是主引导扇区被修改了,建议他用Windows 98的Linux宝库z,OF/cXe Ej6a

Z{"X?p}i0启动盘重新启动后使用此命令,结果把开机密码去掉了。Linux宝库xB-F5k(UgYO
   2.同事的电脑被引导区病毒感染,金山毒霸检测到以后,他用金山毒霸做的启Linux宝库|0jz vEM~

Linux宝库O8/j,UN0S

动盘启动杀毒,可是重新启动以后还是检测到有此病毒,我不知道他做的软盘本Linux宝库//Q:Ska

-? [Td/W2x0身是否“干净”,我拿买品牌机时附送的Windows 98启动盘,让他重新启动后,Linux宝库p4x4V0h%B

mB%w_3dpA F;i4{0用Fdisk /MBR,再次重新启动计算机,发现病毒已经被清除。Linux宝库4v:iB1BO
   3.为了体验Windows 2000,本人把公司的另一个小硬盘跳线变成Slave后连到我Linux宝库p*e�i4?kxF P9/P-n

Linux宝库/)a!Y$c#p,nU/^6v^

的电脑的IDE1上,把Windows 2000安装到小硬盘里,可以进行Windows 98和

,O6cd9bK0Linux宝库rR o6||^^`vm;I

Windows 2000双启动,后来硬盘被拿走,再次启动系统时,发现启动不起来了,

4]$^'pW]D.z}0Linux宝库kc(gR['@GV

我拿Windows 98的启动盘启动后,使用Fdisk /MBR命令,还是不行,呵呵,拿出

;_c B-/}h2q#O2L0

m![)vFRMW n0我的最后一招,SYS C:,再次启动,成功!Linux宝库"L/W%d%]o
   4.随着Linux的流行,很多朋友都想在一个电脑上实现双启动(甚至多启动),Linux宝库~;G/^,JPi

Linux宝库1Qr5/n-g|g

安装Linux,可能会把Lilo安装在主引导扇区,如果想卸载Linux,而且用Linux的

(h:R2[#`])j.k0Linux宝库j9S#qo:m

分区命令把Linux的分区删除;以后如果想恢复到原来的系统,用此命令把lilo清Linux宝库E!FDo(Q'_:f ~

es Q9W#F+n%Y Q/RB;^0除即可,一般不会丢失原来系统上的数据。
}|%dT9|x0   最后必须提醒大家的是,Fdisk一般不会影响硬盘的分区结构和数据,但有些Linux宝库+Vc0m2a;C3Fx9G_{

K}:Eye;k0病毒正是利用Fdisk /MBR的原理,修改计算机正常的引导和文件结构,如果你再Linux宝库8c9L k2Rc}v+fC

Linux宝库D3B,zm!_mI k

强行使用Fdisk /MBR可能使系统变得更糟,甚至也可能把硬盘中所有的数据清除Linux宝库,}.r:~[3n Y.?

Linux宝库yPJ@'Y"{)r

。所以最好不要随便使用此命令,只在受病毒或一些磁盘管理工具的影响使系统Linux宝库0n:PNN+d

Linux宝库O%vsV7pk{

无法正常启动时才使用此命令,如果你想试验一下呢,你应该先备份好你的所有Linux宝库fP4g1Py$`!N

Linux宝库0l4C-O^^EJ;j

数据,并且用Debug命令保存你的主引导记录。想一想,微软为何不公开此命令参

]1G.w2EV1EyH6^0Linux宝库L:_5yNF/cvT数呢?因为它是一个危险的命令!

MBR组成
MBR(Main Boot Record),中文意为主引导记录。
硬盘的0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域可以分为两个部分。第一部分为pre-boot区(预启动区),占446字节;第二部分是Partitiontable区(分区表),占66个字节,该区相当于一个小程序,作用是判断哪个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码。
他是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它。但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。
一个扇区的硬盘主引导记录MBR由如图6-15所示的4个部分组成。

·主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。

·出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。

·分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。

·结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。

Linux宝库:G7Jd|z

Linux宝库.K:K&O