MBR内容解析

MBR(Master Boot Record)即主引导记录.

使用Winhex打开,磁盘的第一扇区:

  • 黄色部分(000H-1B7H):引导分区

    • 作用:在主板BIOS完成自检之后,将整个MBR完全读取到内存当中,然后执行引导程序.然后依次执行:检测最后两个字节是否为"55 AA",检测是否有活动分区,若有,读入活动分区的引导扇区地址,判断其是否合法,若合法,将控制权交给操作系统.
    • 需要注意的是,每个磁盘的引导程序都不是一样的,它在格式化磁盘的时候有格式化程序自动产生.
  • 绿色部分(1B8H-1BBH):磁盘签名
    • 作用:Windows系统在对磁盘进行初始化的时候写入的标签,不可或缺,Windows依靠它来识别硬盘.
    • 若丢失,Windows认为硬盘没有初始化.
  • 橙色部分(1BEH-1FDH):分区表
    • 作用:管理磁盘分区,丢失或损坏都会导致分区丢失或损坏.
    • 格式:
      1. 分成四部分,每一部分都表示一个独立的分区.一部分16B,即:1BEH-1CDH,1CEH-1DDH,1DEH-1EDH,1EEH-1FDH四部分,总共64B.
      2. 字节偏移 字段长度 字段名和定义
        01BEH 1B 80H/00H 引导标识,80H代表活动分区,00代表非活动分区,其它的值非法
        1BFH-1C1H 3B   开始磁头(1B),起始扇区(6b)和起始柱面(10b)
        1C2H 1B   分区的类型描述,定义了分区的类型,详见附录
        1C3H-1C5H 3B   结束磁头(1B),结束扇区(6b)和结束柱面(10b)
        1C6H 4B   本分区之前的扇区数,该分区开始的偏移量,以扇区数表示
        1CAH 4B   分区的总扇区数
  • 红色部分(1FEH-1FFH):结束标志
    • 作用:表示这个分区表是否有效,非"55 AA"表示这个分区表是无效的.
  • 注意:
    • x86构架上存储数据都是由低位到高位的
        附录:

时间: 2024-10-15 12:49:34

MBR内容解析的相关文章

MBR内容详解

参考书<Linux系统架构和应用技巧>(人邮版,中井悦司 著, 李睿 马世龙 译) MBR为硬盘开始的0~512B大小的数据 1. 查看MBR内容:#hexdump -s 0 -n 512 /dev/sda 0~445字节:存放引导加载程序GRUB的stage1 446-509字节,存放分区表 510~511字节,存放0xAA55,作为一个校验值 2. 如何解析分区表 这里三行的输出,分别是三个分区表的信息. 其中左侧4列是CHS方式的描述(CHS-cylinder.head.sector,即

MBR结构解析与fdisk的bash实现

一.MBR结构解析 首先我们先介绍一些MBR的基本知识基础,再晾图片分析. MBR主要分为三大块各自是: 1.载入引导程序(446K) 2.分区表(64k) 3.标志结束位(2k) 载入引导程序:内容是因机器而异它里面正如其名.就是存放载入引导程序.如今基本的载入引导程序是LILO(LInux LOader)和 GNU GRUB(GRand Unified Boot loader). 分区表:里面主要记录4个16K主分区的信息.我们将在下文进行具体介绍. 表示结束位:就是标志MBR结束.通常是0

文件内容解析

下面是我的第一个React Native程序,也是自己对该程序的文件内容解析一些理解,注释很清楚哟,相信你一看就懂!!!! /** * Sample React Native App * https://github.com/facebook/react-native * @flow */ // 1.引入组件 import React, { Component } from 'react'; import { AppRegistry, // 注册 StyleSheet, // 样式 Text,

SSDP协议内容解析

SSDP(Simple Service Discovery Protocol),简单服务发现协议,用于发现局域网里面的设备和服务. SSDP消息分为设备查询消息.设备通知消息两种,通常情况下,使用更多地是设备查询消息. 1.设备查询消息: 格式例子如下: M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: "ssdp:discover" MX: 5 ST: ssdp:all 其中第一行是消息头,固定:HOST对应的是广播地址和端口,2

php将某一模板内容解析过后,并获取其返回值

在PHP中,将一个模板文件(.php)文件定义过后,如果要将参数传入,并且将该文件解析过后的内容作为返回值,可以php操作缓冲区来获取该模板文件的结果 //打开缓冲区 ob_start(); //引入所需要的模板文件 include('file_name.tpl.php');          //获取缓冲区中的内容,并且将该内容赋值给一个变量 $return_info = ob_get_contents(); //清空(擦除)缓冲区并关闭输出缓冲                     ob_

内容提供者ContentProvider和内容解析者ContentResolver

简介 ContentProvider 在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider 对你应用中的数据进行添删改查.关于数据共享,以前我们学习过文件操作模式,知道通过指定文件的操作模式为Context.MODE_WORLD_READABLE 或Context.MODE_WORLD_WRITEABLE同样也可以对外共享数据.那么,这里为何要使用ContentProvider 对

YOLOv1-darknet 内容解析

目录 YOLOv1-darknet 内容解析 1. 核心思想 2. 特点 3. 缺点 4. 算法流程 5. 详细内容 6. 主要参考 YOLOv1-darknet 内容解析 1. 核心思想 目标检测分为二阶段和一阶段的方法,二阶段方法主要有Fast R-CNN系列,Mask R-CNN等,主要方法是用算法生成一些列作为样本的候选框,然后再使用卷积神经网络进行样本的分类: 一阶段方法(End to End方法)主要有SSD系列,YOLO系列,这种方法是将目标边框的定位问题转化为回归问题处理. 由于

主引导扇区MBR的解析

http://blog.chinaunix.net/uid-24774106-id-3340397.html 最近排查一个USB相关的故障,由于信息安全就不多说工作上的事情了,顺路学习了MBR的相关知识,在网上找了一些资料,现在把学习心得写下来,抛砖引玉.感谢无数前辈的分享精神. 我的U盘插入linux后被识别成了sdb4,我当时很纳闷,为什么是4,没有sdb1 sdb2 sdb3,直接就sdb4 了.linux是从哪里显示的这个4.     是这样的,sdb,这个b是有linux 动态分配的,

把界面内容解析成XML(用DOM模式)

第一步,修改AndroidManifest.xml,添加sdcara写入权限 1 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 2 3 <application 4 android:allowBackup="true" 5 android:icon="@drawable/ic_launcher" 6 android:labe