zoukankan      html  css  js  c++  java
  • MBR主引导扇区解析

     

    最近在制作镜像的时候由于需要简单研究了下MBR主引导扇区的结构,这里记录下便于后期温习,下面就直接进入正题:

    MBR主引导扇区位于磁盘的第一个扇区,即0号扇区,主要由引导代码、分区表、结束标志三部分构成,总共占512字节。

    下面首先看下MBR主引导扇区的整体结构图:

     

    1、引导代码

    上图中黄色框内的部分即为引导程序,占扇区前446字节。计算机在上电完成BIOS自检后,会将该主引导扇区加载到内存中并执行前面446字节的引导程序,引导程序首先会在分区表中查找活动分区,若存在活动分区,则根据活动分区的偏移量找到该活动分区上的引导扇区的地址,并将该引导扇区加载到内存中,同时检查该引导扇区的有效性,然后根据该引导扇区的规则去引导操作系统。在一些非启动磁盘上,MBR引导代码可能都是0,这对磁盘使用没有任何影响。

    2、分区表

    上图中蓝色框内的部分即为分区表,占扇区中间64字节。分区表是磁盘管理最重要的部分,通过分区表信息来定位各个分区,访问用户数据。分区表包含4个分区项,每一个分区项通过位置偏移、分区大小来唯一确定一个主分区或者扩展分区。每个分区项占16字节,包括引导标识、起始和结束位置的CHS参数、分区类型、开始扇区、分区大小等,具体描述如下表所示:

     

    这里需要注意的是,分区项的第1个字节表示该分区是否是活动分区,即是否包含系统引导扇区,用来引导操作系统。每个磁盘只能同时有一个活动分区,活动分区的引导指示符是0x80,其他均为0x00;尽管我们可以通过一些工具来手动修改引导指示符,但是引导程序只会查找并使用第一个引导指示符为0x80的活动分区。

    3、结束标志

    上图中最后的"55 AA"即为结束标志,或者称魔数,占扇区最后2字节。每次执行系统引导代码时都会检查MBR主引导扇区最后2字节是否是"55 AA",若是,则继续执行后续的程序,否则,则认为这是一个无效的MBR引导扇区,停止引导系统。

  • 相关阅读:
    Go的几种函数式编程范例
    换零钱和快速幂
    随笔不是博客
    leetcode-51
    leetcode-50
    拨号器
    简易计算器的实现
    python入门:1-100所有数的和
    python入门:输出1-10以内除去7的所有数(简)
    python入门:输出1-10以内除去7的所有数(自写)
  • 原文地址:https://www.cnblogs.com/xiongwei/p/9645936.html
Copyright © 2011-2022 走看看