::香农::青岛数据恢复中心::

现代硬盘驱动器

文章首页
现代硬盘驱动器
印刷电路板
固件
缺陷调整的两种机制
磁盘空间的逻辑结构
硬盘的主要故障
常规的硬盘老化故障
与硬盘结构有关的故障
增强硬盘可靠性的技术
查找硬盘故障的基本原理
硬盘的一些典型故障和维修方法
各种硬盘最常见的故障
总结
全部页面

现代硬盘驱动器
[俄]Vadim Morozov,Sergey Yatsenko 着
香农数据[青岛]  2005年 译

提要

简要的结构说明,现代硬盘驱动器的主要故障,HDD简单故障的修复方法,SMART,密码。本文面向数据恢复专家、计算机设备维修技术人员、网络管理员和经验丰富的用户。

驱动器结构

硬盘驱动器由机械部分——磁头-磁碟组件(HDA)和印刷电路板(PCB)两部分组成。HDA是硬盘驱动器中唯一的机械部件,它还包含有一片执行前置放大器/转接器功能的芯片。PCB由一些控制机械部件的芯片、对磁盘表面的数据进行编/解码的芯片和与外部接口交换数据的芯片组成。PCB位于HAD的外部,一般是在下方。某些硬盘驱动器,像着名的Seagate 酷鱼系列,它们有一块额外的金属板覆盖在电路板上面以保护电子部件免遭损坏。

机械部分

驱动器的整个结构是基于保护其灵敏的机械部件不受环境因素的影响而设计的。驱动器里面的空气是不能有灰尘的,因此机械部分的组件是在每立方米少于100个微尘粒子的工作间(也就是所谓的100级清洁空间)完成装配的。

HDA 盘体有一个填充有紧密的空气过滤材料的开口,用于平衡HDD内外的空气压力。不过如果驱动器落入水中,水就会沿着此开口进入驱动器内部。盘片的旋转引起的空气环流经常会撕碎不知如何进入的灰尘。

驱动器盘体包括由主轴马达驱动的磁碟,带有定位系统和放大信号的前置放大器/转接器的磁头。磁碟是一种铝制的圆盘(少量是陶瓷或特殊玻璃的),它拥有最高精度等级的光滑表面(除了停泊区),由于分子吸引力的缘故,如此光滑的表面会将磁盘和磁头粘合在一起。为了防止磁盘与磁头粘连在一起,生产商在磁头和磁盘接触的区域使用了特殊的激光防滑齿。由于使用了真空沉积工艺生成的氧化铬覆盖(磁性物质)或钴层,磁盘具有特殊的磁性质。氧化铬覆盖层具有更高的硬度和抗磨损性,而以前使用氧化铁做磁性物质然后在其上覆盖一层软涂层的磁盘非常容易损坏。磁盘由专门的3相电机驱动。磁盘的固定部分包括三个星形连接的线圈、位于中央的轴承、和由稀土金属制造的永久磁体。为了减少变形和获得很高的转速,生产商必须在主轴马达上使用特殊的轴承,如滚珠轴承或改良的液态轴承(使用专门的润滑油以增强马达耐久力)。液态轴承具有低噪音和热量少的特点。现代IDE驱动器的每分钟转速为5400RPM或7200RPM;现代SCSI驱动器的转速为10000RPM或15000RPM。

磁头也是一种非常精密的部件。磁头与芯片一样使用光刻技术生产。磁头的陶瓷表面与磁碟一样光滑。磁头的驱动臂是由铜线制成的平直的电磁线圈,悬浮在永久磁铁的磁极间。驱动臂一端固定在轴承的转动杆上,另一端连接到磁头支架。磁头支架是有弹性的,允许磁头以一定的高度飞行在磁碟表面;飞行的高度通常为几个十分之一微米。

推动磁头组运动的传动系统与扩音喇叭的线圈类似,叫做音圈。音圈的工作原理与普通电动式扬声器的工作原理相似(也就是说,在磁心上缠绕铜线)。位置调节线圈被永久磁体制成的定子围绕。当一定电压的电流流过使线圈产生极性,从而以一定加速度推动磁头转向一定位置;这样磁头就可以在音圈的作用下定位于磁碟表面的任意位置。磁头在驱动器断电时使用特殊的臂锁固定在停泊区。两种最常用的臂锁是磁性臂锁和气动臂锁。磁性臂锁利用固定在驱动器内部的一块小磁体,吸引音圈的铁磁物质,使磁头固定在停泊区。气动臂锁(或空气锁)也将磁头固定在停泊区防止移动;当磁碟开始旋转时产生的气流使气动臂锁解开从而解除固定状态。

在HDA内的电子部件只有从磁头接收信号的前置放大器/转接器。前置放大器/转接器位于靠近磁头的地方,以最大限度的减少外部干扰。前置放大器/转接器通过弹性电缆与磁头和驱动器的其他电子部件相连。音圈,有时主轴电缆也使用同一电缆相连。不过主轴通常是由单独的电缆供电。

HDA 通常使用两个接头与PCB连接。其中一个是为主轴马达供电的三相中心抽头电缆接头,另一个是与前置放大器/转接器及音圈电缆传递信号的电缆接头。


印刷电路板

现代驱动器的电路设计的特点是使用高集成度的芯片;它们的结构如图1:

现代硬盘驱动器
图1. 现代驱动器的电路设计

如图1中所示,整个电路设计基于四种芯片:

  • 系统控制芯片,包括:读/写信道,磁盘控制器和RISC(精简指令计算机)控制处理器(微处理器);
  • Flash ROM芯片(内含驱动器固件);
  • 主轴马达和音圈控制芯片;
  • ROM 芯片(用作缓存)。

由于以上各部分的功能存在根本的差别,所以更进一步的集成不太可能实现。
当前最先进的系统控制器是由Cirrus Logic公司生产的芯片。它的明显的突破是将读/写信道、处理器和磁盘控制器集成在一个芯片上;不过由于设计方法不成熟,使用此芯片的Fujitsu MPF3xxxAT和MPG系列驱动器频繁出现故障。

微处理器采用RISC结构。当加电后驱动器的reset电路向微处理器发出RESET信号,使微处理器执行ROM中的自检程序,清空存储器和磁盘控制器以及其他连接到内部数据总线的可编程芯片的工作数据区。然后微处理器检查驱动器运转时使用的内部信号,如果没有发现紧急警告,就启动主轴马达。接下来一步是HDD内部测试:检查数据缓冲RAM、磁盘控制器和输入微处理器的信号的状态。之后微处理器开始分析脉冲信号直到主轴马达达到规定的转速。当马达达到规定的转速后,微处理器就开始操作定位电路和磁盘控制器,将磁头移动到固件数据区,并将固件数据载入到RAM中以供进一步操作。最后微处理器切换到准备就绪状态,并等待计算机主机命令。在等待模式下,从计算机主机CPU发来的命令会引起HDD的所有电子部件的一连串动作以完成指定操作。

HDD读/写信道由前置放大器/转接器(位于HDA内)、读电路、写电路和同步时钟等组成。驱动器的前置放大器具有多个通道,每个通道连接到一个磁头。各通道的切换由驱动器微处理器的信号控制。前置放大器中含有写入电流开关和写入出错传感器,当磁头短路或断路时就会发出出错信号。当集成的读/写信道处于写入模式时,它从磁盘控制器接收数据,同时接收写时钟信号,对数据进行编码、预补偿后将数据传送到前置放大器写入磁盘。当读/写信道处于读取模式时,从前置放大器/转接器来的信号传送到自动控制电路,然后通过可编程的滤波器、校正补偿电路和脉冲检测电路将信号转换为数据脉冲,再发送到磁盘控制器进行解码,最后传送到外部接口。

磁盘控制器是驱动器中最复杂的部件,它决定了HDD和主机之间的数据交换速度。

磁盘控制器拥有四个端口分别连接到主机、微处理器、缓冲RAM和数据交换信道。磁盘控制器是由微处理器驱动的自动部件,在主机中只有标准的任务文件可以访问磁盘控制器的寄存器。磁盘控制器初始化阶段由微处理器控制:设置数据编码方法、选择纠正错误的方法、定义可变的或固定的扇区划分等等。

缓冲管理器是磁盘控制器功能的一部分,用于管理缓冲RAM。现代HDD的缓冲RAM的容量为512Kb到8Mb。缓冲管理器将缓冲RAM分割成独立的缓冲片断,微处理器使用专门的寄存器保存这些缓冲片断的地址以供存取操作。当主机使用其中一个缓冲片度交换数据时,读/写信道可以使用另外的缓冲片断交换数据。这样系统可以实现多通道处理从/向磁盘读/写数据或与主机之间的数据交换。

主轴马达控制器控制3相电机的运转。它由驱动器微处理器控制。主轴马达的运转有三种模式:启动模式,加速模式和稳定模式。让我们先分析一下启动模式。加电后一个reset信号被发送到微处理器,对主轴马达控制器初始化内部寄存器。驱动器微处理器产生相位切换信号;主轴马达低速旋转产生自感应电动势(EMF)。驱动器微处理器器检测到自感应电动势(EMF)并根据此信号控制转速。在加速模式下微处理器加快相位切换并测量主轴马达的转速,直到主轴马达达到额定转速。当达到额定转速后主轴马达进入稳定模式。在此模式下微处理器根据相位信号计算主轴马达的旋转周期并据此调整转速。在磁头从停泊区移走后,驱动器电路使用伺服标记跟踪旋转稳定性。

音圈控制器产生控制电流以移动位置调节器并使磁头定位于指定的磁道上。电流值由微处理器根据磁头位置与相关磁道的数字误差信号(位置误差信号或PES)来计算。电流值以数字形式传送给微处理器,计算后发回的模拟信号被放大后提供给音圈。

 


 

固件数据 (服务信息)

固件数据是HDD内部电路发挥功能所必须的,通常对用户来说是隐藏的。固件数据可以划分为如下:

  • 伺服信息或伺服字段;
  • 低级格式化;
  • 驻留固件微代码(操作程序);
  • 配置表和设置;
  • 缺陷表。

伺服字段是HDD中用于磁头驱动的伺服系统所必须的;他们用作磁头定位,保证磁头准确的定位于指定的磁道。伺服信息在生产过程中通过专门的伺服窗写到已经装配的HDA中。伺服窗随后被用标签封闭,标签上写有:警告!禁止打开。伺服写入过程实际上是在一个特殊的工具中——伺服写入器使用驱动器自身的磁头写入的。磁头位置调节器的重置是通过伺服写入器的专门推进装置使用比磁道间隔更小的稳定步进完成的。

微处理器的固件(微代码)是HDD部件运转所必须的一些程序。这些程序包括用于初始化诊断的,控制主轴马达旋转的,控制磁盘控制器、缓冲RAM之间交换数据的程序,等等。大多数型号的HDD的固件微代码存储在处理器器的内部ROM中;某些型号使用了外部Flash ROM。还有些型号的HDD的部分固件程序存储在磁盘上专门的固件区,而用来初始化、将固件数据从磁盘载入RAM的基本引导程序则存储在ROM中。由于实际的固件模块在运行之前需要首先被载入到RAM中,所以他们被称为驻留模块。生产商将部分固件存储在磁盘上不仅仅是为了节省ROM空间,也是为了在发现微代码有错误时可以容易的修改。大部分生产商的互联网网页上含有为此目的而发布的升级升序。重写磁盘上的固件要比使用编程器对微处理器编程容易的多。我们还记得几年前Western Digital 不得不招回大量的驱动器。

低级格式化。磁道的起始位置由标志信息确定。每个磁道被分为扇区和伺服字段。每个扇区的格式包括ID字段,数据字段,同步zone和空白空间。每个扇区的起始位置包括用于定相的同步zone和数据闸门同步。ID字段包括位置记号、物理扇区地址、标记字节和CRC字节。省略标志符的格式化最近变的流行起来,生产商使用此种方法在没有ID字段的磁道上组织数据(这样做可以增加驱动器可用空间)。他们现在使用伺服字段直接指向磁道上的物理扇区的方法来代替ID字段的功能。这样做需要同时读(写)磁道上所有扇区到(从)RAM中的映象。因此为了读一个扇区,驱动器需要拷贝整个磁道到RAM中,读取扇区不再是从磁盘上而是从RAM中。写入操作也是同样的过程。在写扇区时驱动器首先读取整个磁道,在RAM中修改后再将整个磁道写回磁盘。

配置表和设置包括磁盘空间的逻辑结构和物理结构。这些表使PCB(同一系列的驱动器的PCB是相同的)可以按照某一特定的驱动器型号自行配置。事实上,在设计某一特定型号的驱动器时如使用2个碟片的80Gb驱动器,可以同时自动的产生使用1个碟片的40Gb的二分之一容量型号,和只使用碟片的一面的20Gb的四分之一容量型号。这样生产商可以向市场提供不同容量的多种型号的驱动器而不用考虑R&D费用。除此之外,低级型号的驱动器可以使用由于某种原因不能用于完全容量型号的碟片,如二分之一容量型号可以使用某面有缺陷的磁碟。

缺陷表。现代磁碟的生产技术不能实现无缺陷的生产。不同成分的介质材料、抛光缺陷、磁层的杂质等,都会导致读/写数据时出错。早期的驱动器将缺陷磁道表写在HDA外面的标签上,并且每个驱动器都有一些保留空间,例如HDD ST225(20 Mb)实际容量为21,5 Mb,也就是说,有1,5 Mb的额外空间分配给缺陷扇区和磁道。现代HDD也有额外的空间,不过对于用户来说是隐藏的,只有驱动器微处理器才可以访问。额外空间的一部分分配给 HDD 固件、配置表、 S.M.A.R.T. 计数器、工厂信息、缺陷表等等。其他部分被保留用于以后代替缺陷扇区。

缺陷表在工厂测试时由生产商填充。发现的所有的坏扇区都被添加到缺陷表。这一过程被称为缺陷更新(调整)(也叫做更新缺陷)。之后若在HDD使用过程中发现新的缺陷扇区,驱动器就会自主重定向到保留扇区。因此,所有的现代驱动器出厂时都没有(可见的)缺陷扇区。

大部分型号的 HDD 有两个缺陷表:基本的或P-表和增长的或G-表。P-表在工厂测试——SELFSCAN(智能的内置程序)时填充。G-表不是在工厂中填充,它被设计用来添加驱动器使用过程中出现的缺陷。为了使用G-表的功能,几乎所有的HDD的用户命令中都包含指派命令——即用保留扇区替代缺陷扇区。很多程序包括生产商推荐的处理坏扇区的程序中都包含指派命令。Western Digital 驱动器的Data Lifeguard 系统可以自动的在驱动器空闲时使用保留扇区替换缺陷扇区。在这一过程中,驱动器对自身的磁碟表面进行自测,将标记为坏扇区的缺陷扇区的数据转移到保留扇区;缺陷调整的机制与指派命令是同一的。Fujitsu、 Quantum、 Maxtor和IBM等驱动器生产商都实现了在驱动器写入过程中自动调整缺陷的机能。因此在数据被写入缺陷扇区时,驱动器会自动的重定向到保留扇区并将缺陷扇区标记为坏区然后将缺陷扇区的编号添加到G表。专门用于调整坏扇区的程序有用于Fujitsu驱动器的FUJFMT.EXE程序,用于Western Digital驱动器的WDDIAG.EXE 程序,Samsung提供的ShDiag.exe程序,等等。

 

 


 

缺陷调整的两种机制

当使用替代(指派)机制时驱动器将重定向的扇区标记写入坏扇区的ID字段,并将保留扇区的编号写入坏扇区的数据字段,也就是说,用替代扇区来读写数据。通常,替代扇区为用户数据区之后的第一个可用扇区。(见图 2.)

现代硬盘驱动器
图 2. 扇区重定向的方法

当对缺陷扇区进行访问操作时,驱动器微处理器读出扇区标记和指派地址,然后将磁头重定位到保留区,从保留区的好扇区中读/写数据。缺陷扇区对驱动器来说是不可见的,不过在每次重定位到保留区之前仍然要先寻址到缺陷扇区。这一过程会伴随咔哒声和轻微的减速。指派过程只允许对数据字段有缺陷的扇区重定向,若ID字段损坏或伺服字段损坏时就不能使用指派的方法调整扇区。
在工厂中隐藏缺陷扇区的另一种机制是跳过缺陷扇区。当使用此方法时,缺陷扇区被忽略,它的编号被分配给其后的扇区(等等),而最后一个扇区被顺序移位到保留区。(见图 3)

现代硬盘驱动器
图 3. 丢弃扇区的方法

这种隐藏扇区的方法破坏了低级格式化的连续完整性;LBA转换为PCHS的系统也应该考虑跳过的坏扇区。因此使用此方法隐藏缺陷扇区后需要重建译码表并低级格式化以保护用户数据。这种方法只有在工厂模式下才能进行。在FUJFMT.EXE程序中使用了此种方法对FUJITSU 驱动器调整坏扇区。

 


 

磁盘空间的逻辑结构

现代驱动器中有相当一部分磁盘空间对于用户是隐藏的;隐藏部分包括服务区(固件区)和用于替代缺陷扇区的保留区。在普通操作模式下,隐藏部分只有驱动器微处理器才可以访问。用户可访问的工作区通常称为逻辑磁盘空间,它的大小和磁盘所标注的容量是一致的。对用户区的访问是通过LBA符号(从0到N)所表示的连续的逻辑扇区进行的。逻辑磁盘空间与物理磁盘的对应关系由一个特殊的程序:译码表确定。译码表中包含磁盘的物理格式、zone的分配和隐藏的缺陷扇区与磁道等内容。

对固件区的访问只有在驱动器的特殊模式:工厂模式下才能进行。驱动器进入安全模式后就可以使用附加的工厂命令集。工厂命令可以用来读/写固件扇区、获得模块和表在固件区的位置映象、访问zone分配表、将LBA转换为PCHS或将PCHS转换为LBA、低级格式化、读/写FLASH ROM和其他操作。

在HDD的设计过程中开发者规定了驱动器运转所需的固件数据和固件所占据的柱面数;因此逻辑0柱面是固件区之后的第一个柱面(见图4)。 不同型号的HDD可能由不同的磁盘空间结构。

现代硬盘驱动器
图 4. 磁盘空间的逻辑结构


HDD的主要故障

没有什么是永恒的——这句话同样适用于硬盘驱动器。不管HDD如何可靠,也会随着时间的流逝而老化。

首先,驱动器是一种机械的和电子的设备,所有的机械部件都会逐渐被消磨:时间将会使得机械部件之间的连接变得松弛;每次磁碟起转时和停转时磁头的上升或下降都会破坏覆盖在磁头上的保护层。不过,现代生产技术可以保证硬盘驱动器使用相当长的时间。根据Western Digital驱动器的技术手册(鱼子酱BB/JB系列),磁碟起转或停转时磁头与磁碟表面之间接触的最小数量(起转/停转接触圈数-CSS)为50000圈,而每14次加电会出现少于10字节的不可恢复的读错误 (错误率不可恢复)。如果我们将这些数字转化为通俗易懂的术语,可以得到以下的信息:如果每天启动或关闭驱动器10次,那么磁头或磁碟由于互相碰撞使得品质退化之前的最少时间为14年;每读取32TB数据就会出现一个错误(大约相当于连续观看MP4格式的影片7-10年)。

尽管如此,在实际生活中我们经常遇到完全不同的状况:新购买的驱动器仅使用了几个月就损坏了;有一些驱动器甚至甚至不能熬过生长商规定的保质期。我们还要注意现在所有的生产商(除了Samsung)都将保质期从3年减少到了1年。出现这种情况的原因是什么呢?


常规的HDD老化故障

即使是正确组装的驱动器,使用时也完全按照技术参考手册的所有要求操作,一段时间以后你也可以察觉到它的老化过程。最严重的是磁碟。首先,由于时间关系磁体的磁性减弱,磁碟的某些部分需要反复读取才能成功而以前可以完美无暇的读取数据现在开始出现读取错误;其次,磁碟上的磁层也积累了越来越多的刮擦、碎屑、裂纹等等。所有上面的因素都会导致坏扇区的出现。

驱动器的老化过程是很长的,一般要3-5年的时间。我们必须注意HDD连续不停的运转模式要比频繁开关的工作模式更好。因此连续运转的服务器上的驱动器和位于环境条件稳定的空间的驱动器可以无故障的运行更长的时间。

不正确操作导致的故障

HDD最常发生的故障应该归咎于不正确的操作方式,主要的破坏因素包括:过热、机械碰撞、和电源电压的跳变。

过热是由于驱动器和PCB散热不足。根据Western Digital 驱动器(鱼子酱 BB/JB 系列)的技术参考资料,容许的驱动器温度为5 C到550 C(在空气流通的条件下)。 由于控制板上的某些芯片要比周围环境的温度更高(如马达控制器等),因此必须留有足够的温度上限裕量。现在让我们设想在夏日里,室内的温度可以达到30 C;计算机机箱内可能高出20-250 C而且由于只有一个被灰尘、紧密的扁平线阻塞的电源风扇,驱动器又位于CD驱动器和FDD之间,根本没有正常的空气流通条件;即使把计算机机箱打开也于事无补,根本无助于HDD周围的空气流动。

另外一个重要的温度参数值是梯度运转时温度变化每小时不能大于200 C,停转时温度变化每小时不能大于300 C。若超过上限,对驱动器的机械部分是非常危险的;这种现象叫做热冲击。因此若你在冬天将HDD从商店或朋友处(当你需要拷贝一些数据时)带回家,突然从外面冰冷的环境变化到200 C,突然的加热会使HDA的机械部件分离从而导致变形。如此剧烈的温度变化对电子部件也是有害的。

碰撞对于驱动器的精密的机械部件也是危险的。在驱动器运转时,弹性的磁头以非常低的高度飞行在高速旋转的碟片上。这时对HDA的撞击将会引起磁头连续的撞击磁碟,必然会在磁碟和磁头表面产生碎屑。

对于HDD的电子部件来说最严重的威胁显然是电源。为了降低造价生产商往往没有在市电上安装滤波电路。电源电压通常波动很大,为驱动器供电的稳压电路也不能保持稳定。因此,根据 Western Digital 驱动器(鱼子酱BB/JB系列)的技术参考书,电源电压允许的范围是+5 V+-5% 和+12V+-10%在+5V电路中允许的起伏是100 mV,而在+12 V电路中允许的起伏是200 mV。大多数维修电脑设备的专家只使用电压表测量电源电压单元,但是应该紧记电压波动这一重要的参数只有示波器才能检测到。


与结构有关的故障

近来HDD的质量已经下降了很多;这一事实已经由生产商减少质保期这一行为上得到证实。在某种程度上这是由于竞争和降低成本引起的。质量的下降还与技术标准的进步有关:数据记录密度的增长和更高的单碟容量。结果生产商经常使用没有经过足够测试与试验的材料和工艺;因此市场上出现了有缺憾的产品并出售给用户。一段时间以后生产商会分析在质保期内返回的驱动器的故障,并试图消除驱动器结构上的缺点,但是这种尝试并不总是会成功。

理论上这种设计和生产的方法可以引发驱动器任何部分的问题。我们可以挑出最常见的故障:

PCB与连接磁头的前置放大器芯片之间的接头接触不良。接触不良造成的后果是很多的。首先,它会造成出现坏区的现象。但是这些扇区与磁碟表面品质不良造成的普通缺陷不同它们之间的差别在于前者磁碟表面是完好的,但是接触不良引起某些扇区的伺服字节被写入无效数据,如:扇区中包含CRC码的字段。接触不良同样也会引起固件数据损坏,而固件数据不能由驱动器自主恢复;固件数据也不能在用户模式下修复,只能进入工厂模式才能修复。

在工厂中不可靠的芯片焊接质量。这种技艺上的缺陷通常在大约一年后会显现出来。它的表现一般是接触不良,也就是说,在正常使用一段时间后驱动器会自动关掉并且不能再次启动,或者磁头开始发出敲击声;后一种情况可能导致机械部件的损坏。除此之外和前面所述相似这也会引起固件的损坏。

芯片质量不过关,在高温的情况下成为缺陷,尽管温度尚没有超过允许的限定值。这种故障可以通过使用相同的完好芯片替换掉有缺陷的芯片来修复。

液态轴承的结构缺陷,造成微粒在油脂中积聚,最终导致主轴马达被卡住。
还有碟片没有正确的固定在主轴上的现象,结果敲击日益严重,导致主轴马达的轴承损坏。相当多的驱动器一开始在运转时发出噪声,一段时间之后出现缺陷扇区,正是由于磁盘敲击致使某些磁道读取出错。

Flash ROM 芯片的质量缺陷,在高温时充电漏泄造成存储在其中的固件代码丢失。可以使用专门的ROM芯片编程器或在工厂模式下使用驱动器重写ROM。

驱动器微代码的错误。生产商不会公开此类错误的相关信息,不过会发布固件升级程序。有一种误解认为微代码的错误不会影响驱动器的运转,实际上有时确实会引起驱动器的机械部件的损坏。


增强HDD可靠性的技术

所有的HDD生产商都坚持不懈的试图使用户的数据存储更可靠。为了实现这一目的他们在驱动器中使用了各种各样的方法和技术。

S.M.A.R.T. (简化的自主-监测、分析和报告技术)可以告知用户硬盘驱动器主要参数的状态。许多主板的BIOS支持在计算机加电时分析那些参数,如果某些关键的参数超出阈值,计算机启动时会显示提示信息。当然,这并不意味着驱动器将停止工作,不过用户应该采取一些措施,例如:备份重要数据。如果计算机的BIOS没有.M.A.R.T. 属性分析程序,你可以在操作系统中使用外部的诊断程序。

为了取得更高的可靠性,几乎所有的驱动器都使用了在驱动器运转时直接隐藏和调整突发缺陷的技术。这种技术可能随不同型号的驱动器而有不同的特性;然而他们都是基于相同的原理。如果操作系统试图访问一个不能读/写的扇区,那么驱动器就会使用保留区的扇区代替缺陷扇区(若还有足够的保留空间)。如此替代的扇区表被存储到驱动器固件区,在下一次启动时载入到驱动器微处理器ROM中。

碰撞探测器也被发现用来作为保护数据的技术。它是一种压电传感器,在有机械震动时发出电脉冲。对传感器脉冲滤波后可以识别明显的碰撞。当驱动器探测到震动,它就会将磁头停放。碰撞探测器的安装要求它相对于盘体的角度为45度。


在一些较新的型号中生产商开始在PCB上和磁头组上使用温度探测器。温度信息由驱动器微处理器监控,如果超过了允许的限值驱动器就会停止运转。有些型号的驱动器的温度作为S.M.A.R.T. 属性值输出,有相应的程序(通常在HDD生产商的主页上可以下载)可以查看


查找故障的基本原理

通过上面的介绍已经可以知道HDD是一种精密的软件和硬件设备,它结合了电子和机械部件,并利用了微电子学、微机械学、自动控制理论、磁记录理论和编码理论等的最新成就。如果没有专门知识、专门设备、仪器和工具,没有特别装备的场所(清洁的房间)要维修硬盘就是不可能的。尽管如此,一个熟练的计算机操作者完全可以完成对HDD的初步诊断,修复简单的故障,使用HDD生产商提供的软件对坏扇区进行操作。

当没有专门的诊断设备和软件时,要对HDD进行诊断首先应该将其连接到一个单独的PC电源单元。这时操作者的耳朵就是诊断的工具。HDD上电后启动主轴马达,有4-7秒的时间声音逐渐增大,然后发出咔哒一声(磁头从停泊区移走)和持续1-2秒的非常特殊的噼啪声(重校准)。将完好的HDD连接到电源单元就可以熟悉驱动器的这一过程。

有重校准过程至少可以说明驱动器的reset电路、时钟、微控制器、主轴马达控制电路和定位系统、数据转换信道、磁头的状况(至少其中一个磁头,用于初始化的那个磁头)和固件数据等是完好的。

对HDD的进一步诊断需要将它连接到第二个IDE接口,并在BIOS中设置为自动检测。如果HDD的型号被识别出来,操作系统就会装载从而可以启动诊断软件。OS可以使用连接到第一个IDE接口的HDD或者软盘来启动。 最简单的诊断是尝试使用FDISK程序创建分区,随后使用Format d:/u命令格式化。Format d:/u命令不会完成真正的格式化,而是使OS执行表面验证,最后在选定的分区上创建系统文件。如果格式化(验证)发现缺陷,他们会在屏幕上显示为坏扇区。当然,这种诊断是很原始的,它的目的是检查HDD的可操作性而不是发现故障甚至消除故障。更多的的详细的诊断可以使用生产商推荐的程序完成,可以从他们的主页上下载诊断程序。

Fujitsu驱动器推荐的诊断软件:
http://www.fel.fujitsu.com/home/drivers.asp?L=en&CID=1
Western Digital 驱动器:
http://support.wdc.com/ru/download/
Samsung 驱动器:
http://www.samsung.com/Products/HardDiskDrive/utilities/index.htm
Seagate 驱动器:
http://www.seagate.com/support/software/
Maxtor 驱动器:
http://www.maxtor.com/en/support/downloads/powermax.htm
IBM 驱动器在HGST品牌下提供:
http://www.hgst.com/hdd/support/download.htm

上面的软件都是在常规的用户模式而不是工厂模式下进行测试;因此它们的作用是有限的。专门的诊断软件不是免费提供的;它们只提供给专门的维修中心和销售商。

下面让我们展示一个查找Western Digital生产的鱼子酱HDD的主轴马达控制电路故障的例子。
WDAC32500和WDAC33100系列驱动器的线路图如图5所示,除了元件的编号和某些元件的值不同以外,此图也可以用于WDAC2340, WDAC2420, WDAC2540, WDAC2700, WDAC2850, WDAC33100, WDAC31200, WDAC21200和 WDAC31600 系列驱动器的维修(图 5)。

现代硬盘驱动器
图 5. HDD的主轴控制电路(WDAC 32500 和 WDAC 33100系列)

如果当HDD 上电以后主轴没有起转,首先将HDA连接到一个完好的PCB上以确定HDA是否正常。若没有找到完好的PCB,可以检查主轴马达的线圈的电阻,应为2欧姆左右;然后继续查找PCB上的故障(主轴马达不能启动常常是由于磁头与磁盘粘连在了一起)。

要检查PCB上的元件,应将PCB从HDA上拆卸下来,将其连接到外部电源保持电子元件朝上放置在工作台上。接下来的工作需要一个扫描频率为50MHz的示波器。

首先打开电源,检查U3和U6芯片(见线路图)的输入电压是否为+5V和+12V,再检查U6芯片的24脚和33脚之间的晶振。然后分别检查输出到U9控制微处理器芯片的57脚和输出到U11读信道芯片的13脚的时钟脉冲是否正常。上面的检查完成后确保没有RESET信号(进入level О)。若所有的要求都满足那么微处理器芯片将会启动并对所有连接到内部数据总线的芯片执行初始化程序。你可以通过是否有控制脉冲:ALE,RD#,WR#,数据总线脉冲等来直接判断微处理器是否运转正常。

要检查主轴马达控制电路将示波器的扫描间隔调到10ms/p,将增益调到2V/p(建议使用1:10倍增探测器)。加电后检查是否有振幅为11-12V的三相马达启动脉冲(连接器J14,J13,J12)。控制电路会尝试启动马达1-2分钟,之后就会放弃。这时你可以关闭电源再打开,或者通过用小镊子短路IDE接头的线1和线2来发送一个RESET命令。如果任何一个相位的振幅小于10V,说明U3芯片有故障。发生这种故障时主轴马达虽然可以启动但是不能达到额定的转速,因此磁头不会从停泊区移走。主轴马达的转速由E35控制点的INDEX脉冲控制(若PCB连接到了HDA)。INDEX脉冲的周期为12毫秒,宽度为140纳秒。U3芯片由U6同步控制芯片和控制主轴马达的SPINDLE START信号控制。使马达启动的信号为SPINDLE START = 1,使马达停止的信号为SPINDLE START = 0。

相位控制信号由U6芯片的Fc1 - Fc6输出;它使用的是TTL控制信号。主轴马达转速的反馈由32Р4910А U11读信道芯片使用SERVO READ DATA 线完成。另外,U6同步控制芯片为U11芯片产生伺服字段寻找信号(SERVO GATE)。

伺服信号和一些控制点示于图6、图7。由于INDEX脉冲和伺服标记(servo marker)宽度大约为140纳秒,所以使用示波器在扫描频率为100MHz或更高时可以清楚的观察到(建议使用1:10倍增探测器)。监测信号时需要使用两路输入信号源,使用INDEX或伺服标记(servo marker)来同步示波器。如果同时观测E37控制点的伺服信号、E13和E7控制点的读数据信号,就可以看到所有的同步字段、扇区等等(见图 8)。

现代硬盘驱动器
图 6.控制点的伺服信号

现代硬盘驱动器
图 7.伺服门电路的示波图


图 8. 控制点的位置

现代硬盘驱动器

微处理器、读数据信道芯片和主轴马达控制芯片的详细信息可以在Intel公司,Silicon Systems公司和SGS-Thomson公司的各自网站(www.intel.com和 www.st.com) 上找到。


硬盘驱动器的一些典型故障和修复方法

维修硬盘驱动器需要一些专门的复杂仪器,不过有时有焊接台和编程器就足够了。在本文的最后一部分我们将会介绍硬盘驱动器的一些典型故障和修复方法。

正如我们在前面的章节提到的,驱动器由两部分组成:机械部分(HDA)和电子部分(PCB)。另外还有固件——一部分存储在PCB上的ROM内,另一部分驻留在磁盘的固件区(驱动器初始化时被载入到HDD微处理器的RAM中)。上述三者互相依赖,缺一不可,他们出现故障的概率是相等的。不过不同厂商生产的不同型号的HDD最易发生故障的部件是不同的。如果要在常规实验室中维修HDD(不是专门实验室),我们必须要拒绝一些维修订单:第一类是HDD机械部分(即HDA)的故障;第二类是固件区数据的故障。

修复HDA的困难在于要求在常压下有非常纯净的空气环境(每立方米少于100个微尘粒子)。在一般环境下或在普通实验室中打开盘体不可避免的会有微尘粒子进入盘体(一般室内环境每立方米大约有600个微尘粒子),必然会对精密的机械部件造成损坏。只有少数维修驱动器机械部件的公司拥有专用的洁净房间或洁净工作台(安装了特殊玻璃柜的桌子,玻璃柜上还有两只套袖以供工作)。另外,一整套完整的专门工具还包括T型改锥(从T9到T3)、六角改锥、用于牢固的固定HDA的固定架和适用于不同型号HDD的磁头的升降台。最重要的还要有具有专业技术的工程人员,他们需要细心、精确,当然还要有经验。一个错误的动作或手指碰到磁碟就会使维修过程变得更加复杂或使维修时间延长很多。所以由于上面的因素,大多数HDD维修公司虽然拥有专门的设备,但是并不具有维修机械部件的能力。

驱动器维修中最简单的工作是恢复固件区的软件模块。模块损坏是造成HDD故障的三种可能原因的其中一种(尽管机械部件和电子部件仍然是完好的)。通常,模块损坏的驱动器不能被计算机的BIOS识别,试图访问它的结果是ABRT(中止)错误(访问命令不能执行)。要修复此类故障只需重写损坏的模块,平均只需5-10分钟的时间。不过,这一过程看上去很简单,执行起来却很复杂。事实上,只有在工厂模式下才能写入模块。要进入工厂模式需要专门的命令(关键之处),不同的厂商,甚至同一厂商生产的不同系列的驱动器的命令都是不同的,它们都被严格保密。固件结构也是千差万别。只有使用相同型号的驱动器上的相同版本和类型的模块才可以重写。我们还要提示的是模块重写不正确或写入了不兼容的模块将会损坏驱动器。例如,写入错误的配置模块(包含有磁头数量的信息)会导致驱动器初始化时寻找不存在的磁头;驱动器的位置调节器会开始不停的敲击,若不及时关闭,最终会损坏磁体表面。因此,对固件区的操作应像对待机械部分(即HDA)一样仔细和准确。所以固件区都有密码保护,而且存取方法为生产商所保密。因此,若没有专门的软件或硬件软件组合,即使很简单的工作也是不可能完成。除了安装了此类软件的主机之外(每种类型的驱动器都有各自相应的程序),维修者还需要遵循一定的测试和修复方法、步骤(每种驱动器的修复方法和步骤也是不同的)。此类设备价格是很高昂的,不是每个人都买的起,所以我们只介绍不需要专门工具、设备和软件的HDD维修方法。

维修HDD的一条基本原则是不要使之变得更坏。因此,对故障进行精确诊断是很重要的。如果是机械部分的故障或固件数据损坏,不要贸然维修,最好把它发送到专门的维修中心。作为例子,我们将讨论一个最广泛的故障——HDD敲击。

如果上电后驱动器发出周期性的敲击声(位置调节器敲击),意味着驱动器不能从磁盘表面读出伺服信息。原因可能是:

磁头故障;
HDA内紧靠磁头的前置放大器/转接器故障;
PCB故障,也就是:
o 读/数据转换信道;
o 位置调节器控制芯片;
o 电源电路(稳压器,滤波器,负电压发生器)。

另外,敲击故障也可能是由于写入了不正确的固件模块引起的:固件数据中包含有不存在的磁头,实际上根本没有对应的伺服数据。即使是经验丰富的HDD维修专家要精确的诊断此种故障也是很困难很复杂的,不过有一些窍门可以使之变得稍微简单一些。首先,要定位出故障发生的源头——HDA内或电路板。将原来的PCB移除并换上一块完好的相同型号相同固件版本的电路板。要注意不是所有的型号的驱动器都是可以这样做的,Seagate的最新型号的驱动器和Fujitsu MPG3xxxAT驱动器的ROM中有唯一的校准参数,交换PCB的同时也要交换ROM。如果敲击停止,驱动器报告准备就绪,那么此时应该检查电路板继续寻找故障。如果敲击继续,说明故障发生在HDA内,这时应该放弃维修——你没有合适的环境可以打开HDA查看里面发生了什么。很可能你还没有发现任何故障,而驱动器已经因为你的打开而损坏了。因此,建议没有专门设备的常规实验室只维修电路板发生故障的HDD。


各系列HDD最常见的典型故障

生产商:Quantum
Quantum 火球系列:EL, EX, CR, CX, lct08, lct10, lct15
故障表现:驱动器正常工作一段时间后(15分钟到几个小时),然后开始敲击。
这是这些型号驱动器的一个非常常见的故障,是由控制主轴马达和位置调节器的芯片引起的;此芯片的焊接质量很不可靠(见下表),引起过热使得停止工作。

HDD型号
主轴马达和位置调节器控制芯片
可供替换的芯片
Quantum 火球EL
Philips TDA5147BH
Panasonic AN8427FBP
Quantum火球EX
Philips TDA5147BH
Panasonic AN8427FBP
Quantum火球CR
Philips TDA5147BH
Panasonic AN8427FBP
Quantum火球CX
Philips TDA5247HT
Panasonic AN8428NGAR
Quantum火球 lct08
Philips TDA5247HT
Panasonic AN8428NGAR
Quantum火球lct10
Philips TDA5247HT
Panasonic AN8428NGAR
Quantum火球lct15
Philips TDA5247HT
Panasonic AN8428NGAR

TDA5247HT (AN8428NGAR)芯片的下部的焊接空间很小,要使用热熔的方法。焊剂从芯片吸收热量并将热量沿着电路板扩散。因此安装或拆除芯片时要使用一个热风机。 要修复这种故障,将芯片拆除,按照图9所示加宽焊接底座(可以使用小刀将保护层去除一部分),清洁底座和芯片的底部,然后将芯片焊上。在焊接时轻轻的按住芯片,焊剂就会从电路板的缝隙流到另一面。仔细将焊接处整平——芯片的模拟输出端为高阻抗,如果有焊接残渣就会影响它的工作。


图 9. 加宽焊接底座

现代硬盘驱动器

这种方法无疑会改进芯片的散热而不会带来负作用。如果芯片经历了很长时间的过热,那么重新焊接不会修复故障,那么就应该更换芯片。建议更换为发热较少的Panasonic芯片, 可以从电子元件商店买到,价格大约为5到10美元。

生产商:Fujitsu
M1638TAU 系列
故障现象:主轴马达不启动。
下面的VCM(音圈马达)&SPM(主轴马达)控制器的连接线路图适用于M1614TAU, M1638TAU, MPA30xxAT, MPB30xxAT 和 MPC30xxAT等系列的驱动器。(见图10)


图10. HA13525A 芯片的连接线路图

现代硬盘驱动器

VCM&SPM控制器控制三相电机;它由Fujitsu生产的MB9004微处理器控制。主轴马达有三种工作模式:启动模式,加速模式和稳定模式。在加电后电源监控芯片(MP3771)发出reset信号到微处理器(MB9004)和VCM&SPM控制器。微处理器使用串行信道控制VCM&SPM控制器的内部寄存器来发出启动命令,并使用Charge pump信号对控制器的提升电容充电。充电电量决定了流入主轴马达的电流。当启动电容充分充电后微处理器控制SPM控制器进入启动模式,然后1.3A的电流流入主轴马达。主轴马达在控制器产生的三相切换信号的控制下开始转动并产生自感应电动势(EMF)。控制器检测自感应电动势并传送给微处理器;微处理器根据此信号控制转速。在加速模式下微处理器加快相位切换速度并监测马达转速直到达到额定转速(5400RPM)。马达达到额定转速后进入稳定模式。在此模式下处理器根据相位信号计算马达旋转周期并通过对提升电容充电或放电来调整转速。主轴每转1/6圈就会调整一次(充电/放电)。

对此种故障进行诊断的复杂性在于,SPM控制器监视主轴旋转产生的EMF并在主轴起转时产生2-3相位切换信号,而这些很难用示波器跟踪。如果主轴不起转(不管什么原因),通常控制器就会停止切换相位,也不会在一段时间以后重试。因此,如果你使用的是常规的示波器,你只能看到脉冲在一段时间之内出现,根本不能用来诊断故障。在理想状态下我们推荐使用在自动记录模式下具有存储功能的3通道示波器。不过这种设备不常见,因此只能依据可见的马达相位脉冲来检查了。

VCM & SPM控制器是一种非常可靠的芯片,很少会损坏。主轴马达不启动更多的是因为其他故障。尽管如此,若VCM & SPM控制器真的损坏了通常是由于过热引起的,可从外观上直接看出来。在修理启动电路时应该检查一下MB3771芯片发出的Stop Spindle(主轴停转)信号。此信号通过三极管Q8和Q9强制磁头停泊并使主轴马达停转。此信号的电平在停泊模式时是1,在运转模式时是0。如果主轴马达主轴马达开始起转你可以用示波器检查一下HA13525A芯片输出的相位控制信号:示波器设置扫描间隔为10 ms/p,增益为2V/p(建议使用1:10倍增探测器)。当三极管Q8或Q9损坏时相位会反转。HA13525A和HA13525B芯片是向下兼容的,即M1638TAU和MPA 系列的驱动器两种芯片都可以使用。MPB和MPC系列的驱动器只能使用HA13525B芯片。

生产商:Fujitsu
MPB, MPC系列
故障现象:驱动器检测到了超出实际额定值的容量,即所谓的自大症。
此故障在MPB,MPC系列的驱动器中很常见;是由于电路板上FLASH ROM芯片中的固件损坏引起的。这两种驱动器使用的FLASH ROM芯片容量为64K,字长为16位,编程电压为5或12V,封装类型为PLCC44。

要修复此类故障只需将相同版本的完好的固件写入FLASH 芯片。Fujitsu驱动器的版本号位于HDA上右下角的条形码下面,格式为:xyy-zzzz,其中x 代表生产月份的16进制形式,yy 代表版本前缀,zzzz  代表实际的固件版本,如:С02-2009。判别MPB和MPC系列驱动器是否兼容只需看实际的固件版本是否相匹配,生产月份和前缀并不重要。

生产商: Fujitsu
MPG3xxxAT/AH 系列
故障现象:意想不到的损坏和数据丢失,并且在PC BIOS中再也不能被识别。

我们要注意这种型号的驱动器打破了驱动器损坏的记录大多数仅仅使用了一年多、刚刚过了质保器就损坏了。故障的罪魁祸首是Cirrus Logic的CL-SH8671-450E芯片。这种芯片是专为Fujitsu生产的,并且MPG3xxxAT/AH 系列的驱动器很早以前就停产了,因此要更换此芯片是很困难的。不过,有一种方法可以复活和重生故障芯片,使驱动器的寿命稍微延长一些。然而,如果你忽略了驱动器的死期并且不采取有效措施(至少应备份重要的数据),固件区的S.M.A.R.T. 日志表会逐渐被填满直到有一天驱动器固件区的模块也会损坏,这时若没有专门软件就不能修复了。

有一种解释说这种芯片之所以出现故障是因为生产时使用了一种新的化学材料,这种化合物在湿润的环境中在高温的作用下会分解产生磷酸。不过这只是一种传言;我们可能永远不会知道这种传言是否是真实的。尽管如此,有一件事是确定的:如果你将此芯片拆卸下来,清除管脚上和管座上的旧的焊剂,清洁后再将芯片焊回,驱动器就又可以正常工作了。

生产商:IBM
DJNA, DPTA, DTLA, AVER, AVVA系列
故障现象:主轴起转,重校准,报告准备就绪,BIOS也可以正确识别但是试图读取驱动器时产生刮擦声,并且磁盘表面出现许多坏扇区。

这种故障是由于数据字段的循环冗余校验码(CRC码)和扇区伺服字段的信息不匹配引起的。当向一个未完成的扇区写入时就会出现这种状况。可能是由于PCB和HDA之间的接头接触不良引起的。两者之间的接头由PCB上的镀锡针形插脚组成(见图11)。时间长了以后焊锡就会脱落造成接触质量恶化。


图11.IBM驱动器上连接磁头的连接器的插脚(从PCB后面看)

现代硬盘驱动器

要修复这种故障将电路板移除,清除插座上的旧焊剂,使用含银的焊剂重新涂抹,然后仔细的清洗焊接位置。再将电路板装配回HDA。最后使用厂商免费提供的软件(见第4部分)清除磁盘表面的所有数据;这样就可以写入正确的CRC码

生产商:Seagate
Seagate 酷鱼IV, V and 7200.7系列

这几个系列驱动器的通病是+12V电路的保护二极管损坏导致的计算机电源单元停止供电。由于二极管的封装没有受到影响,因此在这种情况下元件外观上没有损坏的迹象。若试图将损坏的驱动器连接到正常的电源上进行检测很可能会使电源再次损坏。因此要维修此种驱动器首先用常规的仪表检查0和+12V电路是否有短路。

保护二极管最初是由SGS Thomson公司使用transil技术设计的,用于保护电源短路时峰值持续时间不超过10-20毫秒的电路。 但是这种通病的出现证明HDD的设计者没有料到电源单元的质量如此不可靠。所以只要把损坏的二极管从电路中去除就可以使驱动器正常运转了,不过我们不保证没有此元件HDD也可以无瑕疵的运行。


总结

最后我们要警告需要从损坏的硬盘恢复数据的个人计算机的一般用户:你只有一次尝试恢复数据的机会。第二次恢复数据的可能性会大大减少。许多严肃的恢复数据的专业维修中心拒绝操作盘体被打开过的驱动器;否则将会大大增加他们的工作量。

对于欲投身于HDD修复和数据恢复、欲增加在此领域的知识的初学者,我们建议应该多多阅读专业文档。另外我们推荐iXBT网站的论坛http://www.ixbt.com和下面的文献:

1. J. Goodman. "Hard Disk Mysteries Revealed", translated by V.L. Grigoriev. Kiev: "Dialektika", 1994. - 256 p., illustrated.
2. M. Gouk., "PC disk subsystem".  St. Petersburg.: Piter, 2001. - 336 p, illustrated.
3. "Office informational security". Practical scientific collection of works. First issue "Technical means for data protection ". K.: "TID DS" LLC, 2003.  216 p.
(青岛香农 译)

相关文章 

随便看看 

  1. SQL Server 差异备份还原(图文)
    差异备份是指在对数据库进行完整备份后,从完整备份的时间点开始,针对数据库的每个修改操作进行备份。要还原差异备份需要先还原完...
    阅读全文
  2. 死亡敲击:硬盘的磁头故障导致的数据丢失
    磁头故障是硬盘数据恢复中常遇到的现象,由于外力的作用导致的磁头移位、磁头表面受到磁盘上的磁性物质的污染以及由于电源问题导致...
    阅读全文
  3. 什么BCS/ZCS?为什么光纤硬盘520字节/扇区?
    高端的存储如NetApp、EMC采用了Block Checksum。就是说数据分成Block存储,每一个Block都附加一...
    阅读全文