2010年5月7日星期五

转贴:硬盘MBR数据结构分析和修复策略

硬盘MBR数据结构分析和修复策略
http://www.fix.com.cn/datarecover/data-recovery26.htM

    MBR是硬盘重要的组成部分,一般都在硬盘的第一扇区,对系统的引导和进一步寻找硬盘的 DBR有重要的作用,下面我就介绍一下硬盘MBR的结构和修复方法。

   第一部分 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结构
MBR功能
   1 检查分区表
   2 搜索可引导分区
   3 加载活动分区的第一扇区(DOS Boot Record)即所谓的硬盘DBR。
      MBR组成 一个扇区的硬盘主引导记录MBR由4个部分组成:
   1 主引导程序:偏移地址0000H--0088H,它负责从活动分区中装载,并运行系统引导程序。
   2 出错信息数据区:偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。
   3 分区表(DPT,DiskPartitionTable):含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分 区项1、分区项2、分区项3、分区项4。
   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修复方法

   常见的MBR修复方法有三种
   方法1:首先用光驱引导或者用软驱进入纯dos模式,再用 fdisk /mbr 命令恢复系统固有的主引导程序
   方法2:用xp安装盘,进入恢复控制台, fixmbr x:
   方法3:WinXP以上系统使用Diskpart命令里面的Clean擦出MBR

第三部分 修复MBR命令 Fdisk /mbr 详解

   1. 主引导程序受损
   此乃常见故障, 硬盘不能自举, 微机死锁, 或显示 boot failure-insert system diskette, ……之类; 经由软盘引导, fdisk 命令能列出分区信息。
   取硬盘同版本 dos 软盘或应急盘引导, 运行 a>fdisk /mbr
  命令,仅向主引导扇区写入当前系统固有的主引导程序, 硬盘即恢复自举能力, 如果 dos 引导信息及系统文件等均正常。
   2. 仅设基本 dos 分区硬盘的主引导信息全损
   前述表现之外, 执行 a>c:, 显示 invalid drive specification,乃分区表遭毁; fdisk 命令不能列出分区信息。 实践中曾遇两例原仅设基本 dos 分区的硬盘(无扩展dos分区), 主引导扇区面目皆非, 经分别运行原用的 ms dos 7.0 及 7.1 fdisk /mbr命令, 常规重写全套完全适用的主引导信息, 由于其 dos 引导信息、文件分配表、根目录及用户数据完好, c 盘均迅即康复。(常规 fdisk 命令初始化 dos 引导扇区等, 有需后续处理)
   3. 清除 lilo 信息
   在以系统自带的 linux load 过程中, 每修改主引导信息, 籍以引导 linux。 需要时, 删除 linux 分区后, 可用 fdisk /mbr 命令恢复系统固有的主引导程序。

沒有留言:

發佈留言