硬盘修理理论知识
程序员文章站
2022-04-25 10:18:06
硬盘修理理论知识● 硬盘的结构 硬盘内部结构关于硬盘结构的文章已经非常多了,不过真正要说清楚的话,就算专门出一本书也说不完,因此这里就不再从头细细讲述了。只是要讲明白一点,到目前为止,在很... 10-09-08...
● 硬盘的结构
硬盘内部结构
关于硬盘结构的文章已经非常多了,不过真正要说清楚的话,就算专门出一本书也说不完,因此这里就不再从头细细讲述了。只是要讲明白一点,到目前为止,在很多文章、技术资料甚至教科书里面讲述的硬盘结构模式,已经是非常老式的硬盘结构了。对于现在的新硬盘来说,都已经全部不采用这样的结构,而是采用了更为复杂、也更加科学的结构方式。
在老式硬盘中,采用的都是比较古老的chs(cylinder/head/sector)结构体系。因为很久以前,在硬盘的容量还非常小的时候,人们采用与软盘类似的结构生产硬盘。也就是硬盘盘片的每一条磁道都具有相同的扇区数,由此产生了所谓的3d参数(disk geometry),即是磁头数(heads)、柱面数(cylinders)、扇区数(sectors)以及相应的3d寻址方式。
chs结构体系
其中:磁头数表示硬盘总共有几个磁头,也就是有几面盘片,最大为255(用8个二进制位存储);柱面数表示硬盘每一面盘片上有几条磁道,最大为1023(用10个二进制位存储);扇区数表示每一条磁道上有几个扇区,最大为63(用6个二进制位存储);每个扇区一般是512个字节,理论上讲你可以取任何一个你喜欢的数值,但好像至今还没有发现取别的值的。
所以磁盘最大容量为:
255×1023×63×512/1048576=8024mb(1m=1048576bytes)
或硬盘厂商常用的单位:
255×1023×63×512/1000000=8414mb(1m=1000000bytes)
由于在老式硬盘的chs结构体系中,每个磁道的扇区数相等,所以外道的记录密度要远低于内道,因此会浪费很多磁盘空间(软盘也是一样)。为了进一步提高硬盘容量,现在硬盘厂商都改用等密度结构生产硬盘。这也就是说,每个扇区的磁道长度相等,外圈磁道的扇区比内圈磁道多。采用这种结构后,硬盘不再具有实际的3d参数,寻址方式也改为线性寻址,即以扇区为单位进行寻址。而为了与使用3d寻址的老软件兼容(如使用biosint13h接口的软件),厂商通常在硬盘控制器内部安装了一个地址翻译器,由它负责将老式3d参数翻译成新的线性参数。这也是为什么现在硬盘的3d参数可以有多种选择的原因(不同的工作模式可以对应不同的3d参数,如lba、large、normal)。而随着磁盘密度的增加、机构的进一步复杂、功能和速度上的提高,如今的硬盘都会在磁盘里面划分出一个容量比较大的,称为“系统保留区”的区域,用于储存硬盘的各种信息、参数和控制程序,有的甚至把硬盘的fireware也做到了系统保留区里面(原来这些信息都是储存在硬盘控制电路板的芯片上的)。这样虽然可以进一步简化生产的流程,加快生产速度和降低生产成本,但是从另一方面,却又大大增加了硬盘出现致命性损坏的几率和缩短了硬盘的使用寿命。我十几年前的200mb硬盘和8年前的1.2gb硬盘到现在还用得非常好,别说是坏道,连运行时的声音都是没有的,但是到后来的4.3gb、6.4gb、10gb、20gb硬盘,都没有能用超过4年的,全部坏掉了。
● 硬盘损坏的种类
一般来说,硬盘的损坏按大类可以分为硬损坏和软损坏。
硬损坏包括磁头组件损坏、控制电路损坏、综合性损坏和扇区物理性损坏(一般人称之为物理坏道)四种。
※ 磁头组件损坏:主要指硬盘中磁头组件的某部分被损坏,造成部分或全部磁头无法正常读写的情况。磁头组件损坏的方式和可能性非常多,主要包括磁头脏、磁头磨损、磁头悬臂变形、磁线圈受损、移位等。
※控制电路损坏:是指硬盘的电子线路板中的某一部分线路断路或短路,或者某些电气元件或ic芯片损坏等等,导致硬盘在通电后盘片不能正常起转,或者起转后磁头不能正确寻道等。
※综合性损坏:主要是指因为一些微小的变化使硬盘产生的种种问题。有些是硬盘在使用过程中因为发热或者其他关系导致部分芯片老化;有些是硬盘在受到震动后,外壳或盘面或马达主轴产生了微小的变化或位移;有些是硬盘本身在设计方面就在散热、摩擦或结构上存在缺陷。种种的原因导致硬盘不稳定,经常丢数据或者出现逻辑错误,工作噪音大,读写速度慢,有时能正常工作但有时又不能正常工作等。
※扇区物理性损坏:是指因为碰撞、磁头摩擦或其他原因导致磁盘盘面出现的物理性损坏,譬如划伤、掉磁等。
软损坏包括磁道伺服信息出错、系统信息区出错和扇区逻辑错误(一般又被称为逻辑坏道)。
※磁道伺服信息出错:是指因为某个物理磁道的伺服信息受损或失效,导致了该物理磁道无法被访问。
※系统信息区出错:是指硬盘的系统信息区(硬盘内部的一个系统保留区,里面又分成若干模块,保存了许多硬盘出厂的参数、设置信息和内部控制程序)在通电自检时读不出某些模块的信息或者校验不正常,导致硬盘无法进入准备状态。
※扇区逻辑错误:是指因为校验错误(ecc错误和crc错误)、扇区标志错误(idnf错误)、地址信息错误(amnf错误)、坏块标记错误(bbm)等原因导致该扇区失效。
一般来说,修复硬盘的软损坏是可能的,很多硬盘厂商发布的硬盘管理和维护软件(dm)都具备修复硬盘软损坏的能力。像扇区逻辑错误这样的问题,即使是一般的低级格式化软件,也是完全可以胜任的。不过在所有的软损坏当中,系统信息区出错属于比较难以修复的种类,因为即使是同一个厂商同一种型号的硬盘,系统信息区也不一定相同;而且硬盘厂商对于自己产品的系统信息区内容和读取的指令代码,一般是不公开的。但是对于ibm和日立的硬盘用户来说就比较幸运了,日立的dft和ibm的ddd-si软件对系统信息区出错还是有比较高的修复成功率的。这两个软件可是真真正正由硬盘的生产厂商发布的硬盘维修软件啊(dft还是免费的),有非常强大的功能,效率和可靠性比起那些要价过万的第三方编写的软件都要高很多,可惜只对ibm和日立的产品有效。
当然,如果仅仅是为了修复软损坏,一个原厂的dm软件就可以完成90%以上的任务了,根本不需要购买上万元的所谓专业软件,而现在hdd regenerator、mhdd、pc-3000和效率源等等这些软件,在宣传上就说明了他们所针对的不仅仅是软损坏,而且连硬损坏里面的物理坏道甚至是一些ic的损坏都可以修复!
pc-3000硬盘维修套装
不能说他们这样的宣传很夸张,因为理论上这确实是可能的。我们的硬盘如果在质保期内坏了,交给厂家的话,他们同样要对这个硬盘进行维修。那么,我们现在就很有必要了解一下厂家对硬盘的维修方法和过程,看看厂家是怎么样维修的,跟纯粹的软件维修有没有什么不同。
● ● 厂家维修硬盘的方法
这里其实可以向大家先说明一点,即使是从厂家出来的全新硬盘,它们的盘片也不是一点瑕疵也没有的。由于磁盘的盘片比较精密,对于生产环境和移动都有非常高的要求,即使是一粒灰尘、一次很轻微的碰撞,都会产生从几个到数以百计的坏扇区。所以,一般地,按照现在硬盘120gb的容量,全新的盘片即使有几千个坏扇区也不是不可能的。只不过硬盘厂商会使用专门的设备去扫描盘片,把那些坏的扇区和磁介质不稳定的扇区都记录下来,做成一个硬盘缺陷列表,写进系统保留区,通过控制程序把这些扇区封闭起来,而硬盘的控制程序在读取硬盘的时候是不会读取这些区域的。现今的硬盘由于功能和参数复杂,写进系统保留区的信息非常多。这样,由于在底层控制的层面就已经把有问题的扇区封闭掉了,所以用户无论用什么格式化和分区软件都不会看到这部分的信息,看起来就像真的完全没有坏道一样。同时,硬盘里面还有另外一种封闭区域,又称为保留容量,它们其实是完全没有问题的好的盘面,但是因为某种原因被封闭起来了。譬如说一个硬盘是60gb,而磁碟的单碟容量为40gb,那么由两片磁碟构成的硬盘就必须封闭掉20gb的容量(磁碟的生产线都是一定的,厂商为了降低成本,都只会生产一种容量的磁碟,通过封闭不同容量的区域来获得不同的实际硬盘容量)。
硬盘厂商用于扫描和测试盘片的机器,每小时可以处理600个盘片
日立生产的用于重写伺服信息的小型伺服机,可以同时处理8个硬盘
弄清楚了硬盘的生产原理,那么厂商如何维修硬盘就很好理解了。对于控制电路、磁头等的损坏,就是应用最简单的替换法,换上新的零件就可以了。对于ic芯片的损坏,可以通过重写ic芯片的信息或者干脆替换ic芯片来修理。对于磁盘盘片的问题,情况就比较复杂。首先,厂商会用专门的仪器设备对硬盘的磁碟表面按照实际的物理地址重新进行全面的扫描,检查出所有坏的、不稳定的扇区,形成一个新的硬盘缺陷列表,然后把它写进硬盘的系统信息区,替换掉原来旧的硬盘缺陷列表。然后调用内部低级格式化程序,对硬盘进行内部格式化。程序会根据新的系统信息区信息,重新对所有的磁道和扇区进行编号、清零,重写磁道伺服信息和扇区信息。经过这样的处理,返修的硬盘就又可以像新的硬盘一样了。
有人可能会有疑问??既然有新的坏扇区加进系统保留区去了,
那么,是不是返修过的硬盘跟新的硬盘是完全没有差别的呢?这里牵涉到一个工艺学的问题??损伤的内敛性和发散性的区别,我打算留到后面说,这里先说说那些第三方软件修复硬盘的原理。
1、scandisk磁盘扫描程序是解决硬盘逻辑坏道最常用的手段,而常见的format命令不能对任何硬盘坏道起到修补作用。如果硬盘出现了坏道,可在windows系统环境下,在“我的电脑”中选中要处理的硬盘盘符,选择其“属性”,在出现的“工具”按钮中选择“查错状态”,点击“开始检查”,再在“扫描类型”中选“全面检查”,并将“自动修复错误”打上“勾”,然后“开始”既可,它将对硬盘盘面作完全扫描处理,并且对可能出现的坏簇作自动修正。其次,在dos状态下,硬盘有坏道,计算机在启动时一般会自动运行scandisk进行扫描,并将坏簇以黑底红字的“b”(bad)标出。如果系统在启动时不进行磁盘扫描或已不能进入windows系统,也可用软盘或光盘启动盘启动电脑后,在相应的盘符下运行scandisk *:(注*为要扫描的硬盘盘符),回车后来对相应需要扫描修复的硬盘分区进行修理。
2、诺顿工具箱中的ndd“磁盘医生”及pctools等相关工具对硬盘进行扫描也是修复硬盘坏道的最常用的方法。
3、如果硬盘上出现了无法修复的坏簇或物理坏道,大家可用一些磁盘软件将这些坏道单独分为一个区并隐藏起来,这样可令你的硬盘延长很多正常的使用寿命。
4、系统显示“track 0 bad,disk unusable”,意思为“零磁道损坏,硬盘无法使用”或用磁盘扫描程序扫描其它硬盘时其0扇区出现红色“b”。硬盘0扇区损坏,可以合理运用一些磁盘软件,把报废的0扇区屏蔽,而用1扇区取而代之就能起到起死回生的效果,这样的软件如pctools9.0和nu8等等。以pctools9.0为例来做说明。用盘启动电脑后,运行pctools9.0目录下的de.exe文件,接着选主菜单select中的drive,进去后在drive type项选physical,按空格选定,再按tall键切换到drives项,选中hard disk,然后ok回车后回到主菜单,打开select菜单,这时会出现partition table,选中进入后出现硬盘分区表信息。该硬盘有两个分区,找到c区,该分区是从硬盘的0柱面开始的,那么,将1分区的beginning cylinder的0改成1就可以了,保存后退出。重新启动电脑后按del键进入回coms设置,运行“ide auto detect”,可以看到cyls由782变成781,保存退出后重新分区格式化该硬盘。
硬盘内部结构
关于硬盘结构的文章已经非常多了,不过真正要说清楚的话,就算专门出一本书也说不完,因此这里就不再从头细细讲述了。只是要讲明白一点,到目前为止,在很多文章、技术资料甚至教科书里面讲述的硬盘结构模式,已经是非常老式的硬盘结构了。对于现在的新硬盘来说,都已经全部不采用这样的结构,而是采用了更为复杂、也更加科学的结构方式。
在老式硬盘中,采用的都是比较古老的chs(cylinder/head/sector)结构体系。因为很久以前,在硬盘的容量还非常小的时候,人们采用与软盘类似的结构生产硬盘。也就是硬盘盘片的每一条磁道都具有相同的扇区数,由此产生了所谓的3d参数(disk geometry),即是磁头数(heads)、柱面数(cylinders)、扇区数(sectors)以及相应的3d寻址方式。
chs结构体系
其中:磁头数表示硬盘总共有几个磁头,也就是有几面盘片,最大为255(用8个二进制位存储);柱面数表示硬盘每一面盘片上有几条磁道,最大为1023(用10个二进制位存储);扇区数表示每一条磁道上有几个扇区,最大为63(用6个二进制位存储);每个扇区一般是512个字节,理论上讲你可以取任何一个你喜欢的数值,但好像至今还没有发现取别的值的。
所以磁盘最大容量为:
255×1023×63×512/1048576=8024mb(1m=1048576bytes)
或硬盘厂商常用的单位:
255×1023×63×512/1000000=8414mb(1m=1000000bytes)
由于在老式硬盘的chs结构体系中,每个磁道的扇区数相等,所以外道的记录密度要远低于内道,因此会浪费很多磁盘空间(软盘也是一样)。为了进一步提高硬盘容量,现在硬盘厂商都改用等密度结构生产硬盘。这也就是说,每个扇区的磁道长度相等,外圈磁道的扇区比内圈磁道多。采用这种结构后,硬盘不再具有实际的3d参数,寻址方式也改为线性寻址,即以扇区为单位进行寻址。而为了与使用3d寻址的老软件兼容(如使用biosint13h接口的软件),厂商通常在硬盘控制器内部安装了一个地址翻译器,由它负责将老式3d参数翻译成新的线性参数。这也是为什么现在硬盘的3d参数可以有多种选择的原因(不同的工作模式可以对应不同的3d参数,如lba、large、normal)。而随着磁盘密度的增加、机构的进一步复杂、功能和速度上的提高,如今的硬盘都会在磁盘里面划分出一个容量比较大的,称为“系统保留区”的区域,用于储存硬盘的各种信息、参数和控制程序,有的甚至把硬盘的fireware也做到了系统保留区里面(原来这些信息都是储存在硬盘控制电路板的芯片上的)。这样虽然可以进一步简化生产的流程,加快生产速度和降低生产成本,但是从另一方面,却又大大增加了硬盘出现致命性损坏的几率和缩短了硬盘的使用寿命。我十几年前的200mb硬盘和8年前的1.2gb硬盘到现在还用得非常好,别说是坏道,连运行时的声音都是没有的,但是到后来的4.3gb、6.4gb、10gb、20gb硬盘,都没有能用超过4年的,全部坏掉了。
● 硬盘损坏的种类
一般来说,硬盘的损坏按大类可以分为硬损坏和软损坏。
硬损坏包括磁头组件损坏、控制电路损坏、综合性损坏和扇区物理性损坏(一般人称之为物理坏道)四种。
※ 磁头组件损坏:主要指硬盘中磁头组件的某部分被损坏,造成部分或全部磁头无法正常读写的情况。磁头组件损坏的方式和可能性非常多,主要包括磁头脏、磁头磨损、磁头悬臂变形、磁线圈受损、移位等。
※控制电路损坏:是指硬盘的电子线路板中的某一部分线路断路或短路,或者某些电气元件或ic芯片损坏等等,导致硬盘在通电后盘片不能正常起转,或者起转后磁头不能正确寻道等。
※综合性损坏:主要是指因为一些微小的变化使硬盘产生的种种问题。有些是硬盘在使用过程中因为发热或者其他关系导致部分芯片老化;有些是硬盘在受到震动后,外壳或盘面或马达主轴产生了微小的变化或位移;有些是硬盘本身在设计方面就在散热、摩擦或结构上存在缺陷。种种的原因导致硬盘不稳定,经常丢数据或者出现逻辑错误,工作噪音大,读写速度慢,有时能正常工作但有时又不能正常工作等。
※扇区物理性损坏:是指因为碰撞、磁头摩擦或其他原因导致磁盘盘面出现的物理性损坏,譬如划伤、掉磁等。
软损坏包括磁道伺服信息出错、系统信息区出错和扇区逻辑错误(一般又被称为逻辑坏道)。
※磁道伺服信息出错:是指因为某个物理磁道的伺服信息受损或失效,导致了该物理磁道无法被访问。
※系统信息区出错:是指硬盘的系统信息区(硬盘内部的一个系统保留区,里面又分成若干模块,保存了许多硬盘出厂的参数、设置信息和内部控制程序)在通电自检时读不出某些模块的信息或者校验不正常,导致硬盘无法进入准备状态。
※扇区逻辑错误:是指因为校验错误(ecc错误和crc错误)、扇区标志错误(idnf错误)、地址信息错误(amnf错误)、坏块标记错误(bbm)等原因导致该扇区失效。
一般来说,修复硬盘的软损坏是可能的,很多硬盘厂商发布的硬盘管理和维护软件(dm)都具备修复硬盘软损坏的能力。像扇区逻辑错误这样的问题,即使是一般的低级格式化软件,也是完全可以胜任的。不过在所有的软损坏当中,系统信息区出错属于比较难以修复的种类,因为即使是同一个厂商同一种型号的硬盘,系统信息区也不一定相同;而且硬盘厂商对于自己产品的系统信息区内容和读取的指令代码,一般是不公开的。但是对于ibm和日立的硬盘用户来说就比较幸运了,日立的dft和ibm的ddd-si软件对系统信息区出错还是有比较高的修复成功率的。这两个软件可是真真正正由硬盘的生产厂商发布的硬盘维修软件啊(dft还是免费的),有非常强大的功能,效率和可靠性比起那些要价过万的第三方编写的软件都要高很多,可惜只对ibm和日立的产品有效。
当然,如果仅仅是为了修复软损坏,一个原厂的dm软件就可以完成90%以上的任务了,根本不需要购买上万元的所谓专业软件,而现在hdd regenerator、mhdd、pc-3000和效率源等等这些软件,在宣传上就说明了他们所针对的不仅仅是软损坏,而且连硬损坏里面的物理坏道甚至是一些ic的损坏都可以修复!
pc-3000硬盘维修套装
不能说他们这样的宣传很夸张,因为理论上这确实是可能的。我们的硬盘如果在质保期内坏了,交给厂家的话,他们同样要对这个硬盘进行维修。那么,我们现在就很有必要了解一下厂家对硬盘的维修方法和过程,看看厂家是怎么样维修的,跟纯粹的软件维修有没有什么不同。
● ● 厂家维修硬盘的方法
这里其实可以向大家先说明一点,即使是从厂家出来的全新硬盘,它们的盘片也不是一点瑕疵也没有的。由于磁盘的盘片比较精密,对于生产环境和移动都有非常高的要求,即使是一粒灰尘、一次很轻微的碰撞,都会产生从几个到数以百计的坏扇区。所以,一般地,按照现在硬盘120gb的容量,全新的盘片即使有几千个坏扇区也不是不可能的。只不过硬盘厂商会使用专门的设备去扫描盘片,把那些坏的扇区和磁介质不稳定的扇区都记录下来,做成一个硬盘缺陷列表,写进系统保留区,通过控制程序把这些扇区封闭起来,而硬盘的控制程序在读取硬盘的时候是不会读取这些区域的。现今的硬盘由于功能和参数复杂,写进系统保留区的信息非常多。这样,由于在底层控制的层面就已经把有问题的扇区封闭掉了,所以用户无论用什么格式化和分区软件都不会看到这部分的信息,看起来就像真的完全没有坏道一样。同时,硬盘里面还有另外一种封闭区域,又称为保留容量,它们其实是完全没有问题的好的盘面,但是因为某种原因被封闭起来了。譬如说一个硬盘是60gb,而磁碟的单碟容量为40gb,那么由两片磁碟构成的硬盘就必须封闭掉20gb的容量(磁碟的生产线都是一定的,厂商为了降低成本,都只会生产一种容量的磁碟,通过封闭不同容量的区域来获得不同的实际硬盘容量)。
硬盘厂商用于扫描和测试盘片的机器,每小时可以处理600个盘片
日立生产的用于重写伺服信息的小型伺服机,可以同时处理8个硬盘
弄清楚了硬盘的生产原理,那么厂商如何维修硬盘就很好理解了。对于控制电路、磁头等的损坏,就是应用最简单的替换法,换上新的零件就可以了。对于ic芯片的损坏,可以通过重写ic芯片的信息或者干脆替换ic芯片来修理。对于磁盘盘片的问题,情况就比较复杂。首先,厂商会用专门的仪器设备对硬盘的磁碟表面按照实际的物理地址重新进行全面的扫描,检查出所有坏的、不稳定的扇区,形成一个新的硬盘缺陷列表,然后把它写进硬盘的系统信息区,替换掉原来旧的硬盘缺陷列表。然后调用内部低级格式化程序,对硬盘进行内部格式化。程序会根据新的系统信息区信息,重新对所有的磁道和扇区进行编号、清零,重写磁道伺服信息和扇区信息。经过这样的处理,返修的硬盘就又可以像新的硬盘一样了。
有人可能会有疑问??既然有新的坏扇区加进系统保留区去了,
那么,是不是返修过的硬盘跟新的硬盘是完全没有差别的呢?这里牵涉到一个工艺学的问题??损伤的内敛性和发散性的区别,我打算留到后面说,这里先说说那些第三方软件修复硬盘的原理。
1、scandisk磁盘扫描程序是解决硬盘逻辑坏道最常用的手段,而常见的format命令不能对任何硬盘坏道起到修补作用。如果硬盘出现了坏道,可在windows系统环境下,在“我的电脑”中选中要处理的硬盘盘符,选择其“属性”,在出现的“工具”按钮中选择“查错状态”,点击“开始检查”,再在“扫描类型”中选“全面检查”,并将“自动修复错误”打上“勾”,然后“开始”既可,它将对硬盘盘面作完全扫描处理,并且对可能出现的坏簇作自动修正。其次,在dos状态下,硬盘有坏道,计算机在启动时一般会自动运行scandisk进行扫描,并将坏簇以黑底红字的“b”(bad)标出。如果系统在启动时不进行磁盘扫描或已不能进入windows系统,也可用软盘或光盘启动盘启动电脑后,在相应的盘符下运行scandisk *:(注*为要扫描的硬盘盘符),回车后来对相应需要扫描修复的硬盘分区进行修理。
2、诺顿工具箱中的ndd“磁盘医生”及pctools等相关工具对硬盘进行扫描也是修复硬盘坏道的最常用的方法。
3、如果硬盘上出现了无法修复的坏簇或物理坏道,大家可用一些磁盘软件将这些坏道单独分为一个区并隐藏起来,这样可令你的硬盘延长很多正常的使用寿命。
4、系统显示“track 0 bad,disk unusable”,意思为“零磁道损坏,硬盘无法使用”或用磁盘扫描程序扫描其它硬盘时其0扇区出现红色“b”。硬盘0扇区损坏,可以合理运用一些磁盘软件,把报废的0扇区屏蔽,而用1扇区取而代之就能起到起死回生的效果,这样的软件如pctools9.0和nu8等等。以pctools9.0为例来做说明。用盘启动电脑后,运行pctools9.0目录下的de.exe文件,接着选主菜单select中的drive,进去后在drive type项选physical,按空格选定,再按tall键切换到drives项,选中hard disk,然后ok回车后回到主菜单,打开select菜单,这时会出现partition table,选中进入后出现硬盘分区表信息。该硬盘有两个分区,找到c区,该分区是从硬盘的0柱面开始的,那么,将1分区的beginning cylinder的0改成1就可以了,保存后退出。重新启动电脑后按del键进入回coms设置,运行“ide auto detect”,可以看到cyls由782变成781,保存退出后重新分区格式化该硬盘。