原先博客放弃使用,几篇文章搬运过来

EBR(Extended Boot Record)即扩展分区引导记录.类似于主引导记录MBR.因为MBR的四条分区信息的限制,可以使用EBR方便扩展.

它的结构与MBR类似于,但是没有引导程序和磁盘签名,仅仅保留了分区表和结束标志.

下面以实例分析:

  新建一个512MB虚拟磁盘,进行分区,如下图:

  依次来看一下分区表:

MBR截图:

    • 图中黄色部分表示第一个分区的分区表项,也就是盘符I.这不是一个活动分区,它的分区类型为0BH(即:FAT32),起始扇区为:00 00 00 80H(即:128),总扇区数为:00 03 20 00H(即:204,800).
    • 图中橙色部分表示第二个分区表项,它的分区类型为05H(即:扩展分区),它的起始扇区为:00 03 28 00H(即:206,848),总扇区数为:00 0C D8 00H(即:841,728).
    • 同时第一个分区表项的总长度(00 03 20 00H),加上第二个分区表项的总长度(00 0C D8 00H),再加上第一个分区表项前面预留的部分(00 00 00 08H)正好为512MB.

跳转到EBR1,也就是206,848扇区,截图如下:

    • EBR中没有引导程序和磁盘签名,EBR1中第一个分区表项如黄色标出,分区类型为:0BH(即:FAT32),它的起始位置为:00 00 00 3FH(即:63),这个值是相对于206,848也就是当前扇区的,总扇区数为:00 03 1F C1H(即:204,737).206848+63=206911,我们跳转到这个扇区,找到了这个分区:
    • EBR1中第二个分区表项已使用橙色标出,它的起始扇区为:00 03 20 00H(即:204,800),这个值也是相对于当前扇区(EBR1所在扇区)的,总扇区数为:00 03 20 00H(即:204,800),也就是204,848*512/2^20=100MB.

跳转到206848+204800=411648扇区找到了EBR2.

  • EBR2(扇区411,648)分区表部分截图:

    • EBR2中第一个分区表型的分区类型为:06H(即:FAT16),起始扇区为:00 00 08 00H(2048),这个值是相对于当前扇区也就是411,648扇区的,总扇区数为:00 03 18 00H(203,752).
    • 第二个分区表项的分区类型为:05H(即:Extended),起始扇区为:00 06 40 00H(409,600),这个值是相对于EBR1的起始扇区204,848的,而不是相对于当前扇区的.
    • 第一分区表项总长度(202,752)+第一个分区前预保留的扇区数(2048)=EBR1中第二个分区表项的长度(204,800)

跳转到206848+409600=616448扇区,就看到了EBR3:

    • 其中的第一个分区的起始扇区也是相对于当前扇区的,第二个分区表项的起始位置是相对于EBR1的起始扇区的.
    • EBR3第一个分区的前面保留扇区数(2048)+EBR3第一个分区的长度(202,752)=EBR2分区表第二项的总长度(204,800)
    • 第二个分区表项的起始扇区为:00 09 60 00H(614,400),总扇区数为:00 01 90 00H(102,400)

这样根据206848+614400=821248便找到了EBR4:

    • EBR4的第二个分布表项的起始扇区为:00 0A F0 00H(716800),总扇区数为:00 01 E8 00H(124928).
    • EBR4第一个分区的前面保留扇区数(2048)+EBR4第一个分区的长度(100352)=EBR3分区表第二项的总长度(102,400).

同理,可以找大EBR5的起始扇区:206848+716800=923648,截图如下:

    • EBR5第一个分区的前面保留扇区数(2048)+EBR5第一个分区的长度(122880)=EBR3分区表第二项的总长度(124,928).

总结:

  • MBR中扇区的起始位置都是相对于0偏移的.
  • EBR中第一个分区表项的表示的为逻辑磁盘时,起始位置都是相对于当前的扇区的(也就是EBR所在的扇区).
  • EBRi 中的分区表项表示下一个扩展分区时,它的起始位置都是相对于EBR1的.
  • EBRi+1中的扇区总数=EBRi中指向EBRi+1的分区表项的总扇区数.

EBR内容解析的更多相关文章

  1. gradle相关配置内容解析

    gradle 项目的构建工具,基于groovy语言.主要用于管理依赖包. as中一般将gradle下载在C:\Documents and Settings<用户名>.gradle\wrap ...

  2. Android 之内容提供者 内容解析者 内容观察者

    contentProvider:ContentProvider在Android中的作用是对外提供数据,除了可以为所在应用提供数据外,还可以共享数据给其他应用,这是Android中解决应用之间数据共享的 ...

  3. YOLOv3-darknet 内容解析

    目录 Yolov3-darknet 内容解析 多标签分类预测 跨尺度预测 网络结构改变 reference Yolov3-darknet 内容解析 YOLOv3是到目前为止,速度和精度最均衡的目标检测 ...

  4. YOLOv2-darknet 内容解析

    目录 YOLOv2-darknet 内容解析 1. 改进之处 2. Better 3. Faster 4. Stronger 5. 总结 reference YOLOv2-darknet 内容解析 1 ...

  5. YOLOv1-darknet 内容解析

    目录 YOLOv1-darknet 内容解析 1. 核心思想 2. 特点 3. 缺点 4. 算法流程 5. 详细内容 6. 主要参考 YOLOv1-darknet 内容解析 1. 核心思想 目标检测分 ...

  6. JVM系列文章(三):Class文件内容解析

    作为一个程序猿,只知道怎么用是远远不够的.起码,你须要知道为什么能够这么用.即我们所谓底层的东西. 那究竟什么是底层呢?我认为这不能一概而论.以我如今的知识水平而言:对于Web开发人员,TCP/IP. ...

  7. Web 前端性能优化相关内容解析

    Web 前端性能优化相关内容,来源于<Google官方网页载入速度检测工具PageSpeed Insights 使用教程>一文中PageSpeed Insights 的相关说明.大家可以对 ...

  8. Web 前端性能优化相关内容解析[转]

    Web 前端性能优化相关内容,来源于<Google官方网页载入速度检测工具PageSpeed Insights 使用教程>一文中PageSpeed Insights 的相关说明.大家可以对 ...

  9. 爬虫实战【6】Ajax内容解析-今日头条图集

    Ajax技术 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). Ajax并不是新的编程语言,而是一种使用现有标准的新方法,当然 ...

随机推荐

  1. webpy 解决中文出现UnicodeDecodeError: 'ascii' codec can't decode byte 问题

    1.问题描述:一个在Django框架下使用Python编写的定时更新项目,在Windows系统下测试无误,在Linux系统下测试,报如下错误: ascii codec can't decode byt ...

  2. 深入了解scanf()/getchar()和gets()/cin等函数

    转:http://www.cnblogs.com/FCWORLD/archive/2010/12/04/1896511.html 转:问题描述一:(分析scanf()和getchar()读取字符) s ...

  3. WPF DEV dxc:ChartControl 柱状图

    先上效果图: <UserControl xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts" mc ...

  4. 系统变量之System.getenv()和System.getProperty()

    Java提供了System类的静态方法getenv()和getProperty()用于返回系统相关的变量与属性,getenv方法返回的变量大多于系统相关,getProperty方法返回的变量大多与ja ...

  5. linux 查看端口被占用

    linux 查看端口被占用 1.lsof  -i : 端口号 用于查看某一端口的占用情况,比如查看8080端口使用情况,lsof  -i:8080 如果执行 lsof  -i:8080 系统提示 :  ...

  6. 函数内联 inline,__inline,__forceinline

    ▶ 感谢大佬的总结[http://www.cnblogs.com/xuemaxiongfeng/articles/2464850.html] ● 存储限定符 __inline 与关键字 inline ...

  7. Jquery对表格的一些简单应用 查询&即时匹配&点击高亮等

    代码如下(暂时没有用原生js实现): <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  8. 浅谈MyBatisGenerator的使用

    目录 1.概述 2.依赖 3.Maven插件配置 4.配置文件说明 5.运行 6.总结 1.概述 日常中使用MyBatis最为麻烦的就是编写Mapper文件了, 如果数据库增加一张表, 这时通常会复制 ...

  9. 多层josn数据 修改

    var aa = { a: 1, b: { c: 1, d: 1 }, e: [{ f: 1, g: 2 }, { h: 1, i: { j: 3, k: [{ l: 55, m: [1, 2, 3, ...

  10. Springboot学习05-自定义错误页面完整分析

    Springboot学习06-自定义错误页面完整分析 前言 接着上一篇博客,继续分析Springboot错误页面问题 正文 1-自定义浏览器错误页面(只要将自己的错误页面放在指定的路径下即可) 1-1 ...