1 MBR常识介绍
MBR(Master Boot Record),是硬盘的主引导记录,在主引导扇区,位于硬盘的cylinder 0, head 0, sector 1 (Sector是从1开始的)。MBR可以通过FDISK创建,通过INT 13h的fun 2来读取。
引导扇区是每个分区(Partition)的第一扇区,而主引导扇区是硬盘的第一扇区。它由三个部分组成,主引导记录MBR、硬盘分区表DPT和硬盘有效标志。在总共512字节的主引导扇区里MBR占446个字节(偏移0--偏移1BDH),DPT占64个字节(偏移1BEH--偏移1FDH),最后两个字节“55AA”(偏移1FEH--偏移1FFH)是硬盘有效标志。
MBR功能
检查分区表
搜索可引导分区
加载活动分区的第一扇区(DOS Boot Record)
MBR组成
一个扇区的硬盘主引导记录MBR由4个部分组成:
•主引导程序:偏移地址0000H--0088H,它负责从活动分区中装载,并运行系统引导程序。
•出错信息数据区:偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。
•分区表(DPT,DiskPartitionTable):含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。
•结束标志字:偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。
MBR结构
0 字节 分区状态: 如0-->非活动分区,80--> 活动分区
1 字节 该分区起始头(HEAD)
2 字节 该分区起始扇区和起始柱面
4 字节 该分区类型,如82--> Linux Native分区,83--> Linux Swap 分区
5 字节 该分区终止头(HEAD)
6 字节 该分区终止扇区和终止柱面
8 双字节 该分区起始绝对分区
C 双字节 该分区扇区数
最后的两个标志“55 AA”是分区表的结束标志,如果这两个标志被修改(有些病毒就会修改这两个标志),则系统引导时将报告找不到有效的分区表。
读取MBR
入口参数:AH=2 (指定功能号)
AL=要读取的扇区数
DL=磁盘号(0、1-软盘;80、81-硬盘)
DH=磁头号
CL高2位+CH=柱面号
CL低6位=扇区号
CS:BX=存放读取数据的内存缓冲地址
出口参数:CS:BX=读取数据存放地址
错误信息:如果出错CF=1 AH=错误代码
修复MBR
fdisk /mbr :重写硬盘主引导区,注意中间有个空格。
命令适用于:
1. 主引导程序受损
常见故障,硬盘不能自举,微机死锁,或显示 boot failure-insert system diskette; 经由软盘引导, fdisk 命令能列出分区信息。取硬盘同版本 dos 软盘或应急盘引导, 运行 a>fdisk /mbr 命令,仅向主引导扇区写入当前系统固有的主引导程序, 硬盘即恢复自举能力, dos 引导信息及系统文件等均正常。
2. 清除嵌入式主引导型病毒
此类病毒常见, 它们仅以先导模块嵌入主引导程序, 不触动分区表及检验标志。首选以检出此类病毒的软件清除。
遇杀毒软件不效, 简洁高效的对策是以硬盘同版本 dos 软盘引导, 运行 a>fdisk /mbr 命令, 向硬盘单一地写入当前系统固有的主引导程序, 病毒“先导”模块被覆盖, 分藏它处的残部随之丧失作用。
以常规 fdisk 命令进行分区, 难能清除此类病毒, 原因是当它读得检验标志完好, 自动逾越主引导程序写操作, 仅登录分区表。硬盘格式化后不能自举。行之有效的措施是运行 a>fdisk /mbr命令。
3. 仅设基本 dos 分区硬盘的主引导信息全损
前述表现之外, 执行 a>c:, 显示 invalid drive specification,分区表遭毁; fdisk 命令不能列出分区信息。
分别运行原用的 ms dos 7.0 及 7.1 fdisk /mbr命令, 常规重写全套完全适用的主引导信息, 由于其 dos 引导信息、文件分配表、根目录及用户数据完好, c 盘均迅即康复。
4. 清除 lilo 信息
在以系统自带的 linux load 过程中, 每修改主引导信息, 籍以引导 linux。
需要时, 删除 linux 分区后, 可用 fdisk /mbr 命令恢复系统固有的主引导程序。
5. 清除主引导程序“空闲”字节中的外加信息
既往所见各版本 dos 登录的主引导程序基本相同, 其末段均为大于200 字节的“空闲”(00h); ms dos 7.1 / 8.0 使用新版主引息程序, “空闲”字节数大减。
上述“空闲”字节有被利用登录开机密码、软件鉴别信息之类。若有需要, 也可用 fdisk /mbr 命令复原, 即予清除。
2 修复MBR方法
硬盘,在BIOS里正常识别,但是用低格软件和Winxp 格式化功能都不行,提示:MBR读取错误。应该是引导扇区读不出来了.
请用以下方法解决:
方法1:首先用光驱引导或者用软驱进入纯dos模式,再用 fdisk /mbr 命令恢复系统固有的主引导程序
方法2:用xp安装盘,进入恢复控制台, fixmbr x:
方法3:WinXP以上系统使用Diskpart命令里面的Clean擦出MBR