
幾天以來,我的 Seagate Momentus 7200.4 故障越來越多,可能是因為停電。在出現「警告:您的硬碟故障」(我使用的是 Fedora)之後,主要症狀是速度緩慢:持續 100% CPU 等待數小時,幾乎無法執行任何操作。我做了一個備份,然後重新啟動,我必須執行 e2fsck -y (大量輸出),我必須稍後重複(甚至在某些時候沒有啟動,內核恐慌),我做了一些 smartctl 測試很長時間並且簡而言之,我把它單獨放置了一晚,以進行扇區校正或其他什麼。
現在累積的錯誤數量似乎較少,計算機基本上可以使用,但我該怎麼辦:除了修復扇區之外,是否有一些效果更好的fsck 命令,或者其他方法讓它跳過壞扇區並繼續運行與hdparm一一對應?或者驅動器肯定會被丟棄嗎?
摘自 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 "扇區.+$" | sort -u 和我 sudo hdparm --write-sector --yes-i-know-what-i-am-doing '十幾個扇區。現在運行另一個測試,讓我們看看結果如何。
更新2:我必須手動使用 hdparm 修復一些壞扇區但是,一天晚上後,我在系統日誌中發現的所有錯誤似乎都已成功自動更正,正如它們通常應該的那樣。同時,我遇到了一些有趣的錯誤,例如 techno 音樂的聲音失真和 grep 崩潰,但 yum 更新可能足以修復它們。最後一次 smartctl -a /dev/sda 完成,沒有錯誤;我現在有“ATA 錯誤計數:5004”,197 Current_Pending_Sector 和 198 Offline_Un Correctable 為 2。
更新3:系統大部分可用,但問題仍然存在:「ATA 錯誤計數:9484」。我有時必須使用 hdparm 技巧,但我認為它無法正常工作,因為問題稍後出現在以下扇區上。 Offline_Un Correctable 沒有成長,因此我懷疑磁碟無法停用壞磁區。看來我得放棄了,去買個新的了…
答案1
希望您的所有資料都已備份嗎?
如果沒有,請盡快取得一個新磁碟,至少與舊磁碟一樣大,並開始本機備份。
根據我的經驗,儘早更換磁碟比稍後更換磁碟要容易得多。
但是,如果您有現金,您可能會想投資一份旋轉晶體。在磁碟上運行它 - 在極端情況下可能需要幾天甚至幾週的時間。它並不總是能夠恢復磁碟,但令人驚訝的是它經常執行此操作。事實上,它會定期將磁碟從崩潰的邊緣拉回來,我已經讓它復活了幾台筆記型電腦。在一個案例中,它將磁碟恢復到 12 個月後仍在使用的狀態。在另一種情況下,它恢復了大部分數據,足以進行更輕鬆的重建。雖然價格大約是 90 美元,但並不便宜。如果錯誤是由機器的電源故障引起的,Spinrite 可能會很好地解決問題。如果沒有,它會告訴您情況有多糟糕,並可能為您贏得足夠的時間複製到另一個磁碟。
順便說一句,壞扇區應該由磁碟中的韌體自動標記,您不應該弄亂它們。有趣的是,Spinrite 放置磁碟的操作經常會重置壞扇區,因為它們可能是由於磁頭移動不一致而不是磁碟故障而被標記的。
順便說一句,正如許多研究人員發現的那樣,SMART 警告非常無用,因為它們不能很好地預測磁碟故障。谷歌對此事進行了大量研究。