硬盘结构原理_第1页
硬盘结构原理_第2页
硬盘结构原理_第3页
硬盘结构原理_第4页
硬盘结构原理_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/一般硬盘正面贴有产品标签,主要包括厂家信息和产品信息,如商标、型号、序列号、生产日期、容量、参数和主从设置方法等.这些信息是正确使用硬盘的基本依据,下面将逐步介绍它们的含义。硬盘主要由盘体、控制电路板和接口部件等组成,如图1-1所示。盘体是一个密封的腔体。硬盘的内部结构通常是指盘体的内部结构;控制电路板上主要有硬盘BIOS、硬盘缓存(即CACHE)和主控制芯片等单元,如图1—2所示;硬盘接口包括电源插座、数据接口和主、从跳线,如图1—3所示。

图1—1硬盘的外观ﻫ图1—2控制电路板

图1—3硬盘接口电源插座连接电源,为硬盘工作提供电力保证.数据接口是硬盘与主板、内存之间进行数据交换的通道,使用一根40针40线(早期)或40针80线(当前)的IDE接口电缆进行连接。新增加的40线是信号屏蔽线,用于屏蔽高速高频数据传输过程中的串扰。中间的主、从盘跳线插座,用以设置主、从硬盘,即设置硬盘驱动器的访问顺序。其设置方法一般标注在盘体外的标签上,也有一些标注在接口处,早期的硬盘还可能印在电路板上。此外,在硬盘表面有一个透气孔(见图1-1),它的作用是使硬盘内部气压与外部大气压保持一致.由于盘体是密封的,所以,这个透气孔不直接和内部相通,而是经由一个高效过滤器和盘体相通,用以保证盘体内部的洁净无尘,使用中注意不要将它盖住。1.2硬盘的内部结构硬盘的内部结构通常专指盘体的内部结构。盘体是一个密封的腔体,里面密封着磁头、盘片(磁片、碟片)等部件,如图1—4所示。

图1—4硬盘内部结构硬盘的盘片是硬质磁性合金盘片,片厚一般在0.5mm左右,直径主要有1.8in(1in=25.4mm)、2。5in、3。5in和5.25in4种,其中2。5in和3.5in盘片应用最广。盘片的转速与盘片大小有关,考虑到惯性及盘片的稳定性,盘片越大转速越低。一般来讲,2。5in硬盘的转速在5400r/min~7200r/min之间;3。5in硬盘的转速在4500r/min~5400r/min之间;而5。25in硬盘转速则在3600r/min~4500r/min之间。随着技术的进步,现在2。5in硬盘的转速最高已达15000r/min,3.5in硬盘的转速最高已达12000r/min。有的硬盘只装一张盘片,有的硬盘则有多张盘片。这些盘片安装在主轴电机的转轴上,在主轴电机的带动下高速旋转。每张盘片的容量称为单碟容量,而硬盘的容量就是所有盘片容量的总和。早期硬盘由于单碟容量低,所以,盘片较多,有的甚至多达10余片,现代硬盘的盘片一般只有少数几片。一块硬盘内的所有盘片都是完全一样的,不然控制部分就太复杂了.一个牌子的一个系列一般都用同一种盘片,使用不同数量的盘片,就出现了一个系列不同容量的硬盘产品.盘体的完整构造如图1—5所示。

图1—5盘体的完整结构硬盘驱动器采用高精度、轻型磁头驱动/定位系统。这种系统能使磁头在盘面上快速移动,可在极短的时间内精确地定位在由计算机指令指定的磁道上。目前,磁道密度已高达5400Tpi(每英寸磁道数)或更高;人们还在研究各种新方法,如在盘上挤压(或刻蚀)图形、凹槽和斑点等作为定位和跟踪标记,以提高到和光盘相等的道密度,从而在保持磁盘机高速度、高位密度和高可靠性的优势下,大幅度提高存储容量。硬盘驱动器内的电机都是无刷电机,在高速轴承支持下机械磨损很小,可以长时间连续工作.高速旋转的盘体产生明显的陀螺效应,所以,在硬盘工作时不宜搬动,否则,将增加轴承的工作负荷.为了高速存储和读取信息,硬盘驱动器的磁头质量小,惯性也小,所以,硬盘驱动器的寻道速度明显快于软驱和光驱。硬盘驱动器磁头与磁头臂及伺服定位系统是一个整体。伺服定位系统由磁头臂后的线圈和固定在底板上的电磁控制系统组成。由于定位系统限制,磁头臂只能在盘片的内外磁道之间移动。因此,不管开机还是关机,磁头总在盘片上;所不同的是,关机时磁头停留在盘片启停区,开机时磁头“飞行"在磁盘片上方。1。3硬盘的逻辑结构(1)硬盘上的数据是如何组织与管理的呢?硬盘首先在逻辑上被划分为磁道、柱面以及扇区,其结构关系如图1-6所示。ﻫ图1—6磁头、柱面和扇区每个盘片的每个面都有一个读写磁头,磁盘盘面区域的划分如图1—7所示.磁头靠近主轴接触的表面,即线速度最小的地方,是一个特殊的区域,它不存放任何数据,称为启停区或着陆区(LandingZone),启停区外就是数据区。在最外圈,离主轴最远的地方是“0”磁道,硬盘数据的存放就是从最外圈开始的。那么,磁头是如何找到“0”磁道的位置的呢?从图1-5中可以看到,有一个“0”磁道检测器,由它来完成硬盘的初始定位。“0”磁道是如此的重要,以致很多硬盘仅仅因为“0”磁道损坏就报废,这是非常可惜的。这种故障的修复技术在后面的章节中有详细的介绍。

图1-7硬盘盘片的启停区和数据区早期的硬盘在每次关机之前需要运行一个被称为Parking的程序,其作用是让磁头回到启停区。现代硬盘在设计上已摒弃了这个虽不复杂却很让人不愉快的小缺陷.硬盘不工作时,磁头停留在启停区,当需要从硬盘读写数据时,磁盘开始旋转。旋转速度达到额定的高速时,磁头就会因盘片旋转产生的气流而抬起,这时磁头才向盘片存放数据的区域移动。盘片旋转产生的气流相当强,足以使磁头托起,并与盘面保持一个微小的距离。这个距离越小,磁头读写数据的灵敏度就越高,当然对硬盘各部件的要求也越高。早期设计的磁盘驱动器使磁头保持在盘面上方几微米处飞行。稍后一些设计使磁头在盘面上的飞行高度降到约0.1μm~0.5μm,现在的水平已经达到0.005μm~0.01μm,这只是人类头发直径的千分之一。气流既能使磁头脱离开盘面,又能使它保持在离盘面足够近的地方,非常紧密地跟随着磁盘表面呈起伏运动,使磁头飞行处于严格受控状态.磁头必须飞行在盘面上方,而不是接触盘面,这种位置可避免擦伤磁性涂层,而更重要的是不让磁性涂层损伤磁头.但是,磁头也不能离盘面太远,否则,就不能使盘面达到足够强的磁化,难以读出盘上的磁化翻转(磁极转换形式,是磁盘上实际记录数据的方式)。硬盘驱动器磁头的飞行悬浮高度低、速度快,一旦有小的尘埃进入硬盘密封腔内,或者一旦磁头与盘体发生碰撞,就可能造成数据丢失,形成坏块,甚至造成磁头和盘体的损坏。所以,硬盘系统的密封一定要可靠,在非专业条件下绝对不能开启硬盘密封腔,否则,灰尘进入后会加速硬盘的损坏。另外,硬盘驱动器磁头的寻道伺服电机多采用音圈式旋转或直线运动步进电机,在伺服跟踪的调节下精确地跟踪盘片的磁道,所以,硬盘工作时不要有冲击碰撞,搬动时要小心轻放。这种硬盘就是采用温彻斯特(Winchester)技术制造的硬盘,所以也被称为温盘。其结构特点如下。①磁头、盘片及运动机构密封在盘体内。②磁头在启动、停止时与盘片接触,在工作时因盘片高速旋转,带动磁头“悬浮”在盘片上面呈飞行状态(空气动力学原理),“悬浮”的高度约为0。1μm~0。3μm,这个高度非常小,图1-8标出了这个高度与头发、烟尘和手指印的大小比较关系,从这里可以直观地“看”出这个高度有多“高”。下面对“盘面”、“磁道”、“柱面”和“扇区"的含义逐一进行介绍。1。盘面号硬盘的盘片一般用铝合金材料做基片,高速硬盘也可能用玻璃做基片.玻璃基片更容易达到所需的平面度和光洁度,且有很高的硬度。磁头传动装置是使磁头部件作径向移动的部件,通常有两种类型的传动装置.一种是齿条传动的步进电机传动装置;另一种是音圈电机传动装置。前者是固定推算的传动定位器,而后者则采用伺服反馈返回到正确的位置上。磁头传动装置以很小的等距离使磁头部件做径向移动,用以变换磁道。硬盘的每一个盘片都有两个盘面(Side),即上、下盘面,一般每个盘面都会利用,都可以存储数据,成为有效盘片,也有极个别的硬盘盘面数为单数。每一个这样的有效盘面都有一个盘面号,按顺序从上至下从“0”开始依次编号.在硬盘系统中,盘面号又叫磁头号,因为每一个有效盘面都有一个对应的读写磁头。硬盘的盘片组在2~14片不等,通常有2~3个盘片,故盘面号(磁头号)为0~3或0~5。2。磁道磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道(Track)。磁道从外向内从0开始顺序编号。硬盘的每一个盘面有300~1024个磁道,新式大容量硬盘每面的磁道数更多。信息以脉冲串的形式记录在这些轨迹中,这些同心圆不是连续记录数据,而是被划分成一段段的圆弧,这些圆弧的角速度一样.由于径向长度不一样,所以,线速度也不一样,外圈的线速度较内圈的线速度大,即同样的转速下,外圈在同样时间段里,划过的圆弧长度要比内圈划过的圆弧长度大。每段圆弧叫做一个扇区,扇区从“1”开始编号,每个扇区中的数据作为一个单元同时读出或写入。一个标准的3。5in硬盘盘面通常有几百到几千条磁道。磁道是“看”不见的,只是盘面上以特殊形式磁化了的一些磁化区,在磁盘格式化时就已规划完毕。1.3硬盘的逻辑结构(2)3.柱面所有盘面上的同一磁道构成一个圆柱,通常称做柱面(Cylinder),每个圆柱上的磁头由上而下从“0"开始编号。数据的读/写按柱面进行,即磁头读/写数据时首先在同一柱面内从“0”磁头开始进行操作,依次向下在同一柱面的不同盘面即磁头上进行操作,只在同一柱面所有的磁头全部读/写完毕后磁头才转移到下一柱面,因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。电子切换相当快,比在机械上磁头向邻近磁道移动快得多,所以,数据的读/写按柱面进行,而不按盘面进行.也就是说,一个磁道写满数据后,就在同一柱面的下一个盘面来写,一个柱面写满后,才移到下一个扇区开始写数据。读数据也按照这种方式进行,这样就提高了硬盘的读/写效率。一块硬盘驱动器的圆柱数(或每个盘面的磁道数)既取决于每条磁道的宽窄(同样,也与磁头的大小有关),也取决于定位机构所决定的磁道间步距的大小。更深层的内容请参考其他书籍,限于篇幅,这里不再深入介绍。4.扇区操作系统以扇区(Sector)形式将信息存储在硬盘上,每个扇区包括512个字节的数据和一些其他信息。一个扇区有两个主要部分:存储数据地点的标识符和存储数据的数据段,如图1—9所示.

图1-9硬盘扇区的构成标识符就是扇区头标,包括组成扇区三维地址的三个数字:扇区所在的磁头(或盘面)、磁道(或柱面号)以及扇区在磁道上的位置即扇区号。头标中还包括一个字段,其中有显示扇区是否能可靠存储数据,或者是否已发现某个故障因而不宜使用的标记。有些硬盘控制器在扇区头标中还记录有指示字,可在原扇区出错时指引磁盘转到替换扇区或磁道。最后,扇区头标以循环冗余校验(CRC)值作为结束,以供控制器检验扇区头标的读出情况,确保准确无误。扇区的第二个主要部分是存储数据的数据段,可分为数据和保护数据的纠错码(ECC)。在初始准备期间,计算机用512个虚拟信息字节(实际数据的存放地)和与这些虚拟信息字节相应的ECC数字填入这个部分。扇区头标包含一个可识别磁道上该扇区的扇区号。有趣的是,这些扇区号物理上并不连续编号,它们不必用任何特定的顺序指定。扇区头标的设计允许扇区号可以从1到某个最大值,某些情况下可达255。磁盘控制器并不关心上述范围中什么编号安排在哪一个扇区头标中。在很特殊的情况下,扇区还可以共用相同的编号。磁盘控制器甚至根本就不管数据区有多大,只管读出它所找到的数据,或者写入要求它写的数据。给扇区编号的最简单方法是l,2,3,4,5,6等顺序编号。如果扇区按顺序绕着磁道依次编号,那么,控制器在处理一个扇区的数据期间,磁盘旋转太远,超过扇区间的间隔(这个间隔很小),控制器要读出或写入的下一扇区已经通过磁头,也许是相当大的一段距离。在这种情况下,磁盘控制器就只能等待磁盘再次旋转几乎一周,才能使得需要的扇区到达磁头下面。显然,要解决这个问题,靠加大扇区间的间隔是不现实的,那会浪费许多磁盘空间.许多年前,IBM的一位杰出工程师想出了一个绝妙的办法,即对扇区不使用顺序编号,而是使用一个交叉因子(interleave)进行编号。交叉因子用比值的方法来表示,如3﹕1表示磁道上的第1个扇区为1号扇区,跳过两个扇区即第4个扇区为2号扇区,这个过程持续下去直到给每个物理扇区编上逻辑号为止。例如,每磁道有17个扇区的磁盘按2﹕1的交叉因子编号就是:l,10,2,11,3,12,4,13,5,14,6,15,7,16,8,17,9,而按3﹕1的交叉因子编号就是:l,7,13,2,8,14,3,9,15,4,10,16,5,11,17,6,12。当设置1﹕l的交叉因子时,如果硬盘控制器处理信息足够快,那么,读出磁道上的全部扇区只需要旋转一周;但如果硬盘控制器的后处理动作没有这么快,磁盘所转的圈数就等于一个磁道上的扇区数,才能读出每个磁道上的全部数据。将交叉因子设定为2﹕1时,磁头要读出磁道上的全部数据,磁盘只需转两周。如果2﹕1的交叉因子仍不够慢,磁盘旋转的周数约为磁道的扇区数,这时,可将交叉因子调整为3﹕1,如图1-10所示。

图1-10不同交叉因子的效果示例图1—10所示的是典型的MFM(ModifiedFrequencyModulation,改进型调频制编码)硬盘,每磁道有17个扇区,画出了用三种不同的扇区交叉因子编号的情况。最外圈的磁道(0号柱面)上的扇区用简单的顺序连续编号,相当于扇区交叉因子是1﹕1。1号磁道(柱面)的扇区按2﹕1的交叉因子编号,而2号磁道按3﹕1的扇区交叉因子编号。早期的硬盘管理工作中,设置交叉因子需要用户自己完成.用BIOS中的低级格式化程序对硬盘进行低级格式化时,就需要指定交叉因子,有时还需要设置几种不同的值来比较其性能,而后确定一个比较好的值,以期硬盘的性能较好。现在的硬盘BIOS已经自己解决这个问题,所以,一般低级格式化程序不再提供这一选项设置。系统将文件存储到磁盘上时,按柱面、磁头、扇区的方式进行,即最先是第1磁道的第一磁头下(也就是第1盘面的第一磁道)的所有扇区,然后,是同一柱面的下一磁头,……,一个柱面存储满后就推进到下一个柱面,直到把文件内容全部写入磁盘.系统也以相同的顺序读出数据。读出数据时通过告诉磁盘控制器要读出扇区所在的柱面号、磁头号和扇区号(物理地址的三个组成部分)进行。磁盘控制器则直接使磁头部件步进到相应的柱面,选通相应的磁头,等待要求的扇区移动到磁头下。在扇区到来时,磁盘控制器读出每个扇区的头标,把这些头标中的地址信息与期待检出的磁头和柱面号做比较(即寻道),然后,寻找要求的扇区号.待磁盘控制器找到该扇区头标时,根据其任务是写扇区还是读扇区,来决定是转换写电路,还是读出数据和尾部记录。找到扇区后,磁盘控制器必须在继续寻找下一个扇区之前对该扇区的信息进行后处理。如果是读数据,控制器计算此数据的ECC码,然后,把ECC码与已记录的ECC码相比较。如果是写数据,控制器计算出此数据的ECC码,与数据一起存储。在控制器对此扇区中的数据进行必要处理期间,磁盘继续旋转.由于对信息的后处理需要耗费一定的时间,在这段时间内,磁盘已转了相当的角度.交叉因子的确定是一个系统级的问题。一个特定硬盘驱动器的交叉因子取决于:磁盘控制器的速度、主板的时钟速度、与控制器相连的输出总线的操作速度等。如果磁盘的交叉因子值太高,就需多花一些时间等待数据在磁盘上存入和读出。如果交叉因子值太低,就会大大降低磁盘性能。前面已经述及,系统在磁盘上写入信息时,写满一个磁道后转到同一柱面的下一个磁头,当柱面写满时,再转向下一柱面。从同一柱面的一个磁道到另一个磁道,从一个柱面转到下一个柱面,每一个转换都需要时间,在此期间磁盘始终保持旋转,这就会带来一个问题:假定系统刚刚结束对一个磁道前一个扇区的写入,并且已经设置了最佳交叉因子比值,现在准备在下一磁道的第一扇区写入,这时,必须等到磁头转换好,让磁头部件重新准备定位在下一道上。如果这种操作占用的时间超过了一点,尽管是交叉存取,磁头仍会延迟到达。这个问题的解决办法是以原先磁道所在位置为基准,把新的磁道上全部扇区号移动约一个或几个扇区位置,这就是磁头扭斜。磁头扭斜可以理解为柱面与柱面之间的交叉因子,已由生产厂设置好,用户一般不用去改变它.磁头扭斜的更改比较困难,但是,它们只在文件很长、超过磁道结尾进行读出和写入时才发挥作用,所以,扭斜设置不正确所带来的时间损失比采用不正确的扇区交叉因子值带来的损失要小得多。交叉因子和磁头扭斜可用专用工具软件来测试和更改.更具体的内容这里就不再详述,毕竟现在很多用户都没有见过这些参数。扇区号存储在扇区头标中,扇区交叉因子和磁头扭斜的信息也存放在这里。最初,硬盘低级格式化程序只是行使有关磁盘控制器的专门职能来完成设置任务。由于这个过程可能破坏低级格式化的磁道上的全部数据,也极少采用。扇区交叉因子由写入到扇区头标中的数字设定,所以,每个磁道可以有自己的交叉因子。在大多数驱动器中,所有磁道都有相同的交叉因子。但有时因为操作上的原因,也可能导致各磁道有不同的扇区交叉因子。如在交叉因子重置程序工作时,由于断电或人为中断,就会造成一些磁道的交叉因子发生了改变,而另一些磁道的交叉因子没有改变。这种不一致性对计算机不会产生不利影响,只是有最佳交叉因子的磁道要比其他磁道的工作速度更快。

1.3硬盘的逻辑结构(3)1。4硬盘的容量硬盘的容量由盘面数(磁头数)、柱面数和扇区数决定,其计算公式为:硬盘容量=盘面数×柱面数×扇区数×512字节关于硬盘容量的大小,经常有人感到迷惑,为什么同一块硬盘,有时显示40GB,有时却只有37GB,这主要是表示方法不标准造成的,如1MB到底代表1000000字节还是代表1048576字节。有些软件把1000000字节作为1MB,如DM等,硬盘上标称容量一般也按1MB=1000000字节计算;而在另一些软件中,1MB是1048576字节,如Fdisk等。一些书籍或报刊杂志上发表的论文,硬盘容量的单位也不统一,有以1000000字节为1MB的,也有把1048576字节作为1MB的。依据计算机表示数据的特点、数制的表示方式及计算机本身的发展,硬盘容量单位应该以2的多少次方表示比较符合实际情况,即以KB(Kilobyte),MB(Megabyte),GB(Gigabyte),TB(Terabyte),PB(Petabyte),EB(Exabyte)为单位,各种单位之间的换算关系如下:1KB=210B=1024Byte1MB=210KB=220B=1048576Byte1GB=210MB=220KB=230B=1073741824Byte1TB=210GB=220MB=230KB=240B=16Byte1PB=210TB=220GB=230MB=240KB=250B=1125899906842624Byte1EB=210PB=220TB=230GB=240MB=250KB=260B=6846976Byte1.5数制与码制用数字量表示物理量的大小时,一位数码往往不够用。因而,必须用进位计数的方法组成多位数码使用。通常把多位数码中每一位的构成方法以及从低位到高位的进位规则称为数制。常用的数制有以下4种。1.十进制十进制是日常生活和工作中最常使用的进位计数制.在这种进位计数制中,每一位有0~9十个数码,所以,计数的基数是10.超过9的数必须用多位数表示,其中低位数和相邻高位数之间的关系是“逢十进一",故称为十进制.例如:143.75=1×102+4×101+3×100+7×10–1+5×10–2所以,任意一个正的十进制数D均可展开为:其中ki是第i位的系数,它可能是0~9十个数码中的任何一个。若整数部分的位数是n,小数部分的位数是m,则i包含从n–1到0的所有正整数和从–1到–m的所有负整数。若以N取代式(1—1)中的10,即可得到任意进制(N进制)数展开式的普遍形式:式中i的取值范围与式(1-1)中的规定相同,N称为计数的基数,ki为第i位的系数,Ni称为第i位的权。2。二进制在数字电路中应用最广的是二进制。在二进制数中,每一位仅有0和1两个可能的数码,所以,计数基数为2。低位和相邻高位之间的进位关系是“逢二进一”,故得名二进制。根据式(1-2),任何一个二进制数均可展开为:例如:101。11=1×22+0×21+1×20+1×2–1+1×2–23.八进制在八进制数中,每一位用0~7这八个数码表示,所以,计数基数为8。低位与相邻高位之间的进位关系是“逢八进一”。任何一个八进制数都可以按式(1-2)展开为:例如:37。41=3×81+7×80+4×8–1+1×8–2由于同一个数用八进制写出来的结果要比用二进制写出来的结果简单得多,而且二进制与八进制之间的互相转换又极为方便,所以,有时在书写计算机程序时使用八进制。4。十六进制十六进制数的每一位有十六种可能的状态,分别用0~9,A(10),B(11),C(12),D(13),E(14)和F(15)表示.因此,任意一个十六进制数均可展开为:例如:2A.7F=2×161+10×160+7×16–1+15×16–2由于目前在微型计算机中普遍采用八位和十六位二进制并行运算,而八位和十六位二进制数可以用两位和四位十六进制数表示,因而用十六进制符号书写程序十分方便。同时,十六进制数和二进制数之间的转换又非常简单,这就使得十六进制数的应用比八进制数更加广泛。有关各种数制间互相转换的方法在计算机原理课程中都有详细介绍,读者若有兴趣,请自行阅读有关书籍。对于数据恢复技术,数制是最基础的知识,所以,这里简要地介绍了一下。尤其是十六进制,因为很多操作都通过十六进制来完成.不同的数码不仅可以用来表示数量的不同,而且还能用来表示不同的事物。在后一种情况下,这些数码将不再表示数量大小的差别,而只是不同事物的代号,称为代码。为便于记忆和查找,在编制代码时总要遵循一定的规则,这些规则称为码制.例如,在用四位二进制数码表示一位十进制数的0~9这十个状态时,经常采用表1—1所示的编码规则。不难看出,如果把每一个代码都看做一个四位二进制数,各位的权依次为8,4,2,1,那么,每个代码的数值恰好等于它所表示的十进制数的大小。因此,又将这种码制称做8421编码。

在计算机系统中,提到的各种编号都是一种码制,这时的数字是序数,而不是基数,基数表示大小,序数只是一个代号,如主板有两个IDE接口,可接四个IDE设备,这里“两个”和“四个”是基数,表示的是事物的多少或大小,而两个IDE接口标注为IDE1和IDE2,所接的四个IDE设备分别称为Device0,1,2和3,这里的IDE1和IDE2,Device0,1,2和3就是序数,只是用数字来对事物进行区分,而不是用来表示事物的大小或多少。需要记住的是柱面和磁头从“0”开始编号,从柱面“0”到柱面“6”,共7个柱面,从磁头“0"到磁头“5”,共6个磁头,而扇区从“1”开始编号,从扇区“1"到扇区“63”,共63个扇区.表1-18421代码的编码表十进制数代码十六进制DCBA012345678910111213141500000000111111110000111100001111001100110011001101010101010101010123456789ABCDEF权8421硬盘知识详解(一)作者:ljd2683904日期:2006—09-0802:03:13ﻫ责任编辑:sysop本文出自网易社区(),如需转载,请联系原作者或网易硬盘基本知识ﻫ硬盘的DOS管理结构ﻫ1.磁道,扇区,柱面和磁头数ﻫ硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可ﻫ记录信息.盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储128×2的N次方(N=0.1.2.3)字节信息.在DOS

中每扇区是128×2的2次方=512字节,盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。硬盘中,不同盘片相同半径

的磁道所组成的圆柱称为柱面。磁道与柱面都是表示不同半径的圆,在许多场合,磁道和柱面可以互换使用,我们知道,每个磁

盘有两个面,每个面都有一个磁头,习惯用磁头号来区分。扇区,磁道(或柱面)和磁头数构成了硬盘结构的基本参数,帮这些ﻫ参数可以得到硬盘的容量,基计算公式为:ﻫ存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数

要点:(1)硬盘有数个盘片,每盘片两个面,每个面一个磁头

(2)盘片被划分为多个扇形区域即扇区

(3)同一盘片不同半径的同心圆为磁道

(4)不同盘片相同半径构成的圆柱面即柱面

(5)公式:存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数ﻫ(6)信息记录可表示为:××磁道(柱面),××磁头,××扇区ﻫ2.簇ﻫ“簇”是DOS进行分配的最小单位.当创建一个很小的文件时,如是一个字节,则它在磁盘上并不是只占一个字节的空间,ﻫ而是占有整个一簇。DOS视不同的存储介质(如软盘,硬盘),不同容量的硬盘,簇的大小也不一样。簇的大小可在称为磁盘ﻫ参数块(BPB)中获取。簇的概念仅适用于数据区。

本点:(1)“簇"是DOS进行分配的最小单位。

(2)不同的存储介质,不同容量的硬盘,不同的DOS版本,簇的大小也不一样。ﻫ(3)簇的概念仅适用于数据区.

3。扇区编号定义:绝对扇区与DOS扇区ﻫ由前面介绍可知,我们可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域,或是说柱面/磁头/扇区与磁盘上每一个扇区有

一一对应关系,通常DOS将“柱面/磁头/扇区”这样表示法称为“绝对扇区"表示法。但DOS不能直接使用绝对扇区进行磁盘上的

信息管理,而是用所谓“相对扇区"或“DOS扇区”.“相对扇区”只是一个数字,如柱面140,磁头3,扇区4对应的相对扇区号ﻫ为2757。该数字与绝对扇区“柱面/磁头/扇区"具有一一对应关系.当使用相对扇区编号时,DOS是从柱面0,磁头1,扇区1开始

(注:柱面0,磁头0,扇区1没有DOS扇区编号,DOS下不能访问,只能调用BIOS访问),第一个DOS扇区编号为0,该磁道上剩余

的扇区编号为1到16(设每磁道17个扇区),然后是磁头号为2,柱面为0的17个扇区,形成的DOS扇区号从17到33.直到该柱面的

所有磁头.然后再移到柱面1,磁头1,扇区1继续进行DOS扇区的编号,即按扇区号,磁头号,柱面号(磁道号)增长的顺序连续

地分配DOS扇区号。ﻫ公式:记DH—-第一个DOS扇区的磁头号ﻫDC——第一个DOS扇区的柱面号ﻫDS—-第一个DOS扇区的扇区号

NS-—每磁道扇区数ﻫNH--磁盘总的磁头数ﻫ则某扇区(柱面C,磁头H,扇区S)的相对扇区号RS为:

RS=NH×NS×(C-DC)+NS×(H-DH)+(S-DS)ﻫ若已知RS,DC,DH,DS,NS和NH则ﻫS=(RSMODNS)+DS

H=((RSDIVNS)MODNH)+DHﻫC=((RSDIVNS)DIVNH)+DC

要点:(1)以柱面/磁头/扇区表示的为绝对扇区又称物理磁盘地址

(2)单一数字表示的为相对扇区或DOS扇区,又称逻辑扇区号ﻫ(3)相对扇区与绝对扇区的转换公式ﻫ4。DOS磁盘区域的划分ﻫ格式化好的硬盘,整个磁盘按所记录数据的作用不同可分为主引导记录(MBR:MainBootRecord),Dos引导记录(DBRos文件分配表(FAT:Table),根目录(BD:BootDirectory)和数据区.前5个重要信息在磁盘的外磁道上,原因是外圈周长总大于内圈周长,也即外圈存储密度要小些,可伤心性高些。

要点:(1)整个硬盘可分为MBR,DBR,FAT,BD和数据区.ﻫ(2)MBR,DBR,FAT,和BD位于磁盘外道。ﻫ5.MBRﻫMBR位于硬盘第一个物理扇区(绝对扇区)柱面0,磁头0,扇区1处。由于DOS是由柱面0,磁头1,扇区1开始,故MBR不属于ﻫDOS扇区,DOS不能直接访问.MBR中包含硬盘的主引导程序和硬盘分区表.分区表有4个分区记录区。记录区就是记录有关分区信

息的一张表.它从主引导记录偏移地址01BEH处连续存放,每个分区记录区占16个字节。

分区表的格式ﻫ分区表项的偏移意义占用字节数ﻫ00引导指示符1Bﻫ01分区引导记录的磁头号1Bﻫ02分区引导记录的扇区和柱面号2Bﻫ04系统指示符1B

05分区结束磁头号1B

06分区结束扇区和柱面号2Bﻫ08分区前面的扇区数4B

0C分区中总的扇区数4B

4个分区中只能有1个活跃分区,即C盘.标志符是80H在分区表的第一个字节处。若是00H则表示非活跃分区。例如:ﻫ800101000BFE3F813F000000C3DD1F00ﻫ0000018205FEBF0C02DE1F000E906100

00000000000000000000000000000000

00000000000000000000000000000000

要点:(1)MBR位于硬盘第一个物理扇区柱面0,磁头0,扇区1处.不属于DOS扇区,ﻫ(2)主引导记录分为硬盘的主引导程序和硬盘分区表。ﻫ6.DBR

DBR位于柱面0,磁头1,扇区1,即逻辑扇区0.DBR分为两部分:DOS引导程序和BPB(BIOS参数块)。其中DOS引导程序完成

DOS系统文件(IO.SYS,MSDOS.SYS)的定位与装载,而BPB用来描述本DOS分区的磁盘信息,BPB位于DBR偏移0BH处,共13字节。ﻫ它包含逻辑格式化时使用的参数,可供DOS计算磁盘上的文件分配表,目录区和数据区的起始地址,BPB之后三个字提供物理格

式化(低格)时采用的一些参数.引导程序或设备驱动程序根据这些信息将磁盘逻辑地址(DOS扇区号)转换成物理地址(绝对ﻫ扇区号)。BPB格式

序号偏移地址意义

103H-0AHOEM号

20BH-0CH每扇区字节数

30DH每簇扇区数

40EH-0FH保留扇区数

510HFAT备份数

611H-12H根目录项数

713H-14H磁盘总扇区数

815H描述介质ﻫ916H-17H每FAT扇区数ﻫ1018H-19H每磁道扇区数ﻫ111AH-1BH磁头数

121CH-1FH特殊隐含扇区数

1320H-23H总扇区数

1424H-25H物理驱动器数ﻫ1526H扩展引导签证

1627H—2AH卷系列号

172BH-35H卷标号ﻫ1836H—3DH文件系统号

DOS引导记录公式:ﻫ文件分配表≡保留扇区数ﻫ根目录≡保留扇区数+FAT的个数×每个FAT的扇区数ﻫ数据区≡根目录逻辑扇区号+(32×根目录中目录项数+(每扇区字节数-1))DIV每扇区字节数

绝对扇区号≡逻辑扇区号+隐含扇区数ﻫ扇区号≡(绝对扇区号MOD每磁道扇区数)+1ﻫ磁头号≡(绝对扇区号DIV每磁道扇区数)MOD磁头数

磁道号≡(绝对扇区号DIV每磁道扇区数)DIV磁头数ﻫ要点:(1)DBR位于柱面0,磁头1,扇区1,其逻辑扇区号为0ﻫ(2)DBR包含DOS引导程序和BPB。ﻫ(3)BPB十分重要,由此可算出逻辑地址与物理地址。

7.文件分配表

文件分配表是DOS文件组织结构的主要组成部分。我们知道DOS进行分配的最基本单位是簇.文件分配表是反映硬盘上所ﻫ有簇的使用情况,通过查文件分配表可以得知任一簇的使用情况。DOS在给一个文件分配空间时总先扫描FAT,找到第一个可

用簇,将该空间分配给文件,并将该簇的簇号填到目录的相应段内。即形成了“簇号链”。FAT就是记录文件簇号的一张表.硬盘主引导记录(MBR)及其结构详解收藏硬盘的0柱面、0磁头、1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR)。该记录占用512个字节,它用于硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统区。1.MBR的读取硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它.但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。用INT13H的读磁盘扇区功能的调用参数如下:入口参数:AH=2(指定功能号)AL=要读取的扇区数DL=磁盘号(0、1-软盘;80、81—硬盘)DH=磁头号CL高2位+CH=柱面号CL低6位=扇区号CS:BX=存放读取数据的内存缓冲地址出口参数:CS:BX=读取数据存放地址错误信息:如果出错CF=1AH=错误代码用DEBUG读取位于硬盘0柱面、0磁头、1扇区的操作如下:A>DEBUG—A100XXXX:XXXXMOVAX,0201(用功能号2读1个扇区)XXXX:XXXXMOVBX,1000(把读出的数据放入缓冲区的地址为CS:1000)XXXX:XXXXMOVCX,0001(读0柱面,1扇区)XXXX:XXXXMOVDX,0080(指定第一物理盘的0磁头)XXXX:XXXXINT13XXXX:XXXXINT3XXXX:XXXX(按回车键)—G=100(执行以上程序段)-D100011FF(显示512字节的MBR内容)2.MBR的组成一个扇区的硬盘主引导记录MBR由4个部分组成。主引导程序(偏移地址0000H—-0088H),它负责从活动分区中装载,并运行系统引导程序。出错信息数据区,偏移地址0089H-—00E1H为出错信息,00E2H--01BDH全为0字节。分区表(DPT,DiskPartitionTable)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。结束标志字,偏移地址01FE——01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。0000-0088MasterBootRecord主引导程序主引导程序0089-01BD出错信息数据区数据区01BE—01CD分区项1(16字节)分区表01CE-01DD分区项2(16字节)01DE-01ED分区项3(16字节)01EE—01FD分区项4(16字节)01FE55结束标志01FFAA3。MBR中的分区信息结构占用512个字节的MBR中,偏移地址01BEH-—01FDH的64个字节,为4个分区项内容(分区信息表)。它是由磁盘介质类型及用户在使用FDISK定义分区时确定的.在实际应用中,FDISK对一个磁盘划分的主分区可少于4个,但最多不超过4个。每个分区表的项目是16个字节,其内容含义如下表所示。存贮字节位内容及含义第1字节引导标志。若值为80H表示活动分区,若值为00H表示非活动分区。第2、3、4字节本分区的起始磁头号、扇区号、柱面号。其中:磁头号-—第2字节;扇区号——第3字节的低6位;柱面号-—为第3字节高2位+第4字节8位.第5字节分区类型符。00H-—表示该分区未用(即没有指定);06H--FAT16基本分区;0BH—-FAT32基本分区;05H——扩展分区;07H——NTFS分区;0FH——(LBA模式)扩展分区(83H为Linux分区等)。第6、7、8字节本分区的结束磁头号、扇区号、柱面号。其中:磁头号—-第6字节;扇区号——第7字节的低6位;柱面号——第7字节的高2位+第8字节.第9、10、11、12字节本分区已用的扇区数。第13、14、15、16字节本分区的总扇区数。4.MBR的主要功能及工作流程在CPU上电之后,若由硬盘启动,则BIOS将硬盘的主引导记录(位于0柱面、0磁道、1扇区)读入7C00处,然后将控制权交给主引导代码.主引导代码的任务包括:扫描分区表,找到一个激活(可引导)分区;找到激活分区的起始扇区;将激活分区的引导扇区装载到内存7C00处;将控制权交给引导扇区代码;如果主引导代码无法完成上述任务,它将显示以下错误信息之一:Noactivepartition。Invalidpartitiontable。Errorloadingoperatingsystem。Missingoperatingsystem。机器加电或按reset键后都要进行系统复位,复位后CS=FFFFH,IP=0000H,那么自然就从FFFF:0000H处开始执行指令,这个地方只有一条JMP指令跳转到系统自检程序处,系统自检完成后把软盘的第一个扇区(如果由软盘启动)或者硬盘的第一个扇区,即MBR扇区(如果由硬盘启动)读入到0:7C00H处,然后把控制权交出,从0:7C00H处继续执行。下面就是硬盘的MBR代码分析:其中的引导扇区是指硬盘相应分区的第一个扇区,是和操作系统有关的。操作系统的引导是由它来完成的,而MBR并不负责,MBR和操作系统无关。引导扇区的任务是把控制权转交给操作系统的引导程序.程序流程:1将程序代码由0:7C00H移动到0:0600H(注,BIOS把MBR放在0:7C00H处)2搜索可引导分区,即80H标志成功:goto3失败:跳入ROMBASIC无效分区表:goto53读引导扇区失败:goto5成功:goto44验证引导扇区最后是否为55AAH失败:goto5成功:goto65打印错误进入无穷循环6跳到0:7C00H进行下一步启动工作5、硬盘逻辑驱动器的分区表链结构硬盘是由很多个512字节的扇区组成,而这些扇区会被组织成一个个的“分区”.硬盘的分区规则是:一个分区的所有扇区必须连续,硬盘可以有最多4个物理上的分区,这4个物理分区可以时个主分区或者3个主分区加一个扩展分区。在DOS/Windows管理下的扩展分区里,可以而且必须再继续划分逻辑分区(逻辑盘)。扩展分区的信息位于硬盘分区表(DPT)中,而逻辑驱动器的信息则位于扩展分区的起始扇区,即该分区的起始地址(面/扇区/磁道)所对应的扇区,该扇区中的信息与硬盘主引导扇区的区别是不包含MBR,而16字节的分区信息则表示的是逻辑驱动器的起始和结束地址等.MBR(MasterBootRecord)主引导记录包含两部分的内容,前446字节为启动代码及数据,而从446(0x1BE)开始则是分区表,分区表由四个分区项组成,每个分区项数据为16字节,记录了启动时需要的分区参数.本文来自CSDN博客,转载请标明出处:ﻫ图1-8盘片结构及磁头高度示意图③磁头工作时与盘片不直接接触,所以,磁头的加载较小,磁头可以做得很精致,检测磁道的能力很强,可大大提高位密度。④磁盘表面非常平整光滑,可以做镜面使用。硬盘结构详解时间:2009-04-1322:30来源:作者:glisten点击:197次硬盘结构详解FAT结构是所有按照FAT文件系统来组织存储单元的介质都必须遵守的一种文件系统格式,而对于不同的介质,其结构又有些差异,下面介绍一下文件系统格式为FAT的硬盘的结构.硬盘上的数据按照其不同的特点和作用大致可分为5部分:MBR区、DBR硬盘结构详解ﻫ

FAT结构是所有按照FAT文件系统来组织存储单元的介质都必须遵守的一种文件系统格式,而对于不同的介质,其结构又有些差异,下面介绍一下文件系统格式为FAT的硬盘

的结构。ﻫ硬盘上的数据按照其不同的特点和作用大致可分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区。下列分别介绍:ﻫ0磁道0柱面1

扇区

MBR区(主引导记录区)ﻫ0磁道1柱面1

扇区ﻫDBR区(操作系统引导记录区)

0磁道1柱面2ﻫ扇区~ﻫ0磁道1柱面

2+i—1扇区ﻫFAT区(文件分配表区)ﻫ视磁盘容量而定,其占用的扇区数为i,

磁盘总空间/32K=总簇数,对于FAT16,则所占扇区数ﻫi=(总簇数*2/512),每扇区字节数为512字节

0磁道1柱面

2+i扇区~ﻫ0磁道1柱面

2+2i-1扇区ﻫ第二个FAT区,内容与第一个FAT区一样

0磁道1柱面ﻫ2+2i扇区~ﻫ0磁道1柱面ﻫ2+2i+j-1扇区ﻫDIR区(根目录区)

视磁盘根目录项而定,其占用扇区数为j

0磁道1柱面ﻫ2+2i+j扇区ﻫDATA区(数据区)

文件数据真正开始存放的地方磁盘上的数据结构

(1)MBR(MainBootRecord)区ﻫ按其字面上的理解即为主引导记录区,位于整个硬盘的0磁道0柱面1扇区.不过,在总共512字节的主引导扇区中,MBR只占用了其中的446个字节(偏移0-偏移1BDH),另外的64个字节(偏移1BEH-偏移1FDH)交给了DPT(DiskPartitionTable硬盘分区表)

(见下表),最后两个字节"55,AA"(偏移1FEH-偏移1FFH)是分区的结束标志。这个整体构成了硬盘的主引导扇区。大致的结构如下:ﻫ0000ﻫ~

01BD

MBR

主引导记录(446字节)ﻫ01BE

~ﻫ01FD

四个分区信息表,ﻫ每个分区信息表占16字节,ﻫ总共64字节

01FE

01FF

55ﻫAA

MBR区的结构ﻫ主引导记录中包含了硬盘的一系列参数和一段引导程序。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后引导具有激活标志的分区上的操作系统,并将控制权交给启动程序.MBR是由分区程序(如)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而实现多系统共存。MBR中可以定义四个分区信息表,每个分区信息表的16个字节定义如下:

图片1图分区信息表结构比如,以一个实例来直观地介绍分区信息表中的内容:例:800101000BFEBFFC3F0000007E86BB00最前面的”80"是一个分区的激活标志,表示系统可引导;"010100"表示分区开始的磁头号为01,开始的扇区号为01,开始的柱面号为00;"0B”表示分区的系统类型是FAT32,其他比较常用的有04(FAT16)、07(NTFS);”FEBFFC”表示分区结束的磁头号为254,分区结束的扇区号为63、分区结束的柱面号为764;"3F000000”表示首扇区的相对扇区号为63;"7E86BB00"表示总扇区数为12289622。(2)DBR区DBR(DosBootRecord)是操作系统引导记录区的意思。它通常位于硬盘的0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区,它包括一个引导程序和一个被称为BPB(BiosParameterBlock)的本分区的参数记录表。引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区根目录前两个文件是不是操作系统的引导文件(以DOS为例,即是Io。sys和Msdos。sys).如果确定存在,就把其读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数,分配单元的大小等重要参数,如在FAT结构中所介绍的那样。(3)FAT区在DBR之后的即是FAT(Table文件分配表)区。文件分配表负责给文件分配空间,故称之为文件分配表。以簇为单位的存储方法存在着必然的缺陷,即总是无法占满整簇的空间,存在着空闲的空间.簇的大小与磁盘的规格有关,一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64……(4)DIR区DIR(Directory)是根目录区,紧接着第二FAT表(即备份的FAT表)之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。(5)数据(DATA)区数据区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘上的大部分数据空间。硬盘数据结构详解▲主引导扇区

主引导区是硬盘的自留地(0柱0面1扇区--63扇区).第一个就是主引导扇区,剩下62个是保留扇区。多系统引导工具、逻辑锁等一般会利用保留扇区。硬盘主引导扇区则指的是硬盘的物理地址0柱0面1扇区,是用FDISK进行硬盘分区时产生的,它属于整个硬盘而不属于某个独立的DOS分区,是硬盘正确引导和使用的必要条件。它包括硬盘主引导记录MBR(MainBootRecord)和分区表DPT(DiskPartitionTable)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如DOS的Fdisk.exe)产生的,不同的操作系统可能这个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述的任务即可,这也是为什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写,所以才出现了很多的引导区病毒)。

▲操作系统引导扇区ﻫOBR(OSBootRecord)即操作系统引导扇区,通常位于硬盘的0柱1面1扇区(这是对于DOS来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BIOSParameterBlock)的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不同.引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如MSDOS或者起源于MSDOSWin9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一个文件读入内存,并把控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(AllocationUnit,以前也称之为簇)的大小等重要参数OBR由高级格式化程序产生(例如DOS的)。

▲文件分配表ﻫFAT(Table)即文件分配表,是DOS/Win9x系统的文件寻址系统,为了数据安全起见,FAT一般做两个,第二FAT为第一FAT的备份,FAT区紧接在OBR之后,其大小由本分区的大小及文件分配单元的大小决定。关于FAT的格式历来有很多选择Microsoft的DOS及Windows采用我们所熟悉的FAT12、FAT16和FAT32格式,但除此以外并非没有其它格式的FAT,像WindowsNT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。

▲目录区ﻫDIR是Directory即根目录区的简写,DIR紧接在第二FAT表之后,只有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。DIR记录着每个文件(目录)的起始单元(这是最重要的)、文件的属性等.定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了.在DIR区之后,才是真正意义上的数据存储区,即DATA区.ﻫ▲数据区ﻫDATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义.在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,只是重写了FAT表而已,至于分区硬盘,也只是修改了MBR和OBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因.但即便如此,如MBR/OBR/FAT/DIR之一被破坏的话,也足够咱们那些所谓的DIY老鸟们忙乎半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如DOS下的DiskEdit),只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那就是你没有覆盖这个文件……)。可见:在实际的文件之前有很多对整个数据区和数据区中的文件进行描述的数据,真正的数据区只是[color=Red]枯燥的二进制代码[/color]。一个文件的起始和结束是在FAT(文件分配表)和DIR(根目录区)中说明的。|)硬盘主引导记录详解作者:网易学院论坛来源:网易学院论坛

ﻫ阅读数211人次

,

2006-3-1614:52:00

硬盘的数据结构对于一些朋友来说总是很神密!为什么我们删除了的文件用软件能找到?为什么我们格式化了的硬盘数据还能找回来?要回答这一切,你就得对硬盘的数据结构有个清醒的认识。硬盘上的数据由五大部分组成,它们分别是:MBR区、DBR区,FAT区,DIR区和DATA区。1.MBR(MainBootRecord)区,即主引导记录区,位于整个硬盘的0磁道0柱面1扇区.2.DBR(DosBootRecord)区,操作系统引导记录区。位于硬盘的0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区。3.FAT(Table文件分配表)区;4.DIR(Directory)根目录区,记录着根目录下每个文件(目录)的起始单元,文件的属性等;5.DATA区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘上的大部分数据空间.了解了硬盘数据的基本结构,今天我们把重点放在mbr所在的扇区:主引导扇区.主引导扇区包括:mbr,dpt和结束标志.位于硬盘的0磁道0柱面1扇区,用diskman可以读出其中的内容,下面是一次操作的结果:表一:0123456789ABCDEF00000000EB4890D0BC007CFB5007501FFCBE1B7C00000010BF1B065057B9E501F3A00000020382C7C09751583C610E2F5CD188B148B00000030EE83C610497416382C74F000000408000008068B676000008FAEA507C00000000005031C08ED88ED0BC0020FBA0407C3C000000600288C252BE817DE83F01F0000007041BBAA55CD13725681FB55AA7550A041000000807C84C00000090044200CD137237668B4C10BE057CC644000000A0FF01668B1E447CC7041000C744020100000000B066895C08C7440600706631C000000C089440CB442CD137205BB0070EB7DB408000000D0CD13730AF6C2800F84E800E98D00BE05000000E07CC644FF006631C088F0406689440431000000F0D288CAC1E20288E888F44089440831C00000010088D0C0E80266890466A1447C6631D26600000110F73488540A6631D266F7740488540B8900000120440C3B44087D3C8A540DC0E2068A00000130FEC108D18A6C0C5A0000014031DBB80102CD13722A8CC38E06487C000001501EB900018EDB31F631FFFCF3A51F0000016026427CBE877DE84000EB0EBE8C7DE8380000017000EB06BE967DE83000BE9B7DE82A00EB00000180FE47525542200047656F6D004861726400000190204469736B005265616400204572726F000001A07200BB0100B40ECD10AC3C0075F4C000001B000000000000000004CA64CA600008001000001C001000BFE3FD83F0000005A3135000000000001D001D90FFEFFFF9931350004FFFB000000000001E000000000000000000000000000000000000001F0000000000000000000000000000055AA这块10.2G(以下显示为9766MB,误差原因不用我解释了吧?)的硬盘共分了四个区:分区结构如下:主引导扇区中前446字节—-偏移地址从0000H—01BDH为mbr区,存放着主引导程序,从上面的显示中,读者可能已经看出,这个硬盘以linux系统的grub为引导程序。接下来的64字节为硬盘分区表—-dpt,偏移地址从01BEH—01FDH,共分为四个分区表项,每个分区表项占16字节,表示一个分区,从这里大家就可以知道为什么硬盘只能分四个主分区了吧?但有时我们需要更多的分区来规划我们的硬盘,为解决这个问题,就把这四个分区表项中的一个定义为扩展分区(与主分区是并列关系),扩展分区中又可以定义逻辑分区(与扩展分区是包含与被包含的关系)。但读者不要以为这些信息都在这一个16字节的分区表项中。事实上是:被定义为扩展分区的这一个分区表项只包含了指向逻辑分区的信息。而逻辑分区的分区表在其它的扇区中存放!本文重点介绍dpt中的内容,上面已经提到,dpt分为四个分区表项,每个分区表项占16个字节,下面着重讲述这16个字节是怎么分配的。表三:第1字节引导标志,该值为80H表示为可自举分区(活动分区,仅有一个),该值为00H表示其余分区第2字节分区起始磁头第3字节低6位是分区起始扇区,高2位是分区起始的柱面的头两位第4字节分区起始柱面的低8位第5字节系统标志第6字节分区终止磁头第7字节低6位为分区终止扇区,高2位为终止柱面的前2位第8字节分区终止柱面的低8位。第9-12字节本分区前的扇区数,低位字节在前(注:不是低位在前)第13-16字节本分区总的扇区数,低位字节在前现在根据上面的列表详细解释一下:我们提取出下面四个分区表项:表四:分区|字节序号表项|123456789101112131415161:|800101000BFE3FD83F0000005A3135002:|000001D90FFEFFFF9931350004FFFB003:|000000000000000000000000000000004:|00000000000000000000000000000000由于数据以16进制显示,每个数字占一个字节的四位,所以两个数字占一个字节.对于第一个分区表项:第1字节为80,表示活动分区;第2字节为01,十进制为1,表示起始磁头号;第3字节为01,二进制为00000001,低6位000001,对应的十进制为1,表示起始扇区;第4字节为00,二进制为00000000,与第三字节的高2位00组成0000000000,十进制为0,表示起始柱面;第5字节为0B,为系统标志;第6字节为FE,十进制为254,表示终止磁头;第7字节为3F,二进制为00111111,低6位为111111,转换为十进制为63,表示终止扇区;第8字节为D8,二进制为11011000,与第7字节的高2位00组成0011011000,十进制为216,表示终止柱面;第9-12字节为3F000000,按低位字节在前的原则排列为:0000003F,转换为十进制为63,表示该分区前的扇区数目;第13-16字节为5A313500,按低位字节在前的原则排列为:0035315A,转换为十进制为3486042,表示该分区占用的扇区数目。我们可以与表2对照,发现两者完全统一!同理,我们还可以分析第2个分区表项,这就交给感兴趣的读者自己完成吧。在第3和第4个分区表项中,所以数据都为0,表示这两个分区表项没有分配。最后两个字节-—偏移地址从01FEH-01FFH,为结束标志,通常为55AA,如果改为其它值,则硬盘可能不被引导。通过以上的讲解,你是不是对硬盘的数据结构又有了更深的认识?对于使用windows和linux双系统的用户,经常要与mbr打交道,有很多网友问:装了linux和windows双系统,现在又不想使用linux了,于是把linux的分区格式化为fat32回收,但当初装在mbr的引导信息老是去不掉。这里我可以告诉你一个方法,就是用windows98启动盘启动电脑,然后运行fdisk/mbr命令就可以了,这条命令是重建mbr(前446字节),但并不破坏dpt中的数据,也就是并不破坏硬盘的分区表,可以安全使用。你可以在使用这条命令前后各查看一下主引导扇区,就会发现从447字节开始以后的数据都没有改变。如果你没有diskman这个软件,下面的C程序一样可以帮你搞掂!以下是程序的源码:#include〈bios。h〉#include<stdio。h>intmain(){registerinti;unsignedcharbuffer[512]={0};biosdisk(2,0x80,0,0,1,1,buffer);for(i=0;i<512;i++){if(!(i%8)){printf(”");if(!(i%16)){printf("\n”);printf(”%04x:",i);}}printf(”%02x",buffer);}}在turboc2.0中可编译通过。运行biosdisk()函数,你还可进一步编写备份mbr,恢复mbr的程序或把mbr清0的程序,是不是很想试试。硬盘数据结构与数据恢复详解硬盘数据恢复教程ﻫ硬盘的数据结构ﻫ初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使用。一个完整硬盘的数据应该包括五部分:MBR,DBR,FAT,DIR区和DATA区。其中只有主引导扇区是唯一的,其它的随你的分区数的增加而增加。

主引导扇区ﻫ主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(MainBootRecord)和分区表DPT(DiskPartitionTable)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如DOS的Fdisk。exe)产生的,不同的操作系统可能这个扇区是不尽相同.如果你有这个意向也可以自己去编写一个,只要它能完成前述的任务即可,这也是为什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写,所以才出现了很多的引导区病毒).ﻫ操作系统引导扇区

OBR(OSBootRecord)即操作系统引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DOS来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BIOSParameterBlock)的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如MSDOS或者起源于MSDOS的Win9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一个文件读入内存,并把控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(AllocationUnit,以前也称之为簇)的大小等重要参数。OBR由高级格式化程序产生(例如DOS的)。ﻫ文件分配表

FAT(Table)即文件分配表,是DOS/Win9x系统的文件寻址系统,为了数据安全起见,FAT一般做两个,第二FAT为第一FAT的备份,FAT区紧接在OBR之后,其大小由本分区的大小及文件分配单元的大小决定。关于FAT的格式历来有很多选择,Microsoft的DOS及Windows采用我们所熟悉的FAT12、FAT16和FAT32格式,但除此以外并非没有其它格式的FAT,像WindowsNT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。ﻫ目录区

DIR是Directory即根目录区的简写,DIR紧接在第二FAT表之后,只有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。DIR记录着每个文件(目录)的起始单元(这是最重要的)、文件的属性等.定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。在DIR区之后,才是真正意义上的数据存储区,即DATA区。

数据区ﻫDATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义.在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,只是重写了FAT表而已,至于分区硬盘,也只是修改了MBR和OBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破坏的话,也足够咱们那些所谓的DIY老鸟们忙乎半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如DOS下的DiskEdit),只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那就是你没有覆盖这个文件……).

硬盘分区方式

我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘.在主分区中,不允许再建立其它逻辑磁盘。ﻫ扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因.由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据.操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。ﻫ所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论