硬盘主引导扇区详解_第1页
硬盘主引导扇区详解_第2页
硬盘主引导扇区详解_第3页
硬盘主引导扇区详解_第4页
硬盘主引导扇区详解_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、硬盘主引导扇区(MBR、DPT、DBR、BPB)详解.txt “恋”是个很强悍的字。它的上半部取自“变 态,的“变,下半部取自“变态”的“态”。硬盘主引导扇区(MBR、DPT、DBR、BPB)详解引用:网上收集的资料,放到这里来学习,这方面登山人大哥是高手,有空指点一下喽硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR),该记录占用512个 字节,它用于硬盘启动时将系统控制权转给用户指定的、在分区表中登记了某个操作系统分 区。MBR的内容是在硬盘分区时由分区软件(如FDISK)写入该扇区的,MBR不属于任何一个 操作系统,不随操作系统的不同而不同,即使不同,MBR也不会夹带操作

2、系统的性质,具有 公共引导的特性。但安装某些多重引导功能的软件或LINUX的LILO时有可能改写它;它先于 所有的操作系统被调入内存并发挥作用,然后才将控制权交给活动主分区内的操作系统(图 一)。MBR由三部分构成:主引导程序代码,占446字节硬盘分区表DPT,占64字节主引导扇区结束标志AA55H一、硬盘的主引导程序代码是从偏移0000H开始到偏移01BDH结束的446字节;主引导 程序代码包括一小段执行代码。启动PC机时,系统首先对硬件设备进行测试,成功后进入 自举程序INT 19H;然后读系统磁盘0柱面、0磁头、1扇区的主引导扇区MBR的内容到内存 指定单元0: 7C00首地址开始的区域

3、,并执行MBR程序段。主引导代码实现下列功能:1 .扫描分区表查找活动分区;寻找活动分区的起始扇区;将活动分区的引导扇区读到内存;执行引导扇区的运行代码。如果主引导代码未完成这些功能,系统显示下列错误信息:Invalid partition tableError loading operating systemMissing operating system二、硬盘分区表DPT是从偏移01BEH开始到偏移01FDH结束的64字节(图二); 硬盘分区表分为四小部分,每一小部分表示一个分区的信息,占16字节。在这里我们可以看 出,硬盘的总分区数为什么不能大于4。其中可激活分区数不得大于3,扩展分区

4、数不得大于 1,当前活动分区数必须小于等于1。分区表的每一分区的第0个字节是自举标志,其值为80H时,表示该分区是当前活动分 区,可引导,其值为00H时,表示该分区不可引导。第4字节是分区类型(图三)。每一分区的第1至第3字节是该分区起始地址。其中第1字节为起始磁头号(面号);第 2字节的低6位为起始扇区号,高2位则为起始柱面号的高2位;第3字节为起始柱面号的 低8位。因此,分区的起始柱面号是用10位二进制数表示的,最大值为210 = 1024,因逻 辑柱面号从0开始计,故柱面号的显示最大值为1023。同理,用6位二进制数表示的扇区号 不会超过26 - 1 = 63;用8位二进制数表示的磁头号

5、不会超过28 - 1 = 255。每一分区 的第5至第7字节表示分区的终止地址,各字节的释义与第1至第3字节相同。这里我们假 设一种极端的情况:如果让第5至第7字节的所有二进制位都取1,就获得了柱面号、磁头 号和扇区号所能表示的最大值,从而得到最大绝对扇区号为:1024 X 256 X 63 = 16,515,072这个扇区之前的所有物理扇区所包含的字节数为:16,515,072 X 512Bytes 8.46X 109Bytes = 8.46GB。由此可知硬盘的容量设计为什么会有8.4GB这一档,分区表每一分区的第1至第3字节 以及第5至第7字节的数据结构已经不能满足大于8.46GB的大容量

6、硬盘的需要。考虑到向下 兼容的需要,业界并未对从DOS时代就如此定义的硬盘分区表提出更改意见,否则改动所牵 涉的面太广,会造成硬件和软件发展上的一个断层,几乎无法被业界和用户所接受。硬盘厂 商解决这一问题的方法是定义了新的INT 13服务扩展标准。新的INT 13服务扩展标准不再 使用操作系统的寄存器传递硬盘的寻址参数,而使用存储在操作系统内存里的地址包。地址 包里保存的是64位LBA地址,如果硬盘支持LBA寻址,就把低28位直接传递给ATA接口, 如果不支持,操作系统就先把LBA地址转换为CHS地址,再传递给ATA接口。通过这种方式, 能实现在ATA总线基础上CHS寻址的最大容量是136.9

7、 GB,而LBA寻址的最大容量是137.4GB。 新的硬盘传输规范ATA 133规范又把28位可用的寄存器空间提高到48位,从而支持更大的 硬盘。分区表每一分区的第8至第11字节表示该分区的起始相对扇区数(即该扇区之前的绝对扇区 个数),高位在右,低位在左;第12至第15字节表示该分区实际占用的扇区数,也是高位在 右,低位在左;分区表这类数据结构的表达方式与机器中数据的实际存储方式在顺序上是一 致的,即低位在前,高位在后。因此,在从16进制向十进制作数值转换时,需将字段中的 16进制数以字节为单位翻转调位,用4个字节可以表示最大232个扇区,即2TB=2048GB。系统在分区时,各分区都不允许

8、跨柱面,即均以柱面为单位,这就是通常所说的分区粒 度。在未超过8.4GB的分区上,C/H/S的表示方法和扇区数的表示方法所表示的分区大小是 一致的。超过8.4GB的/H/S/C 一般填充为FEH/FFH/FFH,即C/H/S所能表示的最大值;有时 候也会用柱面对1024的模来填充。不过这几个字节是什么其实都无关紧要了。扩展分区中的每个逻辑驱动器都存在一个类似于MBR的扩展引导记录(Extended Boot Record,EBR)(图四)。扩展引导记录包括一个扩展分区表和扇区结束标志55AA。一个逻辑驱动器中的引导扇区 一般位于相对扇区32或63。如果磁盘上没有扩展分区,那么就不会有扩展引导记

9、录和逻辑 驱动器。第一个逻辑驱动器的扩展分区表中的第一项指向它自身的引导扇区;第二项指向下 一个逻辑驱动器的EBR,如果不存在进一步的逻辑驱动器,第二项就不会使用,而被记录成 一系列零。如果有附加的逻辑驱动器,那么第二个逻辑驱动器的扩展分区表的第一项会指向 它本身的引导扇区,第二个逻辑驱动器的扩展分区表的第二项指向下一个逻辑驱动器的EBR。 扩展分区表的第三项和第四项永远都不会被使用。扩展分区表项中的相对扇区数是从扩展分区开始的扇区到该逻辑驱动器中第一个扇区的 扇区数;占用的扇区数是指组成该逻辑驱动器的扇区数目。有时候在磁盘的末尾会有剩余空间,由于分区是以1柱面的容量为分区粒度的,那么 如果磁

10、盘总空间不是整数个柱面的话,不够一个柱面的剩下的空间就是剩余空间了,这部分 空间并不参与分区,所以一般无法利用。三、主引导扇区的最后两个字节(偏移1FEH和偏移1FFH),其值为AA55H,它表示该扇区是 个有效的引导扇区,可用来引导硬磁盘系统。分区引导扇区DBR(DOS BOOT RECORD)是由FORMAT高级格式化命令写到该扇区的内容;DBR 是由硬盘的MBR装载的程序段。DBR装入内存后,即开始执行该引导程序段,其主要功能是 完成操作系统的自举并将控制权交给操作系统。每个分区都有引导扇区,但只有被设为活动 分区的DBR才会被MBR装入内存运行。DBR主要由下列几个部分组成:跳转指令,

11、占用3个字节的跳转指令将跳转至引导代码。厂商标识和DOS版本号,该部分总共占用8个字节。BPB (BIOS Parameter Block, BIOS 参数块)。操作系统引导程序。结束标志字,结束标志占用2个字节,其值为AA55DBR中的内容除了第5部分结束标志字固定不变之外,其余4个部分都是不确定的,其 内容将随格式化所用的操作系统版本及硬盘的逻辑盘参数的变化而变化。一、FAT32的分区引导扇区为了使加载文件的操作更加灵活,加上FAT32文件系统采用活动的FDT表,同时考虑 到引导程序的代码量和为今后发展保留适当的余量,FAT32文件系统分区引导扇区占据了 6 个扇区,只有前3个扇区作为系统

12、的分区引导扇区,其余3个扇区保留暂未使用。分区引导 扇区对于操作系统的启动和磁盘文件的访问具有至关重要的作用;引导程序代码的损坏将导 致操作系统不能正常启动,磁盘读写参数的破坏将造成存储在磁盘上的文件不能正常读写。由于分区引导扇区的重要性,FAT32文件系统在在第一个分区引导扇区的6个扇区后的6 个扇区里保留了分区引导扇区的备份,在启动时操作系统可以对两份引导扇区进行比较,以 便选择正确的引导扇区来引导系统。由于在磁盘正常工作过程中系统不再对引导扇区的程序 和数据进行修改,因此备份的分区引导扇区损坏的可能性非常小。分区引导扇区的第一个扇区(图六)的前三个字节是一条跳转指令,然后是8个字节长的O

13、EM ID (厂家标识)和版本号,其后是 简称为BPB的BIOS参数块(BIOS Parameter Block)。对于FAT32其各部分的意义如下表: 偏移地址长度(字节)意 义0BH2每个扇区的字节数,常取512。0DH1每簇扇区数;可以是1, 2, 4, 8, 16, 32, 64, 128,取决于文件系统格式及分区大小。0EH2为操作系统保留的扇区数;FAT32时多为十进制的32, FAT16时为1,有的格式化工具可能 将它设为36或63。10H1FAT表的个数;常取2。11H2在FAT16中存放系统根目录中允许登记的目录项个数,FAT32中用于标注系统采用的是否为 FAT32文件系统

14、。其值为0000H表示磁盘使用FAT32文件系统。13H2值为00H,为保持兼容性而保留,未使用。15H1磁盘介质标志,硬盘为F8。16H2未使用,值为00H。18H2每个磁道的扇区数。1AH2磁盘的磁头数。1CH4分区前隐藏扇区的个数。20H4逻辑磁盘中的扇区总数。24H4每个FAT表所占的扇区数。28H2FAT表镜像标志,值为0表示系统保存2份互为备份的FAT表,值为1表示系统仅保存1份FAT 表。2AH2文件系统的主次版本(保留)。2CH4磁盘根目录的起始簇号。30H2文件系统参数的扇区号,通常位于引导扇区的下一个扇区。32H2备份分区引导扇区的逻辑扇区号。34H12保留,未使用。40H

15、1中断13呼叫的预设值,指明访问的设备;软盘为00H,硬盘为80H。41H1用于中断13呼叫。42H1磁盘读写参数扩展标志,其值为29H。43H4格式化时随机产生的磁盘卷的序列号。47H11格式化时人工输入的磁盘卷标号。52H8文件系统的标识号(FAT32)。从偏移0 x5A开始的数据为操作系统引导代码。这是由偏移0 x00开始的跳转指令所指向 的,此段指令在不同的操作系统上和不同的引导方式上,其内容也是不同的。扇区的最后两个字节存储值为0 x55AA的DBR有效标志,对于其他的取值,系统将不会执 行DBR相关指令。分区引导扇区的第2个扇区作为文件系统相关参数存储标识扇区(图七),除了保存扇区

16、的标识信息(RraA(00H)和rrAa(1E4H)外,还可能在偏移地址1E8H处存 储了文件系统有关的信息。其中扇区偏移地址1E8H1EBH的4个字节存储了逻辑磁盘中未使 用的簇数,通常用于快速计算逻辑磁盘的剩余空间(典型的操作是在资源管理器状态栏上列 出的可用磁盘空间参数),而1ECH1EFH 4个字节给出了逻辑盘中下一个可以分配给文件 使用的空闲簇的簇号,这样操作系统可以不访问FAT表就直接获得磁盘剩余空间和可以分配 的簇号。分区引导扇区的第3个扇区则存储了引导扇区的后一部分引导系统的程序代码(图八)。二、NTFS的分区引导扇区对于NTFS分区来说,分区引导扇区DBR只占用一个扇区(图五

17、),并且在该分区的最后 一个扇区做了备份;NTFS的引导扇区也是完成引导和定义分区参数,NTFS分区的引导扇区不 是分区的充分条件,它要求必须MFT中的系统记录如$MFT等正常该分区才能正常访问。其BPB 参数如下表所示:偏移地址长度(字节)常用值意 义0 x0B20 x0002每扇区字节数0 x0D10 x08每簇扇区数0 x0E20 x0000保留扇区0 x1030 x000000总为00 x1320 x0000NTFS未使用,为00 x1510 xF8介质描述0 x1620 x0000总为00 x1820 x3F00每磁道扇区数0 x1A20 xFF00磁头数0 x1C40 x3F000

18、000隐藏扇区数0 x2040 x00000000NTFS未使用,为00 x2880 x4AF57F0000000000扇区总数0 x3080 x0400000000000000$MFT的逻辑簇号0 x3880 x54FF070000000000$MFT Mirr的逻辑簇号0 x4040 xF6000000每MFT记录簇数0 x4440 x01000000每索引簇数0 x4880 x14A51B74C91B741C卷标0 x5040 x00000000检验和本帖最后由伐木者于2007-6-19 20:11编辑附件:您所在的用户组无法下载或查看附件本文来自:创幻论坛 HYPERLINK UID5

19、5456帖子9783精华45积分47222威望0金币0阅读权限18性别男来自有树砍 的地方 在线时间8494小时 注册时间2004-5-16最后登录2010-4-5查看详细资料TOP【推荐】权威专家推荐涨停股票请点击获取 伐木者魏武王常所用论坛超级版主电脑家园区总版主积分47222威望0 注册时间2004-5-16发短消息加为好友 沙发大中小发表于2007-6-17 20:55只看该作者How It WorksMaster Boot Record (主启动记录)本文是介绍MBR的反编译程序的。MBR是放在硬盘的0柱面,0磁头(head),1扇区的 那一段区。MBR是由FDISK程序创建的。所有

20、操作系统的FDISK程序都会创建类似的MBR 记录。MBR是多个分区的前提,每个MBR中包括了四个分区表记录。在您的计算机加电 之后,INT19被调用了。一般来说,INT19先从第一个软盘驱动器中读启动扇区记录。如果在软盘中找到了启动的扇区,那么这个扇区的数据就被读入到内存的0000:7c00 地址上,INT19也跳到了这个地址上。但是,如果没有在软盘中找到这个扇区的话,INT 19就从第一个硬盘中去读。同样,如果成功的话,也会把MBR导入到相同的内存地址 0000:7c00,INT19也会跳这个地址。MBR中包括的一段小程序是定出在分区表中的活动分 区。这样的活动分区找到之,那个分区的启动扇

21、区也被读入到0000:7c00地址,MBR程序 也转移到了这个地址。每一个操作系统都有固定的启动扇区的格式。在启动扇区里的程 序要能定出操作系统启动程序的位置(或是核心本身,或者是一个启动管理器),然后 将它读入内存。另:在Ctrl-Alt-Del键被按下时,INT19也会被调用。在大多数系统中,Ctrl-Alt-Del三?nbsp; 键同时按下表示热启动您的计算机,回到INT19调用前的状态。数据存放的位置:MBR程序放在偏移为0000的位置。MBR消息放在偏移为008b的位置。分区表放在偏移为00be的位置。签名放在偏移为00fe的位置。关于谁干什么事的总结:如果一个活动分区找到了,这个分区的启动数据被读入到0000:7c00的位置,MBR程 序也跳到0000:7c00的位置。这段程序找到指向分区表的入口,入口描述的是这段分区是 怎样被启动的。启动程序用这些数据来决定用来启动的驱动器和这个驱动器分区在硬盘上 的位置。如果没有找到这样的活动分区入口,ROM BASIC会转入INT 18的调用。所有其他的错 误导致系统的挂起,可以看HANG的标记。注意(非常之重要):1)活动分区入口的第一个字节的内容是80h。在INT13被调用之前,这个字节被导 入到DL寄存器中。当INT13被调用时,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论