1、硬盘主引导记录(MBR )+ 硬盘分区表(DPT) 详解硬盘主引导扇区 = 硬盘主引导记录(MBR)+ 硬盘分区表(DPT)-物理位置:0面0道1扇区(clindyer 0, side 0, sector 1)大小: 512字节其中:MBR 446字节(0000-01BD) ,DPT 64字节(01BE-01FD) ,结束标志2字节(55 AA)功能:MBR 通过检查 DPT 分区信息引导系统跳转至 DBR;读取: 使用 NORTON DISKEDIT, 在 OBJECT 菜单中选择 DRIVEPHYSICAL DISK-HARD DISK,然后, 在 OBJECT 菜单中选择 DISK PA
2、RTITION TABLE 即可读取, 并使用 TOOLS 菜单中的 WRITE OBJECT TO 选项存入指定文件备份;写入: 使用 NORTON DISKEDIT, 在 OBJECT 菜单中选择 DRIVEFLOOPY DISK, 选择备份的 DPT 文件, 然后使用 TOOLS 菜单中的WRITE OBJECT TOPHYSICAL SECTOR 选项写入001(clindyer 0, side 0, sector 1);详解:000H-08AH MBR 启动程序(寻找开机分区)08BH-0D9H MBR 启动字符串0DAH-1BCH 保留(“0“)1BEH-1FDH 硬盘分区表1FE
3、H-1FFH 结束标志(55AA)活动分区主引导扇区(DBR)-物理位置:1面0道1扇区(clindyer 0, side 1, sector 1)大小: FAT16 1扇区 512字节FAT32 3扇区 1536字节功能:包含机器 CMOS 等信息(0000-0059), 核对该信息并引导指定的系统文件, 如NTLDR 等;读取: 使用 NORTON DISKEDIT, 在 OBJECT 菜单中选择 DRIVELOGICAL DISK-DISK C,然后, 在 OBJECT 菜单中选择 BOOT RECORD 即可读取, 并使用 TOOLS菜单中的WRITE OBJECT TO 选项存入指定
4、文件备份;写入: 使用 NORTON DISKEDIT, 在 OBJECT 菜单中选择 DRIVEFLOOPY DISK, 选择备份的 DBR 文件, 然后使用 TOOLS 菜单中的WRITE OBJECT TOPHYSICAL SECTOR 选项写入011(clindyer 0, side 1, sector 1);详解:000H-002H 3 BYTE 的跳转指令(去启动程序, 跳到03EH)003H-03DH BIOS 参数区03EH-19DH DOS 启动程序19EH-1E5H 开机字符串1E6H-1FDH 文件名(IO.SYS, MSDOS.SYS)1FEH-1FFH 结束标记(55
5、AA)硬盘分区表(DPT)-偏移地址 字节数 含义分析01BE 1 分区类型:00表示非活动分区:80表示活动分区;其他为无效分区。01BF01C1 3 *分区的起始地址(面/扇区/磁道) ,通常第一分区的起始地址开始于1面0道1扇区,因此这三个字节应为01010001C2 1 #分区的操作系统的类型。01C301C5 3 *该分区的结束地址(面/扇/道)01C601C9 4 该分区起始逻辑扇区01CA01CD 4 该分区占用的总扇区数注释: * 注意分区的起始地址(面/扇区/磁道)和结束地址(面/扇/道)中字节分配:00000000 01000001 00010101 = = 面(磁头) 8
6、 位 扇区 6 位 = 磁道 10 位# 分区的操作系统类型(文件格式标志码)4-DOS FAT1632M7-NTFS(OS/2)83-LINUX64MDPT 总共64字节(01BE-01FD), 如上所示每个分区占16个字节, 所以可以表示四个分区, 这也就是为什么一个磁盘的主分区和扩展分区之和总共只能有四个的原因.逻辑驱动器-扩展分区的信息位于以上所示的硬盘分区表(DPT)中, 而逻辑驱动器的信息则位于扩展分区的起始扇区, 即该分区的起始地址(面/扇区/磁道)所对应的扇区, 该扇区中的信息与硬盘主引导扇区的区别是不包含 MBR, 而16字节的分区信息则表示的是逻辑驱动器的起始和结束地址等.
7、所以, 在磁盘仅含有一个主分区, 一个扩展分区(包含多个逻辑驱动器)的情况下, 即使由于病毒或其他原因导致硬盘主引导扇区的数据丢失(包括 DPT), 也可以通过逻辑驱动器的数据来恢复整个硬盘.例如: 以下是一个硬盘的分区情况.道 面 扇 道 面 扇 起始扇(逻辑) 结束扇 总共扇区MBR 0 0 1 - - - - - -C 0 1 1 276 239 63 63 4,188,239 4,188,177扩 277 0 1 554 239 63 4,188,240 8,391,599 4,203,360D 277 1 1 554 239 63 4,188,303 8,391,599 4,203,
8、297如果主分区表损坏, 则可以通过手工查找扩展分区表中所包含的逻辑驱动器数据, 在本例中就是 D 盘所对应的数据, 然后将其起始扇(逻辑)减去63就是所对应的扩展分区的起始扇(逻辑), 将其起始地址(面/扇区/磁道)改为0面就是扩展分区的起始地址. 然后通过扩展分区就可以得到主分区 C 的信息, 然后就可以使用 FDISK/MBR 命令和手工填写分区表恢复整个硬盘.实际使用这种方法比较麻烦, 如果知道每个分区的大小, 则可以通过使用 PQ MAGIC 5 将磁盘重新分区为原来大小(注意: 千万不能应用, 我们只是通过它来获得数据), 并查看 INFO 来获得以上数据, 记录以后取消该分区操作
9、, 然后使用 NORTON DISK2000手工修改 DPT 表, 恢复整个硬盘.该例所对应的分区表数据:80 0101 00 06 EF 7F 14 3F 00 00 00 11 E8 3F 00 00 0041 15 05 EF BF 2A 50 E8 3F 00 60 23 40 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA扩展分区表数据:00 0141 15 07 EF BF 2A 8F E8 3F 00 21 23 40 00注意: 逻辑起始扇区和总共分区数是左边为低位, 如该例的扩展分区的起始地址为50 E8 3F 00转换十进制时要先变为00 3F E8 50, 总共占用分区数60 23 40 00要先变为00 40 23 60, 同理当手工填写该值时也要进行高低位转换.