![我可以修复或重新使用坏掉的硬盘吗?](https://linux22.com/image/1560119/%E6%88%91%E5%8F%AF%E4%BB%A5%E4%BF%AE%E5%A4%8D%E6%88%96%E9%87%8D%E6%96%B0%E4%BD%BF%E7%94%A8%E5%9D%8F%E6%8E%89%E7%9A%84%E7%A1%AC%E7%9B%98%E5%90%97%EF%BC%9F.png)
我的硬盘出现大量读/写 I/O 错误、坏扇区和一般故障。这是一块 2 TB 的西部数据鱼子酱绿硬盘。硬盘正在坏掉,但并未损坏,因此我的系统可以识别它,我可以访问它,等等。
我希望这不是重复的,因为其他每个问题都涉及恢复数据,我已经做过了。如果有人想了解这个过程,我可以详细阐述,但它基本上涉及将整个驱动器逐块移动到另一个驱动器,同时出现大量 I/O 错误,并且必须多次重新启动和恢复移动。该驱动器是我 +20TB LVM 服务器的一部分,在 Ubuntu 12.04 下。它现在是空的,未分区。
这是硬盘的 SMART 信息。如您所见,有几个危险信号:错误率、重新分配……(这是一个旧的、使用频繁的硬盘):
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 140 138 021 Pre-fail Always - 10000
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 661
5 Reallocated_Sector_Ct 0x0033 192 192 140 Pre-fail Always - 62
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 026 026 000 Old_age Always - 54086
10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 219
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 133
193 Load_Cycle_Count 0x0032 001 001 000 Old_age Always - 637609
194 Temperature_Celsius 0x0022 106 095 000 Old_age Always - 46
196 Reallocated_Event_Count 0x0032 138 138 000 Old_age Always - 62
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 001 001 000 Old_age Offline - 613558
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 53401 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
这是在对设备执行几 MB 的简单 dd 操作时系统日志中出现的错误的一个小示例:
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg] CDB:
[vie may 4 12:08:45 2018] Write(10): 2a 00 00 00 c8 00 00 04 00 00
[vie may 4 12:08:45 2018] end_request: I/O error, dev sdg, sector 51200
[vie may 4 12:08:45 2018] Buffer I/O error on device sdg, logical block 6400
[vie may 4 12:08:45 2018] lost page write due to I/O error on sdg
[vie may 4 12:08:45 2018] Buffer I/O error on device sdg, logical block 6401
[vie may 4 12:08:45 2018] lost page write due to I/O error on sdg
[vie may 4 12:08:45 2018] Buffer I/O error on device sdg, logical block 6402
[vie may 4 12:08:45 2018] lost page write due to I/O error on sdg
[vie may 4 12:08:45 2018] Buffer I/O error on device sdg, logical block 6403
[vie may 4 12:08:45 2018] lost page write due to I/O error on sdg
[vie may 4 12:08:45 2018] Buffer I/O error on device sdg, logical block 6404
[vie may 4 12:08:45 2018] lost page write due to I/O error on sdg
[vie may 4 12:08:45 2018] Buffer I/O error on device sdg, logical block 6405
[vie may 4 12:08:45 2018] lost page write due to I/O error on sdg
[vie may 4 12:08:45 2018] Buffer I/O error on device sdg, logical block 6406
[vie may 4 12:08:45 2018] lost page write due to I/O error on sdg
[vie may 4 12:08:45 2018] Buffer I/O error on device sdg, logical block 6407
[vie may 4 12:08:45 2018] lost page write due to I/O error on sdg
[vie may 4 12:08:45 2018] Buffer I/O error on device sdg, logical block 6408
[vie may 4 12:08:45 2018] lost page write due to I/O error on sdg
[vie may 4 12:08:45 2018] Buffer I/O error on device sdg, logical block 6409
[vie may 4 12:08:45 2018] lost page write due to I/O error on sdg
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg] Unhandled error code
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg]
[vie may 4 12:08:45 2018] Result: hostbyte=DID_OK driverbyte=DRIVER_TIMEOUT
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg] CDB:
[vie may 4 12:08:45 2018] Write(10): 2a 00 00 00 cc 00 00 04 00 00
[vie may 4 12:08:45 2018] end_request: I/O error, dev sdg, sector 52224
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg] Unhandled error code
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg]
[vie may 4 12:08:45 2018] Result: hostbyte=DID_OK driverbyte=DRIVER_TIMEOUT
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg] CDB:
[vie may 4 12:08:45 2018] Write(10): 2a 00 00 00 d0 00 00 04 00 00
[vie may 4 12:08:45 2018] end_request: I/O error, dev sdg, sector 53248
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg] Unhandled error code
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg]
[vie may 4 12:08:45 2018] Result: hostbyte=DID_OK driverbyte=DRIVER_TIMEOUT
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg] CDB:
[vie may 4 12:08:45 2018] Write(10): 2a 00 00 00 d4 00 00 04 00 00
[vie may 4 12:08:45 2018] end_request: I/O error, dev sdg, sector 54272
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg] Unhandled error code
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg]
[vie may 4 12:08:45 2018] Result: hostbyte=DID_OK driverbyte=DRIVER_TIMEOUT
[vie may 4 12:08:45 2018] sd 5:0:0:0: [sdg] CDB:
[vie may 4 12:08:45 2018] Write(10): 2a 00 00 00 d8 00 00 04 00 00
[vie may 4 12:08:45 2018] end_request: I/O error, dev sdg, sector 55296
在我看来,这似乎是由于硬件老化而导致的故障,但我想知道是否有人对其原因有不同的看法。
我并不笨,而且我已经花了足够多的时间来恢复它的数据,所以我不会把重要的信息放在那里,哈哈。我只是想知道是否有任何程序(软件甚至硬件)可以用来“修复”其中一些坏扇区。这主要是出于好奇和想要学习的角度。如果我最终保留它,我会用它来测试东西,为我的其他驱动器备份零件等。
总结:我可以“修复”损坏的硬盘(不关心其数据)吗?
答案1
是的,你确实可以修复它。但是,这有点毫无意义。最终的结果将导致你购买第二个驱动器,更换盘片(以清除盘片损坏和坏扇区),可能刷新或更换接口板以重置 SMART 数据……实际上,在旧驱动器的外壳上构建一个新驱动器。这需要另一个驱动器的零件……使你的整个维修变得毫无意义。
除非你迫切想要保留某些东西,否则 2TB WD Greens 往往会在亚马逊上经常打折,而且现在总体来说相当便宜(不到 70 美元)。如果还有剩余的话,我会尽可能地恢复数据,拿一把 Torx 螺丝刀,把它拆开,然后开始用坏掉的 HDD 盘片制作镜像的项目。
HDD 盘片是设备的核心,也是数据所在的地方。通常,坏扇区意味着玻璃盘片上的薄金属出现凹陷或不再能被磁化。旧型号的盘片不再耐用,即使它们通常是实心金属。一些非常老的盘片甚至有贵金属芯。在所有情况下,当扇区不能被磁化时,它对驱动器来说就毫无用处了。这种情况是无法真正恢复的。