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

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. 残差神经网络与inception-resnet

    一.基本概念 Residual Connection: 本质是“短路连接” 如下图阴影部分,通过增加shortcuts,加速训练,从而可以训练出更深的模型(I.R.v2 > Inception ...

  2. rabbitmq (一)用法

    首先,主机一是window系统,虚拟机二 ubuntu, ubuntu部署了rabbitmq服务端.默认监听5672端口. 由于rabbitmq内部有严格的权限系统,使用之前必须配置好权限. 默认网页 ...

  3. leetcode每日刷题计划-简单篇day3

    收到swe提前批面试hhh算是ep挂了的后续 努力刷题呀争取今年冲进去! Num 21 合并两个有序链表 Merge Two Sorted Lists 注意新开的链表用来输出结果的是ListNode ...

  4. QTP - 工作原理

    1.QTP的工作原理测试对象是QTP在测试或组件中创建的用于表示应用程序中的实际对象的对象,并且QuickTest在对象库中存储有关该对象的信息,包括对象的属性.操作等.录制的时候,QTP将操作过的所 ...

  5. Spring MVC和Spring Boot的理解以及比较

    Spring MVC是什么?(1)Spring MVC是Spring提供的一个强大而灵活的模块式web框架.通过Dispatcher Servlet, ModelAndView 和 View Reso ...

  6. 深度学习原理与框架-递归神经网络-RNN_exmaple(代码) 1.rnn.BasicLSTMCell(构造基本网络) 2.tf.nn.dynamic_rnn(执行rnn网络) 3.tf.expand_dim(增加输入数据的维度) 4.tf.tile(在某个维度上按照倍数进行平铺迭代) 5.tf.squeeze(去除维度上为1的维度)

    1. rnn.BasicLSTMCell(num_hidden) #  构造单层的lstm网络结构 参数说明:num_hidden表示隐藏层的个数 2.tf.nn.dynamic_rnn(cell, ...

  7. mvn多环境下的配置

    在应用中,我们经常会遇到本地,测试和生产3种不同的环境,因此需要去配置不同的application. 定义resources: <resources> <resource> & ...

  8. Centos7搭建OpenVPN服务器

    Windows下同时连接多个VPN的话,需要以管理员身份运行 C:\Program Files\TAP-Windows\bin\addtap.bat 添加虚拟网络适配器 --------------- ...

  9. jquery 中后代遍历之children、find区别

    jquery 中children.find区别 首先看一段HTML代码,如下: <table id="tb"> <tr> <td>0</t ...

  10. java.io.Flushable 接口

    package java.io; import java.io.IOException; /** * 在什么情况下用呢? 缓冲输出到一个流中的情况下,这个流要刷新. */ public interfa ...