精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● 计算机硬件>>☆ 硬 盘 ☆>>主引导扇区释疑

主题:主引导扇区释疑
发信人: gzdigital()
整理人: Bill(2000-11-26 08:19:53), 站内信件
硬盘的主引导扇区里的MBR(Main Boot Record)和DPT(Disk Partition Table)的
区别有些分不太清。于是我想把它写个简短的介绍,希望能对这些朋友有点帮助


  引导扇区在每个分区里都存在,但是我们常说的*主引导扇区*是硬盘的第一
物理扇区。它由两个部分组成:即主引导记录MBR和硬盘分区表DPT。在总共512字
节的主引导分区里其中MBR占446个字节(偏移0--偏移1BDH),DPT占64个字节(偏
移1BEH--偏移1FDH),最后两个字节“55,AA”(偏移1FEH- 偏移1FFH)是分区的结
束标志。大致的结构如下图:

0000 |-------------------------------------------------|
   |                          |
   |                         -|
   |       Main Boot Record           |
   |                        - |
   |                        - |
   |       主引导记录(446字节)         |
   |                         |
   |                         |
   |                         |
01BD |                         |
01BE |--------------------------------------------------|
   |                         |
01CD |         分区信息 1(16字节)        |
01CE |--------------------------------------------------|
   |                         |
01DD |         分区信息 2(16字节)        |
01DE |--------------------------------------------------|
   |                         |
01ED |         分区信息 3(16字节)        |
01EE |--------------------------------------------------|
   |                         |
01FD |         分区信息 4(16字节)        |
   |--------------------------------------------------|
   | 01FE          | 01FF          |
   |      55      |       AA     |
   |--------------------------------------------------| 图一:主引导
扇区结构图

  主引导记录中包含了硬盘的一系列参数和一段引导程序。引导程序主要 是用
来在系统硬件自检完后引导具有激活标志的分区上的操作系统。它执行到最后的
是一条JMP指令跳到操作系统的引导程序去。这里往往是一些引导型 病毒的注入
点,也是一些多系统引导程序的注入点。但是由于引导程序本身完成的功能比较
简单,所以我们可以完全地判断该引导程序的合法性(比如看 JMP指令的合法性
),因而也易于修复。象命令fdisk/mbr可以修复MBR和KV300 这类软件可以查杀
任意类型的引导型病毒,就是这个原因。

  接下来是硬盘的分区表,由4个16字节的分区信息表组成。每个信息表的结构
如下:
偏移 长度 所表达的意义
0 字节 分区状态:如0-->非活动分区
     80--> 活动分区

1 字节 该分区起始头(HEAD)
2 字 该分区起始扇区和起始柱面
4 字节 该分区类型:如82--> Linux Native分区
       83--> Linux Swap 分区

5 字节 该分区终止头(HEAD)
6 字 该分区终止扇区和终止柱面
8 双字 该分区起始绝对分区
C 双字 该分区扇区数
  最后的两个标志“55 AA”是分区表的结束标志,如果这两个标志被修改(有
些病毒就会修改这两个标志),则系统引导时将报告找不到有效的分区表。

  由上面的所列出的结构可以大致地了解主引导扇区的结构和用途。下面,有
一些关于主引导扇区的常见问题:

  Q1、fdisk/mbr 会不会把硬盘的分区表破坏呀?
  A: 从上面的图一我们可以看到fdisk/mbr是不会影响到DPT的。fdisk/ mbr
只是把主引导分区里的MBR部分重新写过,而不会对DPT有任何破坏。

  Q2、在Linux里有一种方法可以恢复MBR是用如下的命令: dd if=/boot/boo
t.NNNN of=/dev/hda bs=446 count=1 其中bs(block size)是指重写的字节数。
为什么不是512呢?主引导扇区是一个扇区(512字节呀)?
  A: 答案是,因为我们用上面的命令是为了修复可能被病毒修改了的主引导记
录MBR,或者想把LILO卸载掉,而不是恢复整个主引导扇区。所以我们 只把主引
导扇区的备份文件boot.NNNN的前446个字节重写入主引导扇区。 boot.NNNN是我
们在安装Linux之前整个主引导分区的备份。如果我们把 512个字节全部写入主引
导扇区就可能会把安装了Linux后改变了的硬盘 DPT表也破坏掉。那就坏事了(找
不到Linux分区了?)。 :-(

  Q3、怎么在Linux下备份硬盘的主引导扇区信息呢?
  A: 不同于上,这里要求是整个扇区都备份,所以我们需要这么作: dd if=/de
v/hda of=/tmp/MainBootSector.backup bs=512 count=1

  Q4.......


[关闭][返回]