星空体育app下载入口 硬盘分区表知识——详解硬盘MBR

硬盘是当今计算机上最常用的存储器之一。我们都知道计算机之所以神奇,是因为它们能够高速分析和处理数据。这些数据以文件的形式存储在硬盘上。然而,计算机并不像人类那么聪明。读取相应文件时,必须给出相应的规则。这就是分区的概念。

分区本质上是对硬盘驱动器的格式化。当我们创建分区时,我们就已经设置好了硬盘的物理参数,并指定了硬盘主引导记录(Master Boot Record,一般简称MBR)和引导记录备份的存储位置。文件系统和其他操作系统管理硬盘所需的信息是通过后期的高级格式化,即Format命令来实现的。 Side、Track、Sector 硬盘分区后,会分为Side、Track、Sector。需要注意的是,这些只是虚拟概念,并没有真正在硬盘上绘制磁道。

我们先从表面开始。硬盘驱动器通常由一层或几层堆叠在一起的圆形薄膜组成。正如我们所说,每个圆形膜都有两个“面”,这两个面都用来存储数据。根据面数,分别称为面0、面1、面2...由于每一面都有自己的读写头,所以也俗称头0、头1....根据容量而定和硬盘的规格不同,硬盘的面数(或磁头)也不一定相同。有些可能只有 2 个面,而另一些可能有几十个面。每个表面上具有相同磁道编号的磁道统称为柱面。

上面我们提到了轨道的概念。那么磁轨到底是什么?由于磁盘在旋转,连续写入的数据呈圆形排列。我们称这样的圆为轨道。如果读写头沿着圆形胶片的半径移动一定的距离,后面写入的数据就会排列在另一个磁道上。根据硬盘的规格不同,磁道数可以从数百到数千不等;一个磁道可以容纳几KB的数据,而主机读写时,往往不需要一次读写那么多数据,因此磁道被分为若干段,每个段称为一个扇区。一个扇区一般存储512字节的数据。扇区也需要编号。同一磁道中的扇区称为扇区 1、扇区 2...

为了效率,计算机对硬盘的读写都是按照扇区来进行的。即使计算机只需要在硬盘上存储某个字节,也必须将该字节所在扇区的512个字节全部一次性读入内存,然后使用所需的字节。不过,上面我们也提到,在硬盘表面看不到磁道和扇区划分的痕迹。虽然磁头可以根据磁道半径来对准磁道,但是在表面上怎么能做到呢?如何在一圈首尾相连的扇区中找到所需的扇区?原来每个扇区不仅仅由512字节组成。计算机访问的数据的前后端还有一些特定的数据。这些数据构成了扇区的边界标志。该标志包含扇区号和其他信息。计算机依靠这些标志来识别扇区。硬盘的数据结构 上面我们讲了硬盘数据存储的一般原理。为了对硬盘有更深入的了解,我们还必须对硬盘的数据结构有一个简单的了解。硬盘上的数据根据​​其不同的特点和功能,大致可以分为5个部分:MBR区、DBR区、FAT区、DIR区和DATA区。

我们分别介绍一下:

1.MBR区

MBR(Main Boot Record)位于整个硬盘的0磁道、1柱面、1扇区。然而,在总共512字节的主引导扇区中,MBR只占用了446字节,其余64字节交给了DPT(磁盘分区表),最后两个字节“55,AA”是结束标志分区。这整体构成了硬盘的主引导扇区。

主引导记录包含硬盘的一系列参数和引导程序。硬盘启动程序的主要功能是在系统硬件完成自检后检查分区表是否正确并启动带有激活标志的分区上的操作系统,并将控制权交给启动程序。 MBR 由分区程序(如 Fdisk.exe)生成。它不依赖于任何操作系统,硬盘引导程序也可以改变,从而实现多系统共存。

下面,我们通过一个例子,让大家更直观地了解主引导记录:

例: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”表示分区末尾的磁头号为254,分区末尾的扇区号为63,分区末尾的柱面号为764; “3F 00 00 “00”表示第一个扇区的相对扇区号为63;“7E 86 BB 00”表示扇区总数为12289622。

2.DBR区

DBR(Dos Boot Record)是指操作系统引导记录区。通常位于硬盘的0磁道、1柱面、1扇区。它是操作系统可以直接访问的第一个扇区。它包括一个引导程序和一个称为BPB(Bios Parameter Block)的本地分区参数记录表。引导程序的主要任务是在MBR交接时判断该分区和目录中的前两个文件是否是操作系统的引导文件(以DOS为例,它们是Io.sys和Msdos.sys)系统对其进行控制。如果确定存在,则将其读入内存并将控制权交给该文件。 BPB参数块记录了该分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT数量、分配单元大小等重要参数。 DBR 由高级格式化程序(即Format.com 和其他程序)生成。

3.FAT区

DBR之后就是我们比较熟悉的FAT(文件分配表)区域。在解释文件分配表的概念之前,我们先来说一下簇的概念。当文件占用磁盘空间时,基本单位不是字节而是簇。一般情况下,软盘的每一簇就是一个扇区。硬盘每个簇的扇区数量与硬盘的总容量有关,可能是4、8、16、32、64……同一个文件的数据不一定完整。它存储在磁盘的连续区域中,往往被分成若干段,像链一样存储。这种存储方式称为文件的链式存储。由于硬盘上存储了段之间的连接信息(即FAT),因此操作系统在读取文件时,总能准确地找到各个段的位置并正确读取。为了实现文件的链式存储,硬盘必须准确记录文件已经占用了哪些簇,并且必须为每个占用的簇指定下一个存储后续内容的簇号。对于文件的最后一个簇,需要表明该簇没有后继簇。这些都是由FAT表保存的。表中有很多条目,每个条目记录一个簇的信息。由于FAT对于文件管理的重要性,FAT有备份,即在原来的FAT后面构建相同的FAT。最初形成的FAT中的所有项目都被标记为“未占用”,但如果磁盘部分损坏,格式化程序会检测到损坏的簇并将相应的项目标记为“坏簇”,并且在保存文件时不会使用它未来。将再次使用该集群。 FAT表项的数量相当于硬盘上的簇总数,并且每个表项占用的字节数也必须与簇总数一致,因为其中需要存储簇号。 FAT有多种格式,最常见的是FAT16和FAT32。

4.DIR区

DIR(Directory)是根目录区域。紧接着第二个FAT表(即备份FAT表),记录了根目录下每个文件(目录)的起始单元、文件的属性等。操作系统在定位文件位置时可以根据DIR中的起始单元和FAT表知道文件在硬盘上的具体位置和大小。

5.数据(DATA)区

数据区是真正存储数据的地方。它位于DIR区之后,占据了硬盘上的大部分数据空间。

1、硬盘物理结构:

硬盘是基于电、磁转换原理来存储数据的。硬盘由一个或多个表面涂有磁性材料的金属或玻璃盘片以及安装在盘片两侧的磁头和相应的控制电路组成(图1)。磁盘和磁头密封在无尘金属外壳内。中间。

硬盘中有多张盘片_硬盘里面的样子_硬盘磁盘片

硬盘工作时,盘片按设计转速高速旋转,设置在盘片表面的磁头在电路的控制下径向移动到指定位置,然后存储或读取数据。当系统向硬盘写入数据时,磁头中的“写入数据”电流会产生磁场,改变磁盘表面磁性材料的状态,写入电流后仍能保持磁性。字段消失,从而数据被存储;当系统从硬盘写入数据和读取数据时,磁头经过磁盘的指定区域,磁盘表面的磁场使磁头产生感应电流或改变线圈阻抗,经相关电路处理后恢复为数据。因此,只要能将盘片表面处理得更光滑,磁头设计得更精密,并尽可能提高盘片的转速,容量更大、读取速度更快的硬盘就可以了。可以创建写入数据。这是因为磁盘表面处理越平整,旋转速度越快,磁头距离磁盘表面越近,提高读写灵敏度和速度;磁头的设计越小、越精密,磁头在磁盘上占用的空间就越小。 ,允许磁头在磁盘上创建更多磁道以存储更多数据。

2、硬盘逻辑结构:

硬盘由许多盘片组成,每个盘片的每一面都有一个读写头。假如有N块磁盘。有2N个面,对应2N个磁头(Heads),编号从0、1、2开始。每个磁盘被划分为若干个同心圆磁道(逻辑上,看不见)。每个磁盘的划分规则通常是相同的。这样,每个盘上的固定半径R的同心圆在逻辑上就形成了一个以电机主轴为轴的圆柱体(Cylinders)。从外到内,每张盘片上的数字分别是0、1、2……每条磁道又分为几十个扇区(Sector)。通常的容量为512字节,按照一定的规则编号为1、2、3……,组成Cylinders×Heads×Sector扇区。这三个参数就是硬盘的物理参数。我们后面的很多实践都需要深入理解这三个参数的含义。

硬盘是根据电、磁转换原理来存储数据的。硬盘由一个或多个表面涂有磁性物质的金属或玻璃盘片以及安装在盘片两面的磁头和相应的控制电路组成(图1)。磁盘和磁头密封在无尘金属外壳内。中间。

3、磁盘启动原理:

3.1 MBR(主引导记录)扇区:

按下电源按钮后,计算机开始执行主板BIOS程序。完成一系列的检测和配置后。按照BIOS中设置的系统启动顺序开始启动系统。假设现在它是一个硬盘。 Bios执行完自己的程序后如何将执行权转移到硬盘上?交给硬盘后,执行其中存储的程序。事实上,一段叫做mbr的代码起着至关重要的作用。 MBR(master boot record)即主引导记录,有时也称为主引导扇区。位于整个硬盘的0扇区、0柱面、1磁头(可以看作是硬盘的第一个扇区),BIOS在执行完自己固有的程序后,会跳转到mbr中的第一条指令。将系统的控制权转移到mbr。总共512字节的主引导记录中,MBR引导程序占据前446字节(偏移0H~偏移1BDH),后续的64字节(偏移1BEH~偏移1FDH)是DPT(Disk PartitionTable,硬盘分区表) ,最后两个字节“55 AA”(偏移1FEH~偏移1FFH)是分区的有效结束标志。

MBR不随操作系统的不同而变化,这意味着不同的操作系统可能具有相同的MBR。即使它们不同,MBR也不会携带操作系统的特性。它具有公共指导的特点。

我们来分析一段mbr。下面是使用 winhex 查看的希捷 120GB 硬盘的 mbr。

MBR 扇区代码

硬盘里面的样子_硬盘磁盘片_硬盘中有多张盘片

您的硬盘驱动器的 MBR 引导代码可能不是这样的。但即使它们不同星空综合体育app下载,执行的功能通常是相同的。这里,看wowocock对磁盘mbr的反编译。已添加详细注释。如果您有兴趣,可以详细研究一下。

我们来看看DPT部分。操作系统方便用户对磁盘的管理。添加了磁盘分区的概念。即一个磁盘在逻辑上被划分为若干个块。磁盘分区的数量仅受C到Z英文字母数量的限制。上图中总共64字节的DPT中如何表达多个分区的属性呢?微软通过链接的方法解决了这个问题。 DPT总共64字节中,有16字节作为分区表项单元,描述分区的属性。换句话说,第一个分区表条目描述了分区的属性,通常是基本分区。第二个分区表项描述了除基本分区之外的剩余空间。一般来说,就是我们所说的扩展分区。该部分的总体描述如表1所示。

硬盘磁盘片_硬盘里面的样子_硬盘中有多张盘片

DPT代码分析

注:上表中超过 1 个字节的数据均按实际数据显示,即从高位到位显示。存储时从低位到高位存储。两者表现不同,请仔细观察。以后出现的表格和数字都是一样的。

还可以在winhex中查看这些参数的含义:

硬盘里面的样子_硬盘中有多张盘片_硬盘磁盘片

注:每个分区表项占用 16 个字节,假设偏移地址从 0 开始。如图 3 中分区表项 3 所示。分区表项 4 与分区表项 3 相同。

1、0H偏移是否标记活动分区,只能选择00H和80H。 80H 有效,00H 无效。其余的值对于微软来说是非法的。

2.我们重新解释一下(这个很重要):大于1字节的数字以小端格式(little endian format)或者逆字节序保存。小字节优先格式是一种存储数字的方式,以便在十六进制数字表示法中最低字节首先出现。例如,相对扇区号字段中的值0x3F000000表示为0x0000003F,低字节在前。该低字节第一格式数的十进制数是63。

3、系统分区时,每个分区不允许跨柱面,即以柱面为单位。这通常称为分区粒度。有时我们输入分区的大小是7000M,但是分区的大小是6997M。这就是原因。偏移2H和偏移6H的扇区和柱面参数中,扇区占用6位(bit),柱面占用10位(bit)。以偏移6H为例,低6位作为扇区号。二进制表示。高两位作为柱面号的 10 位的高两位,偏移量为 7H 的 8 位作为柱面号的 10 位的低 8 位。可见星空体育平台官网入口,这种方式实际表达的分区容量是有限的。柱面和磁头从0开始编号,扇区从1开始编号,所以最多只能表示1024个柱面×63个扇区×256。头×512字节=8455716864字节。这是通常的 8.4GB(实际上应该在 7.8GB 左右)限制。事实上,磁头的数量通常只有255个(由汇编语言的寻址寄存器决定)。即使这3个字节是线性寻址的,仍然是不够的。在后来的操作系统中,超过8.4GB的分区不再通过C/H/S来寻址。而是使用从偏移量CH到偏移量FH总共4个字节的32位线性扇区地址来表示该分区占用的扇区总数。可见4个字节可以代表2^32个扇区,即2TB=2048GB。对于大多数计算机来说,这已经是一个天文数字了。在不超过8.4GB的分区上,C/H/S表示方法和线性扇区表示方法表示的分区大小是一致的。也就是说,这两种表示是协调的。即使它们不协调,线性寻址仍然占主导地位。 (某些系统可能会出现错误)。超过8.4GB的分区一般在C/H/S末尾填充FEH FFH FFH。即C/H/S所能表示的最大值。有时使用1024圆柱模具进行填充。但这些字节是什么并不重要。

尽管当前的系统都使用线性寻址来处理分区大小。但不跨柱体的原则保持不变。本分区的扇区总数加上前一个分区与前一个分区之间的保留扇区数仍必须是柱面容量的整数倍。 (保留扇区中的第一个扇区是存储分区表的MBR或虚拟MBR的扇区。分区中的扇区总数不包含在线性表示的保留扇区中。如果是第一个分区,则保留扇区是该分区之前的所有扇区。

附:分区表类型标志如图4

硬盘磁盘片_硬盘中有多张盘片_硬盘里面的样子

3.2 扩展分区

扩展分区中的每个逻辑驱动器都有一个类似于 MBR 的扩展引导记录 (EBR)。有些人也称其为虚拟mbr或扩展mbr,意思是一样的。扩展引导记录包括扩展分区表和扇区的标签。扩展引导记录将记录仅包含扩展分区中每个逻辑驱动器的第一个柱面的第一面的信息。逻辑驱动器中的引导扇区通常位于相关扇区32或63。但是,如果磁盘上没有扩展分区,则不会有扩展引导记录,也不会存在逻辑驱动器。第一个逻辑驱动器的扩展分区表中的第一个条目指向其自己的引导扇区。第二个条目指向下一个逻辑驱动器的 EBR。如果不存在其他逻辑驱动器,则不使用第二个条目,并将其记录为一系列零。如果还有其他逻辑驱动器,则第二个逻辑驱动器的扩展分区表中的第一个条目将指向其自己的引导扇区。第二个逻辑驱动器的扩展分区表的第二个条目指向下一个逻辑驱动器的EBR。扩展分区表的第三和第四条目从未被使用。

通过4分区磁盘结构图可以看出磁盘的大致组织形式。如图5所示

硬盘中有多张盘片_硬盘里面的样子_硬盘磁盘片

对于扩展分区,如图6所示,扩展分区中逻辑驱动器的扩展引导记录是一个连接表。该图显示了扩展分区上的三个逻辑驱动器,说明了前面的逻辑驱动器和最后一个逻辑驱动器之间的扩展分区表的差异。

硬盘中有多张盘片_硬盘磁盘片_硬盘里面的样子

表 2 中描述的扩展分区表的格式对于扩展分区上除最后一个逻辑驱动器之外的每个逻辑驱动器重复:第一个条目标识逻辑驱动器本身的引导扇区,第二个条目标识下一个逻辑驱动器的 EBR逻辑驱动器。最后一个逻辑驱动器的扩展分区表将仅列出其自己的分区条目。使用最后一个扩展分区表的第二到第四条目。

硬盘中有多张盘片_硬盘里面的样子_硬盘磁盘片

扩展分区表条目中的相对扇区数字段显示从扩展分区的开头到逻辑驱动器中第一个扇区移位的字节数。 Total Sectors 字段中的数字是指组成逻辑驱动器的扇区数。 Total Sectors 字段的值等于从扩展分区表条目定义的引导扇区到逻辑驱动器末尾的扇区数。

有时磁盘末尾还有剩余空间。剩余空间是多少?前面我们提到星空体育官方网站,分区粒度是基于1个柱面的容量。如果磁盘总空间不是整数个柱面,则不足一个柱面的剩余空间即为剩余空间。这部分空间不参与。已分区,所以一般不能使用。从逻辑上来说,磁盘的物理模型决定了磁盘的总容量应该是柱面的整数个。为什么一个气缸的空间不够?据我了解,为了更好地利用空间,现在的磁盘通常不会以外部扇区大于内部扇区的方式进行物理管理。相反,CHS 被抽象出来只是为了与操作系统兼容。 。也许它的实际空间容量可能不完全是整数个柱面的容量。

关键词:

客户评论

我要评论