文章来源: http: //gliethttp.cublog.cn[转载请声明出处]

硬盘存储数据是根据电、磁转换原理实现的。硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1),其中盘片和磁头密封在无尘的金属壳中。
硬 盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置然后将数据存储或读取出来。当系统向硬盘写入数据时,磁头中 “写数据”电流产生磁场使盘片表面磁性物质状态发生改变,并在写电流磁场消失后仍能保持,这样数据就存储下来了;当系统从硬盘中读数据时,磁头经过盘片指 定区域,盘片表面磁场使磁头产生感应电流或线圈阻抗产生变化,经相关电路处理后还原成数据。因此只要能将盘片表面处理得更平滑、磁头设计得更精密以及尽量 提高盘片旋转速度,就能造出容量更大、读写数据速度更快的硬盘。这是因为盘片表面处理越平、转速越快就能越使磁头离盘片表面越近,提高读、写灵敏度和速 度;磁头设计越小越精密就能使磁头在盘片上占用空间越小,使磁头在一张盘片上建立更多的磁道以存储更多的数据。
  硬盘由很多盘片 (platter)组成,每个盘片的每个面都有一个读写磁头。如果有N个盘片。就有2N个面,对应2N个磁头(Heads),从0、1、2开始编号。每个 盘片被划分成若干个同心圆磁道(逻辑上的,是不可见的。)每个盘片的划分规则通常是一样的。这样每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以 电机主轴为轴的柱面(Cylinders),从外至里编号为0、1、2……每个盘片上的每个磁道又被划分为几十个扇区(Sector),通常的容量是 512byte,并按照一定规则编号为1、2、3……形成Cylinders×Heads×Sector个扇区。这三个参数即是硬盘的物理参数。 [摘自:《FAT文件系统原理》]
以下为我的理解(gliethttp)
Cylinders柱面个数为同心不同径的磁道个数
Heads磁头个数为一个存放Cylinders个磁道的存储介质表面的面数
Sector就是一个磁道上的扇区个数
所以Cylinders×Heads×Sector就是这个物理硬盘的扇区总数.
MBR->DPT
主分区1-->起始扇区DBR[包括BPB和扩展BPB]-->FAT1-->FAT2-->FDT-->数据区
主分区2-->下一个扩展分区信息描述
主分区3
主分区4
MBR-->位于绝对的第0扇区
      MBR的引导程序占了其中的前446个,紧接着的后64个字节是硬盘分区表DPT,最后2个字节是"55 AA",为磁盘有效结尾标志值
      [0x000~0x1BD]存放MBR--对于pc电脑bios执行完自举之后,会将cpu控制权交给此间的最大446个字节的loader程序
      [0x1BE~0x1FD]存放MBR--DPT硬盘分区表,每16个字节描述一个主分区,根据分区类型字节域,我们可以知道该分区类型
      所以pc上主分区最多只能有4个.[gliethttp]
(注:DPT中对于>1字节的组合类型数据的存储,按小端模式[little endian]存储)
几个常见的分区类型值:
0x01 --- FAT32
0x04 --- FAT16<32M
0x05 --- Extended(扩展分区)
0x06 --- FAT16
0x07 --- NTFS
0x0B --- WIN95 FAT32
0x0C --- WIN95 FAT32
0x0E --- WIN95 FAT16
0x0F --- WIN95 Extended>8GB
0x11 --- Hidden FAT12
0x14 --- Hidden FAT16<32GB
0x16 --- Hidden FAT16
0x17 --- Hidden NTFS
0x1B --- Hidden FAT32
0x82 --- Linux swap
0x83 --- Linux
0x85 --- Linux extended
0xA6 --- Open BSD
pc执行完bios之后,将cpu控制权交给MBR的前446个字节的loader程序,位于MBR中的loader程序会加载活动主分区对应的DBR区,即—操作系统
启动程序,之后MBR将cpu控制权交给DBR,所以DBR的第1个扇区的前3个字节必须对应x86的跳转指令”E8 58 90”,该指令负责跳过接下来的几个不可执行的字节(BPB和扩展BPB),跳到操作系统引导代码部分。
DBR位于当前分区的起始扇区,比如c盘的第1个起始扇区地址,就是c盘对应的DRB区,
同样D盘的第1个起始扇区地址,就是D盘对应的DBR区,
对于usb盘,也一样,usb的第1个起始扇区就是该U盘的DBR区
DBR的BPB区域描述本分区的大小,起始、终止磁盘、柱面、扇区号以及细分内容:fat的个数、每扇区字节数、
每簇扇区数、当前分区保留扇区数、根目录FDT项数、本分区对应的存储介质类型、每个fat需要的扇区数、
总扇区数、根目录FDT簇号等
BPB地址  ---0x0B~0x40
扩展BPB地址 ---0x40~0x57
还记得前面提到的x86跳转指令”E8 58 90”吧,这个指令翻译过来就是从指令处开始向后跳转几个字节到0x5A处继续执行程序,
所以DBR的0x5A处开始存放了windows操作系统的引导代码,DBR扇区的最后两个字节一般存储值为0x55AA的DBR有效标志,
如果是其他值,系统将不会执行DBR中的操作系统引导代码.
还有一个知识点,就是“保留扇区”(也叫“隐藏扇区”或“系统扇区”),“保留扇区”指从管理本逻辑磁盘,如C盘:D盘:U盘等的DBR
扇区开始的供当前逻辑盘使用的用来描述本逻辑盘信息或者操作系统启动代码之类数据的扇区总数.
对于DBR管理的当前分区,如:C盘、D盘等来说,DBR所在的扇区为相对于当前分区的0扇区,
所以使用winhex,打开整个硬盘时, 看到的是该硬盘的绝对地址[gliethttp]
即:第0扇区为MBR,第63扇区为C盘的DBR,对于我的硬盘还有D、E和F
C盘:分区表DPT---0扇区              ,它对应的DBR扇区---DPT+63=63扇区
D盘:分区表DPT---81931500扇区(无用) ,它对应的DBR扇区---DPT+63=81931563扇区
E盘:分区表DPT---163863000扇区(无用),它对应的DBR扇区---DPT+63=163863063扇区

DBR又叫做该分区盘的起始扇区,在绝对地址下, 该分区盘的DBR就是绝对偏移扇区值,
使用winhex打开该分区盘(如D盘)之后,DBR在该分区盘(如D盘)内部的相对扇区值为0,
我的硬盘中[gliethttp]
C盘的DBR相对扇区为0
C盘的FAT1相对C盘的扇区偏移值为34
D盘的DBR相对扇区为0
D盘的FAT1相对D盘的扇区偏移值为34
E盘的DBR相对扇区为0
E盘的FAT1相对E盘的扇区偏移值为38
U盘的DBR相对扇区为0
U盘的FAT1相对U盘的扇区偏移值为36
以上这些偏移值都在每个分区盘的DBR中的BPB里有描述.

(winhex操作图例1) (进入C盘之后,DBR即起始扇区为相对地址0)

winhex操作图例2 (进入D盘之后,DBR即起始扇区为相对地址0)

虽然进入D盘或E盘等分区盘之后使用winhex打开的“起始扇区(模板)”的DBR相对地址不一样,但实际上都是指向同一个绝对物理地址,
DBR的内容都是一样的.

对于存在扩展分区的硬盘,比如我的硬盘有C、D、E和F共4个盘符
那么C盘将真正的使用硬盘的MBR,对于扩展分区是如何被系统识别的,以及他们之间是如何串联起来的,
有这样一个规定,使用MBR的第2个主分区作为下一个扩展分区相对与本分区的偏移扇区描述体
那么如果在扩展分区中,也没有MBR啊,是的,所以我们虚拟出一个MBR,认为下一个扩展分区是一个虚拟的物理硬盘,它也存在MBR
这样在虚拟MBR中只需要填写第2个主分区,即这个扩展分区对应的下一个扩展分区的偏移扇区描述体即可,这样循环下去.

文件: FAT文件系统原理.rar
大小: 379KB
下载: 下载

我对硬盘MBR、DBR、BPB、FAT和FDT的理解相关推荐

  1. DBR、FAT、FDT定位及FAT结构分析

    实验名称:DBR.FAT.FDT定位及FAT结构分析 一. 实验目的 学习并掌握FAT文件系统,知道它的整体结构:并且能够对FAT文件系统进行分析它的DBR,掌握DBR的结构,对DBR的BPB能够进行 ...

  2. Bootice1.34版本把grub4dos0.46a写入硬盘MBR失败一个例子

    Bootice1.34版本把grub4dos0.46a写入硬盘MBR失败一个例子         一个同事的台式机,BIOS启动,500GB硬盘,分了四个MBR分区,C盘是激活的主分区,第二个分区50 ...

  3. 计算机改硬盘格式,硬盘格式转换,详细教您如何将硬盘mbr格式转换为gpt格式

    大部分的新电脑预装的是win8系统,同时采用了GPT分区,很多用户想要重装成win7系统总是失败,原因在于分区格式不正确,只有将gpt格式分区转换成mbr格式再重装系统才能重装成功,下面,小编给大家讲 ...

  4. 计算机格式为gpt怎么更改,硬盘格式转换,手把手教你如何将硬盘mbr格式转换为gpt格式...

    硬盘有两种形式,mbr和gpt,相比MBR格式的硬盘分区,GPT分区具有明显的优势,不仅支持硬盘的容量更高,运行速度也比MBR格式的更快,那么,mbr格式要怎么转换成gpt格式呢?下面,小编给大家分享 ...

  5. linux mbr转换成gpt分区格式,MBR怎么转换为GPT?硬盘MBR格式转换成GPT格式教程

    硬盘MBR格式怎么转换成GPT格式?这是很多小白电脑用户所不了解的.首先介绍一下硬盘gpt格式,GPT是一种全局唯一标识分区表(GUID Partition Table,缩写:GPT),是指全局唯一标 ...

  6. 采用链接分配方式进行外存分配时,可采用的两种形式及其特点。假定磁盘块大小为4K,对于128G的硬盘,其文件分配表FAT需占用多少存储空间?

    采用链接分配方式进行外存分配时,可采用的两种形式及其特点.假定磁盘块大小为4K,对于128G的硬盘,其文件分配表FAT需占用多少存储空间? 隐式链接:除文件的最后一个盘快外,每个盘快中都存有指向下一个 ...

  7. 硬盘分区表知识——详解硬盘MBR(转)

    硬盘是现在计算机上最常用的存储器之一.我们都知道,计算机之所以神奇,是因为它具有高速分析处理数据的能力.而这些数据都以文件的形式存储在硬盘里.不过,计算机可不像人那么聪明.在读取相应的文件时,你必须要 ...

  8. [转]硬盘分区表知识——详解硬盘MBR

    http://www.blogjava.net/galaxyp/archive/2010/04/25/319344.html 硬盘是现在计算机上最常用的存储器之一.我们都知道,计算机之所以神奇,是因为 ...

  9. 硬盘分区表知识—详解硬盘MBR

    硬盘是现在计算机上最常用的存储器之一.我们都知道,计算机之所以神奇,是因为它具有高速分析处理数据的能力.而这些数据都以文件的形式存储在硬盘 里.不过,计算机可不像人那么聪明.在读取相应的文件时,你必须 ...

  10. 【转】详解硬盘MBR

    原文网址:http://hi.baidu.com/waybq/item/a4490f026f9859d21ef046a4 硬盘是现在计算机上最常用的存储器之一.我们都知道,计算机之所以神奇,是因为它具 ...

最新文章

  1. html5新年网页做给父母的,2018春节给父母的简短祝福语
  2. 带有谓词的Java中的功能样式-第1部分
  3. fatal error C1010: unexpected end of file while...
  4. 博客园-vb随笔列表
  5. 供应商主数据和客户主数据各个字段进行显示、必输、隐藏和可选输入的配置学习...
  6. 使用Java Api 操作HDFS
  7. excel表格乱码修复_修复从数据库复制的空白Excel单元格
  8. 双曲正切函数(tanh)
  9. win10无法装载重装系统iso文件_win10镜像不能安装系统如何解决_win10镜像无法安装处理方法...
  10. 白兵机器人怎样连接_“玩具之家”的新宠——星战白兵冲锋队员机器人体验
  11. Tableau技巧(五)帕累托分布(二八原则)
  12. ue编辑器c语言语法高亮文件,自己动手做 UEStudio/UltraEdit 的语法高亮文件 (*.uew)...
  13. 【推导】线性变换与在基下的矩阵一一对应
  14. RNA-ATTO 390|RNA-ATTO 425|RNA-ATTO 465|RNA-ATTO 488|RNA-ATTO 495|RNA-ATTO 520近红外荧光染料标记核糖核酸RNA
  15. 《世界,你好》——生化环材网站开站贺词
  16. 今天又谈到360和QQ
  17. 研究生这三个字已经被糟践得不象样了(转 张泽)
  18. Jmeter 性能测试之阶梯式场景、波浪式场景
  19. 【大疆mavic2】斗鱼直播
  20. 计算机应用基础试卷分析报告,试卷分析计算机应用基础

热门文章

  1. 微型计算机与巨型计算机相比,微型计算机的特点及应用
  2. 电子通讯录(文件保存版)
  3. 中美计算机软件著作权登记差异与比较
  4. Tomcat服务器response header 200 OK问题
  5. 小程序 腾讯兔小巢 对接
  6. 我的个人学习的小总结
  7. POJ 1088 滑雪 题解
  8. CorelDRAW 2020下载详细安装图文教程指导Win/Mac全版本
  9. 17-chan原理1-创建
  10. python:实现哥德巴赫猜想