硬盘的chs模式是指chs(Cylinder/Head/Sector)模式,很久以前, 硬盘的容量还非常小的时候,人们采用与软盘类似的结构生产硬盘。也就是硬盘盘片的每一条磁道都具有相同的扇区数。由此产生了所谓的3D参数 (Disk Geometry):既磁头数(Heads)、柱面数(Cylinders)、扇区数(Sectors per track),以及相应的寻址方式。其中:磁头数(Heads) 表示硬盘总共有几个磁头,也就是有几面盘片,最大为 256 (用 8 个二进制位存储);柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道,最大为 1024(用 10 个二进制位存储);扇区数(Sectors per track) 表示每一条磁道上有几个扇区, 最大为63 (用 6 个二进制位存储)。
每个扇区一般是 512个字节,理论上讲这不是必须的,但好象没有取别的值的。所以磁盘最大容量为:
256 * 1024 * 63 * 512 / 1048576 = 8064 MB ( 1M = 1048576 Bytes )
或硬盘厂商常用的单位:
256 * 1024 * 63 * 512 / 1000000 = 8455 MB ( 1M = 1000000 Bytes )
在 CHS 寻址方式中, 磁头、柱面、 扇区的取值范围分别为 0 到 Heads-1,0 到 Cylinders-1,1 到 Sectors per track (注意是从 1 开始)。
在 CHS 寻址方式中, 有以下几种尺寸单位:
扇区 (Sector) = 512 字节 (一般情况下)
磁道 (Track) = (Sectors per track) 扇区
柱面 (Cylinder)= (Sectors per track) * Heads 扇区
这种方式会浪费很多磁盘空间 (与软盘一样)。为了解决这一问题,进一步提高硬盘容量,人们改用等密度结构生产硬盘。也就是说,外圈磁道的扇区比内圈磁道多。采用这种结构后,硬盘不再具有实际的3D参数,寻址方式也改为线性寻址,即以扇区为单位进行寻址。
为了与使用3D寻址的老软件兼容 (如使用BIOS Int13H接口的软件),在硬盘控制器内部安装了一个地址翻译器,由它负责将老式3D参数翻译成新的线性参数。这也是为什么现在硬盘的3D参数可以有多种选择的原因 (不同的工作模式,对应不同的3D参数。如 LBA、LARGE、NORMAL),CHS模式只能识别大硬盘的前面8G。LBA使用的线性寻址,突破了1024柱面的限制,能访问8G以外的空间了。
###################
零磁道概念问题,涉及硬盘的物理结构和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$的错。
特别说明:在零磁道前还有负磁道,但它是厂家的硬盘参数区,一般使用者不能访问,更不能修改。