关于硬盘主引导扇区的结构及功能(转帖2篇)

用电脑这么多年了,一直对硬盘的主引导扇区和分区表等概念很模糊,这两天自己的硬盘分区表出现问题,特地在网上查了一下相关资料,觉得下面两篇帖子不错,可以作为对这个问题的基本了解之用。

我原来一直以为重新装了一个操作系统后就会把主引导分区和分区表覆盖了,导致同一硬盘的其它操作系统不能启动。现在看来原因不是这样的:像我在安装windows和linux双系统后(grub引导放在主引导扇区),重新用镜像覆盖了windows,而grub引导程序照常引导linux系统和windows系统。

所以,主引导记录是硬盘保留的一块特殊区域,重装系统,格式化分区等操作对主引导记录没有影响,格式化分区后只对其中的分区表中的类型标志有改动。

下面是两篇转帖:

1、关于硬盘主引导扇区的结构及功能全面释疑(转自:http://tech.sina.com.cn/c/2003-02-27/17872.html

关于硬盘主引导扇区的结构及功能全面释疑

http://www.sina.com.cn 2003/02/27 09:38 新浪科技论坛

  文/硬盘医生

  很多朋友对于硬盘的主引导扇区里的MBR(Main Boot Record)和DPT(Disk Partition Table)的区别有些分不太清。于是我想把它写个简短的介绍,希望能对这些朋友有点帮助。

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

图1

  图一:主引导扇区结构图

  主引导记录中包含了硬盘的一系列参数和一段引导程序。引导程序主要是用来在系统硬件自检完后引导具有激活标志的分区上的操作系统。它执行到最后的是一条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/boot.NNNN of=/dev/hda bs=446 count=1

  其中bs(buffer size)是指重写的字节数。为什么不是512

  呢?主引导扇区是一个扇区(512字节呀)?

  A: 答案是因为我们用上面的命令是为了修复可能被病毒修改了的主引导记

  录MBR,或者想把LILO卸载掉,而不是恢复整个主引导扇区。所以我们

  只把主引导扇区的备份文件boot.NNNN的前446个字节重写入主引导扇区。

  boot.NNNN是我们在安装Linux之前整个主引导分区的备份。如果我们把

  512个字节全部写入主引导扇区就可能会把安装了Linux后改变了的硬盘

  DPT表也破坏掉。那就坏事了。 🙂

  linuxrat补充一些:=)...

  MBR-> Main/Master Boot Record, 有些书上是写成Master的.我认为可以分成三个部分吧, MBR+DPT+MagicNumber(446+64+2=512)这也就是为什么进行MBR备份的时候要指定bs=512 或者 bs=1k, count=1的原因.然后恢复时经常看到HOWTO里面是bs=446 count=1. 这个446就是指令部分的恢复。

3 thoughts on “关于硬盘主引导扇区的结构及功能(转帖2篇)”

  1. (转自http://www.fixhome.com.cn/articleview/2006-4-21/article_view_281.htm)

     

    数据恢复专家网(Fixhome):关注磁盘存储与数据安全

    提供数据安全资讯共享数据恢复技术 

                            

                            

    数据恢复专家网          

    首页 | 行业新闻 | 恢复技术 | 磁盘存储 | Raid技术 | 数据库恢复 | 安全管理 | 恢复软件 | 服务器 | 文件修复 | 灾难病毒

    掀起硬盘主引导扇区的神秘面纱

    << 主引导记录工作原理 | 主引导扇区及主引导记录MBR的详细说明 >>

      发布日期:2006-4-21 9:52:35 发布者:[Fixhome]  来源:[本站]  浏览:[]  评论:[]

    字体:大 中 小 

      硬盘主引导扇区是一个敏感的区域, 它的安全与否直接决定硬盘是否能够正常使用。深入认识和灵活使用硬盘主引导扇区将有助于你的系统

    维护和许多特殊工作完成。

    一、与DOS 引导扇区的区别

      对于DOS系统来说, 有两种不同的引导扇区,即DOS 引导扇区和硬盘主引导扇区。 DOS 引导扇区存在于软盘的第一逻辑扇区或硬盘DOS分区的

    第一逻辑扇区

    ,是用FORMAT命令对磁盘格式化时产生的, 是引导DOS 系统或正确使用磁盘的必要条件,在DOS下可用DEBUG方便地读出:

    C>DEBUG

    -L 100 2 0 1

    ;读C盘0扇区到内存当前段的100H处

    -D ;显示DOS 引导扇区内容

      硬盘主引导扇区则指的是硬盘的物理地址0 面0 道1 扇区,是用FDISK 进行硬盘分区时产生的, 它属于整个硬盘而不属于某个独立的DOS 分

    区, 是硬盘正确引导和使用的必要条件。由于它不在DOS分区范围之内,所以无法用上述方法读出, 只有用相关的汇编程序代码读出:

    C>DEBUG

    -A

    XXXX:0100 MOV AX,0201H ;指定扇区数

    XXXX:0103 MOV BX,0800H ;指定内存地址

    XXXX:0106 MOV CX,0001H ;指定磁道和扇区号

    XXXX:0109 MOV DX,0080H ;指定磁头和驱动器号

    XXXX:010C INT 13H ;读磁盘操作

    XXXX:010E INT 3-d800 ;显示读出内容

    二、扇区结构

      硬盘主引导扇区占据一个扇区,共512(200H)个字节,具体结构如下:

    1.硬盘主引导程序,位于该扇区的0-1BDH处;

    2.硬盘分区表,位于1BEH-1FDH处,每个分区表占用16个字节,共4个分区表,16个字节各字节意义如下:

    0:自举标志,80H为可引导分区,00为不可引导分区;

    1~3:本分区在硬盘上的开始物理地址;

    4:分区类型,其中1表示为12位FAT表的基本DOS分区;4为16位FAT表的基本DOS分区;5为扩展DOS 分区;6为大于32M的DOS分区;其它为非DOS分区

    5~7:本分区的结束地址;

    8~11:该分区之前的扇区数,即此分区第一扇区的绝对扇区号;

    12~15:该分区占用的总扇区数。

    3.引导扇区的有效标志,位于1FEH-1FFH处,固定值为AA55H。

    三、硬盘主引导扇区的作用

    硬盘主引导扇区在各个DOS版本下其内容基本一致,主要完成的任务是:

    1.存放硬盘分区表,这是硬盘正确读写的关键数据。

    2.检查硬盘分区的正确性,要求只能且必须存在一个活动分区。

    3.确定活动分区号,并读出相应操作系统的引导记录。

    4.检查操作系统引导记录的正确性, DOS引导扇区末尾也存在着一个AA55H标志,供引导程序识别。

    5.释放引导权给相应的操作系统。例如,当确认DOS 操作系统引导记录存在时, 则调出DOS引导程序并执行。

    另外,当它发现引导故障时将给出部分提示信息,如:

    ?Invalid partition table?表示硬盘分区表错误, 没有或存在两个以上活动分区;

    ?Error loading operating system?表示读DOS引导记录时出错;

    ?Missing operating system?表示 DOS引导记录无有效标志AA55H。

    四、硬盘主引导扇区的应用

      正是硬盘主引导扇区直接决定硬盘的安全性, 所以利用它可以完成很多特殊的功能操作, 简单列举如下:

    1.清除硬盘引导功能。

      由于硬盘引导必须使用引导程序, 并检测活动分区的正确性, 所以人为的修改或破坏引导程序部分, 或者清除活动分区引导标志, 都将使硬

    盘无法启动。

    2.加密整个硬盘。

      硬盘主引导扇区末尾的扇区有效标志AA55H是系统承认硬盘的前提,所以可以采取清除名修改此标志位达到加密硬盘的目的, 即使从A 驱引导

    系统也无法对硬盘进行操作, 恢复AA55H即可解密硬盘。

    3.加密单个硬盘分区。

      硬盘单个分区的加密可采取修改分区类型的方法,比如把扩展DOS 分区的类型标志 05H改为FFH,则DOS 认为此分区为非DOS分区,无法对其

    进行访问, 包括此分区中的所有逻辑盘。当然修改或清除某一分区表的所有数据同样具有加密单个分区的作用, 但操作繁琐并且具有危险性。

    4.加入硬盘启动口令识别。

      通过修改硬盘的主引导程序, 在引导DOS 操作系统之前,加入一段口令识别程序段,如口令正确则正常引导系统,否则拒绝引导,达到口令识

    别的目的。

    5.先于DOS 驻留内存程序。

      在主引导程序中安装某些中断服务程序,如时钟中断等,通过对INT 21H或其它DOS关键数据的监视,完成病毒的实时检测功能,因为此方法在

    引导DOS系统之前完成,所以其监视效果非常可靠。

    6.实现同一硬盘多个操作系统的选择启动。

      硬盘可以分成4个独立的分区,装入4个不同的操作系统,通过特殊的方法可以共享多个DOS版本,但各操作系统或各DOS版本间的切换是一件

    非常麻烦的事,通过修改硬盘主引导程序加入按键识别过程,可实现四个分区的自由选择引导。

    7.实现硬盘主引导扇区或DOS引导扇区的自我修复。

      如果在硬盘其它空闲扇区保留一份完好的主引导扇区内容,而在主引导程序中每次启动前进行主引导扇区的正确性检查工作,当发现异常时,

    即调入原来完好的主引导扇区内容,就可以及时发现和清除病毒,对于系统有很好的保护作用。 ]]>

    相关文章

    ?暂无

    推荐文章

    并行与串行的争斗网络磁盘存储技术

    热门文章

    硬盘低级格式化的几种方法

    让一切重头再来硬盘低级格式化详解

    解读NTFS

    主引导扇区及主引导记录MBR的详细说明..

    硬盘主引导记录详解

     · 首页 - 数据恢复技术 - Raid数据恢复 - 数据库恢复 - 数据恢复软件 - 文件修复关于我们 - 联系我们 - 友情连接

     · Copyright (C)2005-2006 数据恢复专家网

     · 京ICP备06026097号

     · 电话:13520467679 QQ:632346032

Comments are closed.