一:浅谈硬盘发展史
既然是说长道短“闲话”硬盘,那么就先让我们回顾一下硬盘发展的历程吧。大家都知道,目前占主流的硬盘接口有IDE和SCSI两种,?那么这两种接口又是如何诞生的呢?二者之中历史资历更深的是SCSI(Small?ComputerSystem Interface,小型计算机系统接口),它的前身是1979年由
美国的Shugart公司(希捷的前身)制订、并于1986年获得ANSI(美国标准协会)承认的SASI(Shugart?Associates?System?Interface,施加特联合系统接口)。而IDE(Integrated?Drive?Electronics,集成设备电路)则源于CDC(Control?Data?Corporation,数据控制公司)、康柏(COMPAQ)、西部数据(Western?Digital,以下简称WD)共同开发的磁盘控制接口,?并于1989年由ANSI认可为ATA(AT?Attachment,AT附加装置)标准。CDC的特点是不需大量追加设备即可构成电脑方的主控线路,?这也正是它在个人电脑上得到广泛应用的原因。
早期的硬盘容量不过10MB到数十MB,甚至连今天的内存容量都不如而且价格极其昂贵,很少有个人用户有幸拥有硬盘。当时的硬盘所采用的磁头大多是高铁酸盐磁头或MIG(MetalIn?Gap,金属隔离)磁头。进入90年代以来,硬盘技术有了长足的发展,随着新技术的不断应用和批量生产带来的成本降低导致硬盘零售价大幅下降,使越来越多的个人用户有幸接触到硬盘。
在90年代初,SCSI接口发展为SCSI-2,早期的SCSI-2产品(通称Fast? SCSI)?通过提高同步传输时的频率使数据传输速率提高为10MB/s,后来又出现了支持16位并行数据传输(?原本为8位并行数据传输)的Wide?SCSI,将数据传输率再提高为20MB/s。?与此相对应,原有的8位传输的SCSI被称为Narrow?SCSI。而在1994年,?增强型的IDE接口E-IDE(Enhanced?IDE)也问世了,?它解决了IDE接口无法支持高于528MB的硬盘的问题并使一个接口能同时连接两个设备,还大大提高了数据传输率。E-IDE由ANSI认可为ATA-2。与此同时,用于连接光驱、磁带机等非硬盘设备ATAPI(ATA? PacketInterface)接口也诞生了。可以说,正是E-IDE接口的诞生,带来了今天IDE接口存储设备的普及。
到了1995年,更为高速的SCSI接口SCSI-3诞生了。SCSI-3俗称UltraSCSI(数据传输率20MB/s),其正式的称谓是SCSI-3?Fast-20?ParallelInterface。顾名思义,就是将同步传输时钟频率提高到20MHz以提高数据传输率的技术。当使用16位传输的Wide模式时,数据传输率更可以提高至40MB/s。正是在这个时期,“追求高性能惟有挑选SCSI”逐渐成为一种思维定式(当然SCSI的好处不仅仅在于数据传输率快这么简单)。
但到了1997年,状况又有了改变,IDE阵营推出了Ultra?ATA规格展开新一轮对抗。当使用Ultra?ATA?DMA?Mode?2(俗称Ultra?DMA/33)模式时,数据传输率最高可以达到33.3MB/s。这一速度比Narrow传输模式下的UltraSCSI还要快。现在
流通的IDE硬盘已经全部对应了Ultra?ATA模式。并且,随着硬盘的容量越来越大,速度越来越快,MR(Magneto-Resistive,?磁阻型)磁头和提高磁盘记录密度的新规格得以普及。
为了对抗Ultra?ATA,SCSI阵营也于1997年推出了新的Ultra?2?SCSI规格(Fast-40),目前已有多种SCSI硬盘支持Ultra?2?SCSI。?不过,采用LVD(Low?Voltage?Differential,低电压微分)传输的Ultra?2?SCSI难以与原有低速设备兼容,因此现阶段个人用户主要使用的故荱ltra(Wide)SCSI。
另外,在1998年9月,更为高速的数据传输率高达160MB/s的Ultra160/m?SCSI(Wide模式下的Fast-80)规格正式公布,新一代SCSI硬盘将对应这一最新的硬盘接口。
在IDE阵营方面,1998年2月由昆腾(Quantum)公司牵头推出了支持66MB/s数据传输率的Ultra?ATA?/66标准。尽管支持它的控制
芯片组迟迟未见问世(现在已经有SIS的兼容芯片出现),WD已经于去年12月率先推出了支持Ultra?ATA/66的硬盘产品,不过产品在出厂时将Ultra?ATA/66模式设为Disable,用户想要激活这一模式必须使用专用的工具软件设定(当时并没有支持Ultra?ATA/66的主板,所以这一措施可谓妥当)。现在昆腾、IBM等也已经先后推出了支持Ultra?ATA/66的最新产品.
二:硬盘“空间”与“文件大小”秘密
在Windows系统中,一个文件的大小(字节数)和它在硬盘上(或其他存储介质上)所占的空间是两个既相互联系又有区别的概念。在不同的情况下,同一个文件的“所占空间”会发生变化。
1.“文件大小”与“所占空间”的差别
为了便于大家理解,我们先来看两个例子:
例1:找到D盘上的Ersave2.dat文件,用鼠标右键单击该文件,选择“属性”,即可打开对话框,我们可以看到,Ersave2.dat的实际大小为655,628 Byte(字节),但它所占用的空间却为688,128 Byte,两者整整相差了32KB。
例2:同样是该文件,如果将它复制到A盘,你会发现该文件实际大小和所占空间基本一致,同为640KB,但字节数稍有差别。再将它复制到C盘,查看其属性后,你会惊奇地发现它的大小和所占空间的差别又不相同了!
显然,在这三种情况中,文件的实际大小没有变化,但在不同的磁盘上它所占的空间却都有变化。事实上,只要我们理解了文件在磁盘上的存储机制后,就不难理解上述的三种情况了。文件的大小其实就是文件内容实际具有的字节数,它以Byte为衡量单位,只要文件内容和格式不发生变化,文件大小就不会发生变化。但文件在磁盘上的所占空间却不是以Byte为衡量单位的,它最小的计量单位是“簇(Cluster)”。
小知识:什么是簇?
文件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/32/NTFS)打开文件。扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。
为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。
2.分区格式与簇大小
在例2中,同一个文件在不同磁盘分区上所占的空间不一样大小,这是由于不同磁盘簇的大小不一样导致的。簇的大小主要由磁盘的分区格式和容量大小来决定,其对应关系如表1所示。
笔者的软盘采用FAT分区,容量1.44MB,簇大小为512 Byte(一个扇区);C盘采用FAT 32分区,容量为4.87GB,簇大小为8KB;D盘采用FAT 32分区,容量为32.3GB,簇大小为32KB。计算文件所占空间时,可以用如下公式:
簇数=取整(文件大小/簇大小)+1
所占空间=簇数×磁盘簇大小
公式中文件大小和簇大小应以Byte为单位,否则可能会产生误差。如果要以KB为单位,将字节数除以1024即可。利用上述的计算公式,可以计算ersave2.dat文件的实际占用空间,如表2所示。
3.轻松查看簇大小
①用Chkdsk查看簇大小
在Windows操作系统中,我们可以使用Chkdsk命令查看硬盘分区的簇大小。例如我们要在Windows XP下查看C盘的簇大小,可以单击“开始→运行”,键入“CMD”后回车,再键入“C:”后回车,然后输入“Chkdsk”后回车,稍候片刻从它的分析结果中,我们就可以得到C盘的簇大小,不过它把簇称之为“分配单元”或者“Allocation unit”。
②用PQ Magic等磁盘工具来检测
很多磁盘工具都具备磁盘信息显示等功能。例如在PQ Magic中,选择要查看的磁盘分区,然后单击右键选择“高级→调整簇大小”功能,即可从显示的对话框中可以看到该磁盘当前设置的簇大小。
③手工查看
手动创建一个100字节以下的文本文档。然后将该文件复制到欲查看簇大小的磁盘分区中,在Windows下显示该文件的属性,其中“所占空间”处显示的数值就是簇大小。
三:新手学堂之看图识硬盘
硬盘是系统中极为重要的设备,存储着大量的用户资料和信息。如今的硬盘容量动辄就是10GB以上,型号更是五花八门,因此我们有必要了解一些硬盘的基本知识,才能在纷繁复杂的市场中认清所需要的硬盘。从接口上看,硬盘主要分为IDE接口和SCSI接口两种。由于价格原因,普通用户通常只能接触到IDE接口的硬盘,因此下面我们也以IDE硬盘为主进行讲解。
1.缓存 这就是我们经常说的缓存,其实就和内存条上的内存颗粒一样,是一片SDRAM。缓存的作用主要是和硬盘内部交换数据,我们平时所说的内部传输率其实也就是缓存和硬盘内部之间的数据传输速率。
2.电源接口 和光驱一样,硬盘的电源接口也是由4针组成。其中,红线所对应的+5V电压输入,黄线对应输出的是+12V电压。现在的硬盘电源接口都是梯形,不会因为插反方向而使硬盘烧毁。
3.
跳线 跳线的作用是使IDE设备在工作时能够一致。当一个IDE接口上接两个设备时,就需要设置跳线为“主盘”或者“从盘”,具体的设置可以参考硬盘上的说明。
4.IDE接口 硬盘IDE接口是和主板IDE接口进行数据交换的通道。我们通常说的UDMA/33模式就是指的缓存和主板IDE接口之间的数据传输率(也就是外部数据传输率)为33.3MB/s,目前的接口规范已经从UDMA/33发展到UDMA/66和UDMA/100。但是由于内部传输率的限制,实际上外部传输率达不到理论上的那么高。
为了使数据传输更加可靠,UDMA/66模式要求使用80针的数据传输线,增加接地功能,使得高速传输的数据不致出错。在UDMA/66线的使用中还要注意,其兰色的一端要接在主板IDE口上,而黑色的一端接在硬盘上。
5.电容 硬盘存储了大量的数据,为了保证数据传输时的安全,需要高质量的电容使电路稳定。这种黄色的
钽电容质量稳定,属于优质元件,但价格较贵,所以一般用量都比较少,只是在最需要的地方才使用。
6.控制芯片 硬盘的主要控制芯片,负责数据的交换和处理,是硬盘的核心部件之一。硬盘的电路板可以互相换(当然要同型号的),在硬盘不能读出数据的时候,只要硬盘本身没有物理损坏且能够加电,我们就可以通过更换电路板的方式来使硬盘“起死回生”。
四:跳出硬盘认识的误区/ 硬盘修复之低级格式化 /深入了解硬盘参数
1.硬盘逻辑坏道可以修复,而物理坏道不可修复。实际情况是,坏道并不分为逻辑坏道和物理坏道,不知道谁发明这两个概念,反正厂家提供的技术资料中都没有这样的概念,倒是分为按逻辑地址记录的坏扇区和按物理地址记录的坏扇区。
2.硬盘出厂时没有坏道,用户发现坏道就意味着硬盘进入危险状态。实际情况是,每个硬盘出厂前都记录有一定数量的坏道,有些数量甚至达到数千上万个坏扇区,相比之下,用户发现一两个坏道算多大危险?
3.硬盘不认盘就没救,0磁道坏可以用分区方法来解决。实际情况是,有相当部分不认的硬盘也可以修好,而0磁道坏时很难分区。
Bad sector (坏扇区)
在硬盘中无法被正常访问或不能被正确读写的扇区都称为Bad sector。一个扇区能存储512Bytes的数据,如果在某个扇区中有任何一个字节不能被正确读写,则这个扇区为Bad sector。除了存储512Bytes外,每个扇区还有数十个Bytes信息,包括标识(ID)、校验值和其它信息。这些信息任何一个字节出错都会导致该扇区变“Bad”。例如,在低级格式化的过程中每个扇区都分配有一个编号,写在ID中。如果ID部分出错就会导致这个扇区无法被访问到,则这个扇区属于Bad sector。有一些Bad sector能够通过低级格式化重写这些信息来纠正。
Bad cluster (坏簇)
在用户对硬盘分区并进行高级格式化后,每个区都会建立文件分配表(File Allocation Table, FAT)。FAT中记录有该区内所有cluster(簇)的使用情况和相互的链接关系。如果在高级格式化(或工具软件的扫描)过程中发现某个cluster使用的扇区包括有坏扇区,则在FAT中记录该cluster为Bad cluster,并在以后存放文件时不再使用该cluster,以避免数据丢失。有时病毒或恶意软件也可能在FAT中将无坏扇区的正常cluster标记为Bad cluster, 导致正常cluster不能被使用。 这里需要强调的是,每个cluster包括若干个扇区,只要其中存在一个坏扇区,则整个cluster中的其余扇区都一起不再被使用.
Defect (缺陷)
在硬盘内部中所有存在缺陷的部分都被称为Defect。 如果某个磁头状态不好,则这个磁头为Defect head。 如果盘面上某个Track(磁道)不能被正常访问,则这Track为Defect Track. 如果某个扇区不能被正常访问或不能正确记录数据,则
该扇区也称为Defect Sector. 可以认为Bad sector 等同于 Defect sector. 从总的来说,某个硬盘只要有一部分存在缺陷,就称这个硬盘为Defect hard disk.
P-list (永久缺陷表)
现在的硬盘密度越来越高,单张盘片上存储的数据量超过40Gbytes. 硬盘厂
家在生产盘片过程极其精密,但也极难做到100%的完美,硬盘盘面上或多或少存在一些缺陷。厂家在硬盘出厂前把所有的硬盘都进行低级格式化,在低级格式化过程中将自动找出所有defect track和defect sector,记录在P-list中。并且在对所有磁道和扇区的编号过程中,将skip(跳过)这些缺陷部分,让用户永远不能用到它们。这样,用户在分区、格式化、检查刚购买的新硬盘时,很难发现有问题。一般的硬盘都在P-list中记录有一定数量的defect, 少则数百,多则数以万计。如果是SCSI硬盘的话可以找到多种通用软件查看到P-list,因为各种牌子的SCSI硬盘使用兼容的SCSI指令集。而不同牌子不同型号的IDE硬盘,使用各自不同的指令集,想查看其P-list要用针对性的专业软件。
G-list (增长缺陷表)
用户在使用硬盘过程中,有可能会发现一些新的defect sector。 按“三包”规定,只要出现一个defect sector,商家就应该为用户换或修。现在大容量的硬盘出现一个defect sector概率实在很大,这样的话硬盘商家就要为售后服务忙碌不已了。于是,硬盘厂商设计了一个自动修复机制,叫做Automatic Reallcation。有大多数型号的硬盘都有这样的功能:在对硬盘的读写过程中,如果发现一个defect sector,则自动分配一个备用扇区替换该扇区,并将该扇区及其替换情况记录在G-list中。这样一来,少量的defect sector对用户的使用没有太大的影响。
也有一些硬盘自动修复机制的激发条件要严格一些,需要用某些软件来判断defect sector,并通过某个端口(据说是50h)调用自动修复机制。比如常用的Lformat, ADM,DM中的Zero fill,Norton中的Wipeinfo和校正工具,西数工具包中的wddiag, IBM的DFT中的Erase等。这些工具之所以能在运行过后消除了一些“坏道”,很重要的原因就在这Automatic Reallcation(当然还有其它原因),而不能简单地概括这些“坏道”是什么“逻辑坏道”或“假坏道”。 如果哪位被误导中毒太深的读者不相信这个事实,等他找到能查看G-list的专业工具后就知道,这些工具运行过后,G-list将会增加多少记录!“逻辑坏道”或“假坏道”有必要记录在G-list中并用其它扇区替换么?
当然,G-list的记录不会无限制,所有的硬盘都会限定在一定数量范围内。如火球系列限度是500,美钻二代的限度是636,西数BB的限度是508,等等。超过限度,Automatic Reallcation就不能再起作用。这就是为何少量的“坏道”可以通过上述工具修复(有人就概括为:“逻辑坏道”可以修复),而坏道多了不能通过这些工具修复(又有人概括为:“物理坏道”不可以修复)。
Bad track (坏道)
这个概念源于十多年前小容量硬盘(100M以下),当时的硬盘在外壳上都贴有一张小表格,上面列出该硬盘中有缺陷的磁道位置(新硬盘也有)。在对这个硬盘进行低级格式化时(如用ADM或DM 5.0等工具,或主板中的低格工具),需要填入这些Bad track的位置, 以便在低格过程中跳过这些磁道。现在的大容量硬盘在结构上与那些小容量硬盘相差极大,这个概念用在大容量硬盘上有点牵强。
深入了解硬盘参数
正常情况下,硬盘在接通电源之后,都要进行“初始化”过程(也可以称为“自检”)。这时,会发出一阵子自检声音,这些声音长短和规律视不同牌子硬盘而各不一样,但同型号的正常硬盘的自检声音是一样的。 有经验的人都知道,这些自检声音是由于硬盘内部的磁头寻道及归位动作而发出的。为什么硬盘刚通电就需要执行这么多动作呢?简单地说,是硬盘在读取的记录在盘片中的初始化参数。
一般熟悉硬盘的人都知道,硬盘有一系列基本参数,包括:牌子、型号、容量、柱面数、磁头数、每磁道扇区数、系列号、缓存大小、转速、S.M.A.R.T值等。其中一部分参数就写在硬盘的
标签上,有些则要通过软件才能测出来。这些参数仅仅是初始化参数的一小部分,盘片中记录的初始化参数有数十甚至数百个!硬盘的CPU在通电后自动寻找BIOS中的启动程序,然后根据启动程序的要求,依次在盘片中指定的位置读取相应的参数。如果某一项重要参数找不到或出错,启动程序无法完成启动过程,硬盘就进入保护模式。在保护模式下,用户可能看不到硬盘的型号与容量等参数,或者无法进入任何读写操作。近来有些系列的硬盘就是这个原因而出现类似的通病,如:FUJITSU MPG系列自检声正常却不认盘,MAXTOR美钻系列认不出正确型号及自检后停转,WD BB EB系列能正常认盘却拒绝读写操作等。
不同牌子不同型号的硬盘有不同的初始化参数集,以较熟悉的Fujitsu硬盘为 例,高朋简要地讲解其中一部分参数,以便读者理解内部初始化参数的原理。
通过专用的程序控制硬盘的CPU,根据BIOS程序的需要,依次读出初始化参数集,按模块分别存放为69个不同的文件,文件名也与BIOS程序中调用到的参数名称一致。其中部分参数模块的简要说明如下:
DM硬盘内部的基本管理程序
- PL永久缺陷表
- TS缺陷磁道表
- HS实际物理磁头数及排列顺序
- SM最高级加密状态及密码
- SU用户级加密状态及密码
- CI 硬件信息,包括所用的CPU型号,BIOS版本,磁头种类,磁盘碟片种类等
- FI生产厂家信息
- WE写错误记录表
- RE读错误记录表
- SI容量设定,指定允许用户使用的最大容量(MAX LBA),转换为外部逻辑磁头数(一般为16)和逻辑每磁道扇区数(一般为63)
- ZP区域分配信息,将每面盘片划分为十五个区域,各个区域上分配的不同的扇区数量,从而计算出最大的物理容量。
这些参数一般存放在普通用户访问不到的位置,有些是在物理零磁道以前,可以认为是在负磁道的位置。可能每个参数占用一个模块,也可能几个参数占用同一模块。模块大小不一样,有些模块才一个字节,有些则达到64K字节。这些参数并不是连续存放的,而是各有各的固定位置。
读出内部初始化参数表后,就可以分析出每个模块是否处于正常状态。当然,也可以修正这些参数,重新写回盘片中指定的位置。这样,就可以把一些因为参数错乱而无法正常使用的硬盘“修复”回正常状态。
如果读者有兴趣进一步研究,不妨将硬盘电路板上的ROM芯片取下,用写码机读出其中的BIOS程序,可以在程序段中找到以上所列出的参数名称。
硬盘修复之低级格式化
熟悉硬盘的人都知道,在必要的时候需要对硬盘做“低级格式化”(下面简称“低格”)。进行低格所使用的工具也有多种:有用厂家专用设备做的低格,
有用厂家提供的软件工具做的低格,有用DM工具做的低格,有用主板BIOS中的工具做的低格,有用Debug工具做的低格,还有用专业软件做低格……
不同的工具所做的低格对硬盘的作用各不一样。有些人觉得低格可以修复一部分硬盘,有些人则觉得低格十分危险,会严重损害硬盘。用过多种低格工具,认为低格是修复硬盘的一个有效手段。下面总结一些关于低格的看法,与广大网友交流。