系统扇区

2023-05-16

系统结构

DBR,主引导记录;
DPT,分区表;
DBR,分区引导扇区

img

引导扇区

MBR

Main Boot Record,主引导扇区,硬盘主引导记录区,

注意,MBR扇区只存在磁盘的0扇区,磁盘分区后,分区的起始是结构DBR

对于SD卡,在安装FATFS文件系统之后,0扇区就是MBR,但是分区的起始扇区却是DBR

MBR由三部分构成,主引导程序代码,占446字节;硬盘分区表 DPT,占64字节;主引导扇区结束标志,占两个字节

其中MBR占据446个字节的空间,偏移量 0x0000 ~ 0x01BD

主引导程序, 0x0000 ~ 0x0088 ,负责从活动分区中装载并运行系统引导程序

出错信息数据区, 0x0089 ~ 0x01E1

装载出错信息, 0x01E2 ~ 0x01BD ,这部分空间全为0

DPT占据64个字节,偏移量 0x01BE ~ 0x01FD

结束符占2个字节,偏移量 0x01FE ~ 0x01FF

主引导记录中为硬盘的一系列参数和一段引导程序

引导程序用于检查分区表是否正确,引导具有激活标志的分区上的操作系统,将控制权交给引导程序

MBR由分区程序产生,不依赖任何操作操作系统,并且硬盘引导程序可改变,从而实现多系统共存

偏移长度所表达的意义
0 字节分区状态:如 0–>非活动分区
80–> 活动分区
1 字节分区起始头( HEAD)
2 字节分区起始扇区和起始柱面
4 字节分区类型:如 82–> Linux Native 分区
83–> Linux Swap 分区
5 字节分区终止头( HEAD)
6 字节分区终止扇区和终止柱面
8 字节分区起始绝对分区
C字节分区扇区数
80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00
/***********************************************************************************
  * 80 ,为分区的激活标志,表示系统可引导
  * 01 01 00 ,表示分区开始磁头号 01,开始扇区 01,开始柱面号 00
  * 0B ,表示分区的系统类型是 FAT32,04 FAT16,07 NTFS
  * FE BF FC ,表示分区结束磁头号 FE,结束扇区 63 0x3F 低6位,结束柱面号 764 0x02FCB 高2位 + 尾字节
  * 3F 00 00 00 ,表示首扇区的相对扇区号为 63,0x0000 003F
  * 7E 86 BB 00 ,表示总扇区数量为 12289622,0x00BB 8656
  **********************************************************************************/

DPT

DPT,硬盘分区表,最多包含四个分区表表项,偏移地址,0x01BE ~ 0x01FD

每个分区表表项占16个字节,4个表项共64字节,每个表项对应一个分区的分区表,最开始是主分区的分区表

硬盘的总分区数不能大于4,可激活分区数不得大于3,扩展分区数不得大于1,当前活动分区数量必须小于等于1

在这里插入图片描述

80 01 01 00 07 FE FF 7B 3F 00 00 00 3D A8 DA 00
/************************************************************************************************************
  * 分区表第0个字节是自举标志,值为0x80时,这个分区是当前活动分区;值为0x00时,表示这个分区不可引导
  * 01 01 00,表示第一分区起始地址
  * 第1字节起始磁头号(0x01),第2字节低6位起始扇区号,(0x01);高2位起始柱面号的高2位,第3字节起始柱面号的低8位
  * (0000 0001 0000 0001 0000 0000)
  * (柱面0000 0000 00,磁头号0000 0001,扇区号0000 01) 柱面 x 磁头号 x 扇区号 x 扇区大小,起始扇区为第一扇区
  * 07,表示该分区的扇区数量
  * FE FF 7B。表示分区结束的磁头号为254(0xFE),分区结束的扇区号是63(0x3F),分区结束的柱面号是891(0x037B)
  * 3F 00 00 00。表示首扇区的相对扇区号为63(0x0000 003F,第一个分区前有63个扇区,62个保留扇区)22
  * 3D A8 DA 00,(0x00DA A83D,本分区有14,329,917个扇区,第二扇区开始扇区号14,329,980)
  * 因为891柱面全部使用完毕,所以下一个分区就是892扇区的扇区1
  *************************************************************************************************************/

在这里插入图片描述

结束标志偏移地址,0x01FE ~ 0x01FF,这两个字节值为结束标志,0x55AA,如果该标志错误系统就不能启动

img
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统扇区 的相关文章

随机推荐

  • Android Studio com.android.support:percent 导入错误

    看第一行代码 xff08 第二版的 xff09 书 xff0c 讲了一个关于PercentFrameLayout和PercentRelativeLayout的部分 xff0c 书上在build gradle中导入了com android s
  • BS_TYPEMASK 重定义

    问题来源 CButtonST从VC6移植到VS2008的时候 xff0c 会提示下面语句重定义 span class token macro property span class token directive keyword defin
  • Ubuntu安装python

    CentOS 安装 Python3 没什么坑 xff0c 按照步骤一步步来就可以了 但 Ubuntu 安装 Python3 的坑却不少 xff0c 这里总结一下 xff0c 避免以后继续踩坑 我用的是 ubuntu16 04 xff0c 安
  • 【深度学习】Pytorch中cv2的错误 TypeError: Expected Ptr<cv::UMat> for argument ‘img‘

    错误出现的原因应该为数据之间出了冲突 xff0c 需要在某些地方调用 copy 函数 当我查看画框后的原图和旋转后的图片时 xff0c 发现它只是旋转的原图 xff0c 而不是将原图直接拷贝一份再旋转 下面为代码 xff1a import
  • PX4飞控开发——环境配置及编译ubuntu18.04

    PX4飞控学习过程 xff08 随着学习不断更新 xff0c 欢迎讨论 xff09 一 安装时遇到的问题二 添加环境变量及编译三 解決E 无法获得锁 var lib dpkg lock frontend open 11 资源暂时不可用 的問
  • PX4飞控试炼之路

    PX4飞控试炼之路 一 地面站控制台上显示输出 Hello Sky 二 利用飞控计算加法三 飞控按指定频率计数 xff0c 并将计数结果反馈到控制台1 利用while循环实现计数2 利用 96 hrt call every 96 周期回调函
  • 解决电脑wlan被禁用无法再启动的办法.

    快捷键ctrl 43 alt 43 delete打开任务管理器 gt 选择服务 gt 左下角打开服务 gt 找到WLAN AutoConfig右键 gt 选择重新启动 xff0c 然后Ok了
  • 关于虚拟机ubuntu编译程序时报make: warning: Clock skew detected. Your build may be incomplete.问题的解决办法

    关于ubuntu虚拟机编译程序时报make warning Clock skew detected Your build may be incomplete 问题的解决办法 xff1a 我在ubuntu虚拟的arm linux gcc上编译
  • 解决rosbag时间戳未对齐的解决方法

    解决rosbag时间戳未对齐的解决方法 Reference ROS org rosbag Cookbook http wiki ros org rosbag Cookbook rosbag在存储时间时 xff0c 接收消息的时间和生成消息的
  • ROS+python控制小乌龟走方形的实现rospy

    常见的简陋的控制乌龟行走方形的方式很简单 xff0c 例如 xff1a 代码有些地方是测试用的 xff0c 可以不要 usr bin env python from pickle import TRUE import rospy from
  • C++ STL算法

    C 43 43 STL算法 1 非修正序列算法1 1 adjacent find first last 1 2 count first last val 2 修正序列算法2 1 random shuffle first last 2 2 p
  • git子模块的修改和更新操作

    Reference git子模块的修改和更新操作 1 子库与父库 git关于子模块的官方文档链接 xff1a https git scm com book zh v2 Git E5 B7 A5 E5 85 B7 E5 AD 90 E6 A8
  • CMakeLists Option使用简介

    CMakeLists Option使用简介 1 基本格式2 示例3 基本用法4 C程序条件编译5 次项目之间选项的关系 Reference xff1a CMake之Option使用简介 CMake中的option用于控制编译流程 xff0c
  • 四轴一键起飞定高定点悬停伪代码

    四轴飞行器一键起飞定高 xff0c 降落 xff0c 光流定点悬停控制算法伪代码 基于飞控系统的二次开发
  • 开源飞控地面站 Openpilot GCS (现在的Librepilot GCS)源码分析  (2)地图插件

    xff08 xff11 xff09 OpenPilot项目中有地图显示模块 xff08 xff12 xff09 地图显示模块的插件是 xff1a opmap插件 xff0c 位置是src gt plugins gt opmap xff08
  • ubuntu 下运行程序报错 对‘std::cout’未定义的引用:gcc与g++的区别

    目录 1 问题提出 2 gcc与g 43 43 的区别 2 1 预处理 2 2 编译 2 3 汇编 2 4 链接运行 3 总结 1 问题提出 linux初学 xff0c 写了个例程 xff0c 用gcc o编译时出现以下问题 xff1a 后
  • 2.2 开启调度器

    开启调度器 void vTaskStartScheduler void BaseType t xReturn if configSUPPORT STATIC ALLOCATION 61 61 1 静态创建空闲任务 StaticTask t
  • 4. 消息队列

    消息队列 队列又称消息队列 xff0c 常用于任务间通信的数据结构 xff0c 可以在任务与任务之间 xff0c 中断与任务之间传递消息 xff0c 实现任务接收来自其他任务或中断的不固定长度的消息 任务可从消息队列中读取消消息 xff0c
  • 网卡接口

    网络接口 网络接口 xff08 以太网 xff09 是硬件接口 xff0c LwIP是软件 xff0c 并且网卡也是由很多种的 LwIP使用一个数据结构 xff0c nitif来描述网卡 用户提供最底层的接口函数 xff0c LwIP则提供
  • 系统扇区

    系统结构 DBR xff0c 主引导记录 xff1b DPT xff0c 分区表 xff1b DBR xff0c 分区引导扇区 引导扇区 MBR Main Boot Record xff0c 主引导扇区 xff0c 硬盘主引导记录区 xff