几天以来,我的 Seagate Momentus 7200.4 故障越来越多,可能是因为断电。在出现“警告:您的硬盘驱动器出现故障”(我使用的是 Fedora)之后,主要症状是运行缓慢:持续 100% CPU 等待数小时,几乎无法执行任何操作。我进行了备份,然后重新启动,并且不得不执行 e2fsck -y(大量输出),之后我不得不重复执行此操作(甚至在某个时候没有启动,内核崩溃),我做了一些长短不一的 smartctl 测试,我把它放了一夜,让它进行扇区校正或诸如此类的操作。
现在累积的错误数量似乎减少了,计算机也基本可以使用了,但我该怎么办:除了使用 hdparm 逐个修复扇区之外,是否有效果更好的 fsck 命令,或者其他方法可以让它跳过坏扇区并继续运行?还是驱动器肯定会被丢弃?
摘自 smartctl -x /dev/sda:
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
1 Raw_Read_Error_Rate POSR-- 085 074 006 - 243348742
5 Reallocated_Sector_Ct PO--CK 100 100 036 - 0
7 Seek_Error_Rate POSR-- 084 060 030 - 238612361
9 Power_On_Hours -O--CK 087 087 000 - 11535
198 Offline_Uncorrectable ----C- 100 100 000 - 8
199 UDMA_CRC_Error_Count -OSRCK 200 200 000 - 0
240 Head_Flying_Hours ------ 100 253 000 - 132680129719553
241 Total_LBAs_Written ------ 100 253 000 - 2525013242
242 Total_LBAs_Read ------ 100 253 000 - 2162196433
Error 3759 [18] occurred at disk power-on lifetime: 11535 hours (480 days + 15 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER -- ST COUNT LBA_48 LH LM LL DV DC
-- -- -- == -- == == == -- -- -- -- --
40 -- 51 00 00 00 22 7e 00 3d 2a 00 00 Error: UNC at LBA = 0x227e003d2a = 148142832938
Commands leading to the command that caused the error were:
CR FEATR COUNT LBA_48 LH LM LL DV DC Powered_Up_Time Command/Feature_Name
-- == -- == -- == == == -- -- -- -- -- --------------- --------------------
60 00 00 00 08 00 22 7e 00 3d 28 40 00 18:38:24.892 READ FPDMA QUEUED
27 00 00 00 00 00 00 00 00 00 00 e0 00 18:38:24.891 READ NATIVE MAX ADDRESS EXT [OBS-ACS-3]
ec 00 00 00 00 00 00 00 00 00 00 a0 00 18:38:24.889 IDENTIFY DEVICE
ef 00 03 00 46 00 00 00 00 00 00 a0 00 18:38:24.889 SET FEATURES [Set transfer mode]
27 00 00 00 00 00 00 00 00 00 00 e0 00 18:38:24.889 READ NATIVE MAX ADDRESS EXT [OBS-ACS-3]
SMART Extended Self-test Log Version: 1 (1 sectors)
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 11528 574443398
更多的: http://p.defau.lt/?DTSGCmr7mb_anDD3IQ9Bgg http://p.defau.lt/?hNM7_BusGyz4DYLi9XX0Kg http://p.defau.lt/?wQArANAXPLnpyD87xUY6CA http://p.defau.lt/?hXbtLh27yFZhySu0y9axJw
更新:正如您所说,磁盘已经要被丢弃了,我执行了 dmesg | grep -oE "sector.+$" | sort -u 并且我执行了 sudo hdparm --write-sector --yes-i-know-what-i-am-doing 'da twenty sector。现在运行另一个测试,让我们看看结果如何。
更新 2:我必须使用 hdparm 手动修复更多坏扇区但是,一晚之后,我发现系统日志中的所有错误似乎都已成功自动更正,正如它们通常应该做的那样。在此期间,我遇到了一些有趣的错误,例如失真的电子音乐和 grep 崩溃,但 yum 更新可能足以修复它们。最后一个 smartctl -a /dev/sda 完成且没有错误;我现在有“ATA 错误计数:5004”,197 Current_Pending_Sector 和 198 Offline_Uncorrectable 为 2。
更新 3:系统基本可用,但问题仍然存在:“ATA 错误计数:9484”。我有时不得不使用 hdparm 技巧,但我认为它不能正常工作,因为问题随后出现在以下扇区上。Offline_Uncorrectable 没有增长,所以我怀疑磁盘无法停用坏扇区。我想我必须放弃并购买一个新的……
答案1
希望您的所有数据都已备份?
如果没有,请尽快获取一个新磁盘,至少与旧磁盘一样大,然后开始本地备份。
根据我的经验,尽早更换磁盘要容易得多。
然而,如果你有现金,你可能想投资一份旋转式。在磁盘上运行该程序 - 在极端情况下可能需要几天甚至几周的时间。它无法总是恢复磁盘,但它出奇地频繁地做到了。事实上,它会定期将磁盘从边缘带回来,我已经用它恢复了几台笔记本电脑。在一种情况下,它将磁盘恢复到 12 个月后仍在使用的程度。在另一种情况下,它恢复了大部分数据,足以进行更从容的重建。但它的价格约为 90 美元,并不便宜。如果错误是由您的机器的电源故障引起的,Spinrite 可能会很好地修复它。如果不是,它会向您显示情况有多糟糕,并可能为您赢得足够的时间复制到另一个磁盘。
顺便说一句,坏扇区应该由磁盘中的固件自动标记,您不应该弄乱它们。有趣的是,Spinrite 对磁盘进行的练习经常会重置坏扇区,因为它们可能是由于不一致的磁头移动而不是磁盘故障而被标记的。
顺便说一句,正如许多研究人员发现的那样,SMART 警告毫无用处,因为它们不能很好地预测磁盘故障。Google 就此事进行了大规模研究。