扇区的绝对地址是相对于第0个扇区来说的,可是磁盘的一直在转,而且磁道是完全对称的环形,没有任何一个扇区在物理上是特殊的,系统是怎么寻址磁盘的第0扇区的呢?
一、硬盘的物理结构:
硬盘存储数据是根据电、磁转换原理实现的。硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1),其中盘片和磁头密封在无尘的金属壳中。
硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置然后将数据存储或读取出来。当系统向硬盘写入数据时,磁头中“写数据”电流产生磁场使盘片表面磁性物质状态发生改变,并在写电流磁场消失后仍能保持,这样数据就存储下来了;当系统从硬盘中读数据时,磁头经过盘片指定区域,盘片表面磁场使磁头产生感应电流或线圈阻抗产生变化,经相关电路处理后还原成数据。因此只要能将盘片表面处理得更平滑、磁头设计得更精密以及尽量提高盘片旋转速度,就能造出容量更大、读写数据速度更快的硬盘。这是因为盘片表面处理越平、转速越快就能越使磁头离盘片表面越近,提高读、写灵敏度和速度;磁头设计越小越精密就能使磁头在盘片上占用空间越小,使磁头在一张盘片上建立更多的磁道以存储更多的数据。
二、硬盘的逻辑结构:
硬盘由很多盘片(platter)组成,每个盘片的每个面都有一个读写磁头。如果有N个盘片。就有2N个面,对应2N个磁头(Heads),从0、1、2开始编号。每个盘片被划分成若干个同心圆磁道(逻辑上的,是不可见的。)每个盘片的划分规则通常是一样的。这样每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以电机主轴为轴的柱面(Cylinders),从外至里编号为0、1、2……每个盘片上的每个磁道又被划分为几十个扇区(Sector),通常的容量是512byte,并按照一定规则编号为1、2、3……形成Cylinders×Heads×Sector个扇区。这三个参数即是硬盘的物理参数。我们下面的很多实践需要深刻理解这三个参数的意义。
硬盘存储数据是根据电、磁转换原理实现的。硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1),其中盘片和磁头密封在无尘的金属壳中。
我不知道
不过猜的话一个标记就可以解决了啊,比如在最外或最内的磁道上空出一个磁道,其他的位置全都是空的,在0扇区那个地方做个标记就可以了,磁盘的转速都是非常精确的,所以只要刚开始的时候确定了0扇区,后面就可以不用每次都查找了
以上纯属虚构,等待真正明白的人讲解
零磁道概念问题,涉及硬盘的物理结构和CHS 3D寻址方法。老硬盘一个磁道上分63个扇区,更老的还没63个扇区,物理磁头也就6-8个吧(3-4片盘片),再多硬盘里就装不下了。使用8位寻址方式,8位二进制数的最大值是256(0-255),用于表达磁头数;但实际只用255来表示磁头数。而扇区只有63个(1-63),用6位就可以表达了,还有二位就给柱面去用了,柱面数用10位来表达,达到1024(0-1023)。这也就是所谓的C(柱面)H(磁头)S(扇区) 3D参数。一般书写时按照CHS的次序来做,如0,0,1第一个0是0柱面,第二个0是的磁头(盘面)第三个1是1扇区。硬盘的实际物理磁头只有4个或6个,现在有些硬盘只有一个磁头,仅用一面。如果有块硬盘正好符合上面的8位寻址方式的最大值,可以想象这个硬盘有128片盘片,每个盘面上有1024个磁道,每个磁道上有63个扇区。这就是它的CHS 3D参数。顺便说一下由于受8位寻址的限制,采用8位寻址时的最大寻址空间为8.4G。(1024*255*63*512/1024/1024)目前主板的BIOS已采用28位寻址,最大寻址空间137G,最前沿的主板BIOS采用48位寻址,已突破了137G的瓶颈。每个虚拟盘面上同一位置的磁道就称为柱面。如0,0,1,表示:第一个0,0柱面,是指位于128个盘片上的零磁道,但没讲是在那片盘上;第二个0,0磁头对应于0盘面,其实用盘面来理解更确切,1,1扇区,现在定位已完成。0,1,1,在刚才位置的反面。其实这些是不要我们操心的,硬盘内部的参数和主板BIOS之间会达成协议,正确发出寻址信号,正确定位磁道和扇区位置。
0,0,1指的是MBR所在的主引导扇区,零磁道从0,0,1-0,0,63,为真正的零磁道,它的位置一般做好后就不能用一般软件来修改了,如果要改变,必须在固件区做相应修改,但这已不是一般用户能做的事,且需要用特殊的工具。它的读取是主板中BIOS通过INT19去读它的信息。0,1,1是DBR所在位置,这个扇区坏了,MS的OS就会说是“零磁道”损坏,其实这并不是零磁道,都是MS闯的祸。它坏了是可以用PCTOOLS等软件来修改这一起始位置,从而避开这一扇区。如果坚持0,1,1为0磁道,那岂不是要有255个0磁道?至少物理盘片的开始要称作零磁道吧。如果是这样定义叫硬盘怎样去找扇区?那就要大乱了。
老硬盘由于每磁道上只有63个扇区,甚至少于63个扇区;因此,外圈疏,内圈密,没有很好地利用盘面资源,现在磁盘内外圈密度相同,圈子上也不再是63个扇区了,不再用CHS 3D参数,一般都用LAB逻辑寻址方式,也有称作为线性寻址。传统意义上的零磁道,只是磁道上的一小段了,但有一点是相同的,一个硬盘必须有一个唯一的起点,那就是LAB 0扇区,对应于CHS的0,0,1。它坏了一般的软件就没办法了,但有些零磁道损坏的硬盘是可以通过用PC3000或别的软件来进行维修的,经物理扇区和逻辑扇区重定位,重新确定一个新的起点。圆方数据恢复中心在这方面有成功的例子,对某些品牌的硬盘分别使用了PC3K和其它软件成功修复了真正的零磁道损坏。但是也不是所有硬盘都能支持重定位。归根到底还是要硬盘本身支持才行。以前有文章称用PCTOOLS等软件来修复零磁道损坏的硬盘,其实这些软件改的并不是真正意义上零磁道,这一错误的观点一直在误导读者,流毒甚而为广深。不过这个错误的根源还在于M$的错。
特别说明:在零磁道前还有负磁道,但它是厂家的硬盘参数区,一般使用者不能访问,更不能修改。
磁道由磁头的位置来确定;磁道内的扇区由盘片旋转的角度决定。
磁盘几何
This article will introduce you to disk geometry.本文将向您介绍磁盘几何。 You will learn some of the terminology that is required in order to understand the internal construction of a disk.您将学习上的一些术语是为了建设需要的理解内部。
Platters 盘
A platter is a physical object (actually, a plate) that resides inside the hard disk and is responsible for storing the data.一盘是一个物理对象(实际上,一板)驻留在硬盘内,并负责存储数据。 A platter is similar to a record on an old record player—the main difference being that a hard disk has many platters, while a record player only holds one record at a time.一盘类似,达到创纪录的老唱机,盘片的主要区别是,一个硬盘上有很多,而创纪录的球员只拥有一次录制。
The platters are very much like records on a record player in the sense that they spin around in a circle on a spindle that runs through the center of all the platters. Each platter has two sides for storing information, and each side of the platter has a unique ID.该盘是非常喜欢的感觉就记录在一个记录器,它们围绕旋转的盘片在一个圆圈上所有的主轴是贯穿中心。每个盘片有两个方面的信息储存,每盘端的有一个唯一的ID。 The ID for the first side of the first platter is 0, and each side increases by 1.盘片的编号为第一的第一面为0,而每增加1方。 For example, if there were two platters in the disk, the first platter would have Side 0 and Side 1, while the second platter would have Side 2 and Side 3.例如,如果有两个磁盘盘片的,第一盘将有副作用0和1面,而第二盘将有副作用2和第3方。
Since there will be a writing mechanism—a head—for each side of the platter, many people use the terms “head” and “side” interchangeably.由于将有一个写作的机制- 1的盘头,为每一个方面,很多人使用术语“头”和“方”可以互换。 The head is more accurately called the read/write head , because it will move over the disk surface and read or write to the disk.头部更准确地称为读/写头 ,因为它会移到磁盘表面和读取或写入到磁盘。 Like a needle on a record player, the read/write head moves over the surface of the disk with the help of an arm, called the actuator arm (also known as the head positioning mechanism ).如同一针上一纪录的球员,读/写头移动的手臂在表面的帮助与磁盘,称为执行器臂 (也称为头机制定位 )。
There is a read/write head for each platter surface on the disk.有一个读/写盘片上的每个磁盘表面头。 When information is written to the disk, the read/write head will move to the same track on all platters in a single movement and then write to the same track on all platters.当信息被写入到磁盘时,读/写磁头会提出在一个单一的运动,所有盘片相同的轨道上,然后写跟踪所有盘片相同。 The actuator arm has multiple read/write heads on it.执行器臂有多个读/写头的。
Tracks 曲目
Just as there are grooves, or tracks, on a record or music CD, there are also tracks on each platter.正如有沟槽,或路轨光盘,记录或音乐,也有跟踪每个盘片。 These tracks are evenly spaced across the platter's surface.这些轨道是均匀分布的整个盘片的表面。
Sectors 行业
The platter is divided into pie slices, thus dividing the tracks into 512-byte sectors. Sectors are the actual storage areas for data, and each has an address that is made up of the platter side number, the track number, and the sector number on that track.盘片被划分成扇形,从而字节扇区划分的轨道成512。行业领域是数据的实际存储,而每一种都有一个地址,它是一面数字组成的拼盘,轨道数和扇区数该轨道。
For the Core Hardware exam, know that a low-level format is performed by the manufacturer and is responsible for preparing the disk for data storage by creating the tracks and sectors.对于核心硬件考试,要知道一个低级别的格式是由制造商进行,并负责跟踪和部门编制的数据存储在磁盘上创建。
Clusters 集群
A group of any number of sectors can make up a cluster .一个部门的任何组数字可以组成一个集群 。 When a partition is formatted, the file system will determine the cluster size based off the partition size.当一个分区被格式化,文件系统的簇大小,将决定关闭该分区的大小。 For example, a partition that is 2GB in size formatted as FAT will use a 32K-cluster size. That same 2GB partition formatted as FAT32 will use only a 4K-cluster size. Having a partition use a 4K-cluster size means there will be 8 sectors that make up a cluster.例如,一个分区大小是2GB的簇大小格式化为FAT将使用一个32K的。就在同2GB的分区格式化为FAT32的规模将只使用一个4K的联网。拥有一个分区使用4K的簇大小意味着将有八部门构成一个群集。 Keep in mind that once a file has been saved to the cluster, no other file can occupy that cluster.请记住,一旦文件已被保存到群集,没有其他文件可以占用的群集。 For example, if you had a 32K-cluster size and you saved a 3K file to the hard disk, the file would be saved to an empty cluster—but only 3K of it would be used, and the remaining 29K would be left unused.例如,如果你有一个32K的簇大小和一个3K的文件保存到硬盘上,该文件将被保存到一个空的簇,但是只有它的将是3K的使用,其余将闲置29,000。 The remaining 29K is now considered unusable space; no other file can be saved to that unused 29 K.其余29,000目前被认为是无法使用的空间,没有其他文件可以保存到29日,未使用的光
Cylinders 缸
Each platter in the disk contains the same number of tracks; these tracks are numbered from the outside in, starting with zero.每个磁盘盘片中包含相同数量的曲目,这些曲目的编号从外面,从零开始的。 For example, if there were ten tracks on a platter, the track closest to the edge of the platter would be Track 0, while the track closest to the center would be Track 9.例如,如果有一盘10轨迹,轨道最接近盘边缘的将是0磁道,而轨道最接近中心将跟踪9。
A cylinder consists of the same track on both sides of all the platters.一缸组成的盘片上,双方都在同一轨道。 In other words, when you reference Track 0, you reference a particular track on a particular platter, but when you reference Cylinder 0, you reference Track 0 on all platters. If you know the number of cylinders, heads, and sectors per track, you can calculate the size of a disk.在口头上,其他当您引用0磁道,您引用一个特定的盘片上一个特定的轨道,但是当你引用柱面0,你参考0磁道上的所有盘片。如果你知道元首气缸数,并跟踪每个部门,你可以计算磁盘大小的一个。 For example, if you have a drive that has 4,092 cylinders, 16 heads, and 63 sectors per track, the size of the disk would be 2,111,864,832 bytes (2.1GB).例如,如果您有一个驱动器具有4092柱面,16个磁头,每磁道扇区和63,磁盘的大小将是2111864832字节(2.1GB)。 The formula to calculate the size of the disk is Cylinders × Heads × Sectors × 512 bytes per sector.该公式计算出的磁盘大小是缸头× × × 512行业每扇区字节数。
Read/write process 读/写过程
Platters are divided into 512 byte sectors.盘片被分成512字节扇区。 These sectors are the area on the platter that data is written to.这些部门都是以书面的盘片面积上的数据。 The platters have a magnetic coating applied to them that is extremely sensitive to magnetism. While the platters are rotating in a circle, the read/write heads are moved over the disk surface to the location where they need to write (or save) information.该盘有磁性涂料适用于他们,是非常敏感的磁性。尽管盘片是旋转成一个圆圈,读/写信息头)被移到了磁盘表面的位置,他们需要编写(或保存。 The read/write heads do not actually touch the surface of the disk platters; instead, they “hover” about ten micro-inches (or millionths of an inch) above—that's not even enough space to place a hair between the read/write head and the platter's surface.读/写磁头实际上并不接触盘片表面的磁盘,而是他们“悬停”约10微英寸(或英寸万分之一的)以上这还没有足够的空间放置/写一毛之间的阅读头与盘片表面。 This design helps improve disk performance, because a read/write head that made contact with the platter would cause friction, slowing down the rotation speed of the disk.这种设计有助于提高磁盘性能,因为一个读/写磁头,使得盘片的接触会引起摩擦,放慢速度的旋转盘。
While the platters spin around in circles, the read/write head moves from track to track until it reaches the desired one.虽然盘片旋转兜圈子,读/写头移动到轨道跟踪,直到达到预期的1。 Then it waits for the appropriate sector to move underneath it, at which time the read/write head is energized to apply a magnetic charge to the particles in the disk coating.然后,等待下移动它,为部门的恰当其时的读/写头通电套用到磁盘磁荷的粒子在涂层。 This changes the particle binary state from zero to one, thus creating data.这改变了二进制状态从零到一个粒子,从而造成数据。
Performance 表现
Disk performance can be measured in terms of several important characteristics: seek time, latency, access time, and the spin speed of the disk.磁盘性能,可衡量的几个重要方面的特点:寻找时间,等待时间,存取时间,速度和旋转的磁盘。
Measuring Hard Disk Performance 衡量硬盘性能
Seek time is the time it takes to move the read/write heads to the desired track. 寻找时间是花费的时间移动读/写磁头到所需的轨道。 Seek time is a calculated average, since the time it takes to move to the desired track will differ from one instance to another. For example, if the read/write heads are on Track 1, they will take a longer amount of time moving to Track 12 than to Track 3 (because the distance is greater between Track 1 and Track 12).寻道时间是一个计算的平均,因为所花费的时间移动到所需的跑道将实例从一个到另一个不同。举例来说,如果读/写磁头1的轨道上,他们将采取一系列时间较长的数额向移动田径田径12比3(因为距离是12和1之间更大的田径田径)。 Seek time is measured in milliseconds, or millionths of a second.寻找时间以毫秒为单位来衡量,或第二百万分之一的一个。
Latency is the time it takes for the appropriate sector to move under the read/write head. 延迟是部门需要的时间为适当的动议下的读/写头。 Latency is measured in milliseconds. Access time Access time is a term used to describe the overall speed of the disk.等待时间是毫秒计。存取时间的磁盘访问时间是一个术语,用来描述总体速度。 It is a combination of seek time and latency.这是一个延迟时间,寻求结合。 The lower the access time, the better.存取时间越低,越好。
Spin speed is the speed at which the platters spin in a circle, measured in revolutions (rotations) per minute, or rpm. 旋转速度是速度而盘片旋转成一个圆圈,每分钟转速测量转(转动),每分钟或。 The larger the rpm value the faster the disk, which means less latency.值越大,转速越快的硬盘,这意味着更少的延迟。
Master boot record 主引导记录
While I'm discussing disk geometry, I should make a brief comment about the Master Boot Record.虽然我讨论磁盘几何,我要一个简短的评论引导记录有关硕士。 The Master Boot Record (MBR) is the first sector on the first track of the first side of the first platter; it holds the operating system boot code that controls the loading of the operating system. 主引导记录(MBR)是第一盘的第一个扇区的第一首曲目的一面,它拥有操作系统的启动代码,加载控制系统的运作。
The MBR also holds drive characteristics—such as the partition table.膜生物反应器还持有驾驶特性,如分区表。 During the boot process the system has to find a primary partition that is active and it will do this by looking in the boot record.在引导过程的系统必须找到一个主分区处于活动状态,它会记录该启动了前瞻性的。
In general, if anything goes wrong with the MBR, you will be unable to boot the system. Since this boot record is always found in the same location on every disk, it becomes very easy for developers to write viruses that will modify or corrupt it. This is one reason you should always run virus detection software.一般来说,如果有什么出错的膜生物反应器,你将无法启动系统的磁盘。由于这是每一个引导记录总是发现在同一位置上,它变得非常容易的开发编写病毒,将它修改或损坏。这是一个原因,你应该始终运行病毒检测软件。
5楼,磁道是完全对称的环形,没有起始参照点,何来“旋转角度”?如果在0扇区上作标记,那么如果其他扇区存入了和0扇区相同的内容,怎么区别呢?
是不是每个扇区都保留一些不可写的位用作编号,寻址时直接查找保留位上的编号呢?
磁盘上好像有一个小孔,能做定位的,专门用来定位的,我说的是软盘。
老软盘才有定位孔,后来的也不用这种方法了。
硬盘磁道上,有一段特殊的同步区的,然后是 0 扇区;扇区内又有引导标示区和数据区部分。另外,由于读取一扇区后的处理,以及磁盘旋转速率间的关系,往往在 0 扇区后的并不是 1 扇区,是有交错的;这就是所谓的硬盘的交错因子。更具体的可以拿这些关键字搜索下。
LZ的问题应该是这样的:磁头是如何捕获到“磁道上的数据的”。
磁头在捕获所谓“磁道”数据时,并不是按轨一对一的“查找”(估计你是这样想的),而一“宽覆盖”一个“磁头”对多个(一般是二个到六个)“磁道(单)”读取,并寻找到其中需要的数据。而电机定位是“粗”定位,“磁道”标识是控制电机条件之一,这应该是与电机控制算法与磁头“捕获磁道”算法相关。
其中磁道捕获算法一般有四种,多为专利保密中。如信号(AD)读取+缓存的“磁道丢弃算法”、信号放大(快速)+频谱过滤(卡夫曼)……
仅供参考!
11楼,磁道寻址很简单,只要改变磁头的偏转就可以了。我问的是怎么寻址同一磁道上的扇区,不要答非所问。
11楼不会连磁道和扇区都分不清吧,如果那样说明你的回复也是乱抄的
磁盘的扇区寻址是以某一物理上特殊的非数据扇区为参考点呢?还是每个扇区都通过保留位进行编号呢?低格后的交叉因子又存储在何处呢?
引用: 引用 15 楼 vuoin 的回复:
11楼不会连磁道和扇区都分不清吧,如果那样说明你的回复也是乱抄的
那个棒槌是一贯闹笑话的主,其经典言论是“知道了指令的存储空间,则其执行时间基本可知”。
从物理上来讲,硬盘的磁头是一直在工作的(除非待机省电状态),不写的时候也一直在读,磁头控制电路实时把磁头感应到的编码信号(磁盘一般使用MFM或者M2FM编码方式)解码,还原成raw数据(原生的磁道数据),这raw数据是包括了所在磁道上某一段的全部数据,然后控制器(一块硬盘就是一个单板机系统,也有自己的MCU、ROM、RAM等等,有程序在上面运行)在内部缓冲区中分析这段数据,找出GAP1(间隙,每个扇区前后都有间隙,叫做前置区、后置区,是给磁头定位精度不足保留的一段缓冲空间)、SYNC(同步字段,为保证信号连续读取的误差不累计设置的,类似RS-232的同步位)、IDAM(ID地址标识,用来指示后面的ID字段)、ID(磁盘地址,控制器通过它来知道后面是哪个扇区)...
后面还有很多字段,CRC(校验)、GAP2、SYNC2、IDAM2、DATA(实际的扇区存储数据)...
之后磁盘控制器把剥离出的完整扇区数据放在内部缓存中备用(也有缓存替换算法,因为缓存不是无限大的),当有读取命令来的时候,如果请求的扇区在缓存中,就直接使用,否则再寻道、读取扇区。
另外,软盘驱动器的工作原理和硬驱大同小异,但它的磁头不是一直在运动、读取的,因为软驱的磁头和磁盘表面接触,总运动对磁头和盘片的磨损都太严重,有一个马达待机时间,当超过这个时间还没有读写命令,磁头就停在内圈的着陆区不工作了。
更正一点:现在的硬盘一般使用PRML编码方式,而不是MFM或者M2FM。(我的知识出现了老化 :)