내 문제 설명은 상당히 방대하므로 먼저 간략한 요약을 제공한 다음 상황을 정확하게 설명하겠습니다.
간략한 요약: 제조업체의 진단 도구가 내 하드 드라이브에서 몇 가지 오류를 발견하고 수정했습니다. 도구 매뉴얼을 이해하는 한 이러한 오류는 불량 블록입니다. 그러나 smartctl(하드 드라이브에서 SMART를 수행하는 Linux 도구)에는 재할당된 섹터가 표시되지 않고 하드 드라이브 상태가 양호하다고 표시됩니다. 첫 번째 질문: 이것이 어떻게 가능합니까? 불량 블록을 수리한다는 것은 섹터를 재할당한다는 뜻이겠죠? 그렇다면 smartctl이 재할당된 섹터를 보고하지 않는 이유는 무엇입니까? 두 번째 질문: 몇 달 전에 이 디스크를 구입했는데 아직 보증 기간이 남아 있습니다. 판매자에게 새것으로 교체해달라고 요청해야 할까요, 아니면 디스크가 좋으니 계속 사용해도 될까요?
이제 정확한 설명은 다음과 같습니다.
저는 Western Digital 하드 드라이브(모델 번호 WDC WD5000AAKX-001CA0)를 가지고 있습니다. 최근에 나는 내 컴퓨터가 때때로 몇 초(약 1분) 동안 멈추는 것을 발견했습니다. 정지 후 dmesg는 다음 오류를 표시합니다.
knoppix@Microknoppix:~$ dmesg
(...)
[ 504.003363] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 504.003374] ata1.00: failed command: READ DMA EXT
[ 504.003383] ata1.00: cmd 25/00:00:80:07:01/00:02:00:00:00/e0 tag 0 dma 262144 in
[ 504.003385] res 40/00:00:09:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)
[ 504.003389] ata1.00: status: { DRDY }
[ 509.016652] ata1: link is slow to respond, please be patient (ready=0)
[ 514.030002] ata1: soft resetting link
[ 514.200386] ata1.00: configured for UDMA/133
[ 514.200420] ata1: EH complete
[ 546.003333] ata1: lost interrupt (Status 0x50)
[ 546.003364] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 546.003371] ata1.00: failed command: READ DMA EXT
[ 546.003380] ata1.00: cmd 25/00:00:80:15:06/00:02:00:00:00/e0 tag 0 dma 262144 in
[ 546.003381] res 40/00:00:09:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)
[ 546.003386] ata1.00: status: { DRDY }
[ 546.003401] ata1: soft resetting link
[ 546.181205] ata1.00: configured for UDMA/133
[ 546.181234] ata1: EH complete
그러나 smartctl에는 "SMART 종합 건강 자가 평가 테스트 결과: 합격"이라고 표시됩니다(나중에 smartctl의 전체 출력 중 몇 단락을 붙여넣겠습니다). smartctl 자체 테스트(smartctl -t Short 또는 smartctl -t long 사용)를 수행하려고 할 때마다 해당 테스트가 호스트에 의해 중단된 것으로 보고됩니다. 그래서 내 하드 드라이브에 대한 부팅 가능한 CD 진단 도구를 다운로드했습니다. 이 도구는 다음과 같습니다.http://support.wdc.com/product/download.asp?groupid=606&sid=2&lang=en
먼저 이 도구를 사용하여 빠른 테스트를 수행했는데 오류가 표시되었습니다(불행히도 오류 코드가 무엇인지 기억이 나지 않습니다). 내가 아는 한, 이 도구는 스마트하고 빠른 자체 테스트만 수행합니다. -test-execution" 드라이브에 포함된 Data Lifeguard 정보를 수집하고 확인하기 위한 SMART 드라이브 빠른 자체 테스트") 그런 다음 확장 테스트를 실행했습니다. 내가 이해한 바에 따르면 이 확장 테스트는 불량 섹터를 찾습니다(http://wdc.custhelp.com/app/answers/detail/search/1/a_id/940/c/130/p/227,295는 "확장 테스트 - 실행"을 의미함) 불량 섹터를 탐지하기 위한 전체 미디어 검사'). 얼마 후 도구는 일부 버그를 발견하고 수정했음을 알렸습니다.
이제 knoppix로 머신을 부팅하고 "smartctl --all"을 실행합니다. 출력은 다음과 같습니다.
root@Microknoppix:/home/knoppix# smartctl --all /dev/sda
smartctl 5.43 2012-06-05 r3561 [i686-linux-3.4.9] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Caviar Blue Serial ATA
Device Model: WDC WD5000AAKX-001CA0
Serial Number: WD-WMAYUW952768
LU WWN Device Id: 5 0014ee 6ad1d9ef1
Firmware Version: 15.01H15
User Capacity: 500,107,862,016 bytes [500 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Wed Dec 12 03:34:39 2012 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 8160) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 83) minutes.
Conveyance self-test routine
recommended polling time: ( 5) minutes.
SCT capabilities: (0x3037) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.
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 - 486
3 Spin_Up_Time 0x0027 189 141 021 Pre-fail Always - 1525
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 587
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 098 098 000 Old_age Always - 1553
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 - 578
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 173
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 413
194 Temperature_Celsius 0x0022 097 093 000 Old_age Always - 46
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 5
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 5
SMART Error Log Version: 1
ATA Error Count: 2
CR = Command Register [HEX]
FR = Features Register [HEX]
SC = Sector Count Register [HEX]
SN = Sector Number Register [HEX]
CL = Cylinder Low Register [HEX]
CH = Cylinder High Register [HEX]
DH = Device/Head Register [HEX]
DC = Device Command Register [HEX]
ER = Error register [HEX]
ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.
Error 2 occurred at disk power-on lifetime: 1548 hours (64 days + 12 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
04 51 01 30 4f c2 a0 Error: ABRT
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
b0 d6 01 be 4f c2 a0 02 00:02:58.316 SMART WRITE LOG
b0 da 01 00 4f c2 a0 02 00:02:58.259 SMART RETURN STATUS
80 44 00 00 44 57 a0 02 00:02:58.259 [VENDOR SPECIFIC]
b0 d6 01 be 4f c2 a0 02 00:02:58.241 SMART WRITE LOG
80 45 00 01 44 57 a0 02 00:02:58.241 [VENDOR SPECIFIC]
Error 1 occurred at disk power-on lifetime: 1515 hours (63 days + 3 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
04 51 01 30 4f c2 a0 Error: ABRT
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
b0 d6 01 be 4f c2 a0 02 00:02:21.841 SMART WRITE LOG
b0 da 01 00 4f c2 a0 02 00:02:21.784 SMART RETURN STATUS
80 44 00 00 44 57 a0 02 00:02:21.784 [VENDOR SPECIFIC]
b0 d6 01 be 4f c2 a0 02 00:02:21.768 SMART WRITE LOG
80 45 00 01 44 57 a0 02 00:02:21.768 [VENDOR SPECIFIC]
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Conveyance offline Completed without error 00% 1552 -
# 2 Conveyance offline Completed: read failure 90% 1548 787927349
# 3 Conveyance offline Completed: read failure 90% 1515 883391611
# 4 Short offline Completed without error 00% 1503 -
# 5 Short offline Completed without error 00% 1503 -
# 6 Short offline Aborted by host 80% 1502 -
# 7 Extended offline Completed without error 00% 9 -
# 8 Short offline Completed without error 00% 6 -
# 9 Short offline Aborted by host 90% 6 -
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
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
보시다시피 오프라인 전송이 완료되었지만 읽기에 실패했습니다. 그러나 반면에 모든 속성은 괜찮아 보입니다. 예를 들어 Realulated_Sector_Ct는 0입니다.
또한 전체 디스크를 /dev/null로 이동하려고 다시 시도했습니다. 다시 dmesg에서 오류가 발생했습니다.
root@Microknoppix:/home/knoppix# nice -n 20 ionice -c 3 cat /dev/sda > /dev/null
During this cat dmesg shows such errors:
knoppix@Microknoppix:~$ dmesg
(...)
[ 504.003363] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 504.003374] ata1.00: failed command: READ DMA EXT
[ 504.003383] ata1.00: cmd 25/00:00:80:07:01/00:02:00:00:00/e0 tag 0 dma 262144 in
[ 504.003385] res 40/00:00:09:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)
[ 504.003389] ata1.00: status: { DRDY }
[ 509.016652] ata1: link is slow to respond, please be patient (ready=0)
[ 514.030002] ata1: soft resetting link
[ 514.200386] ata1.00: configured for UDMA/133
[ 514.200420] ata1: EH complete
[ 546.003333] ata1: lost interrupt (Status 0x50)
[ 546.003364] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 546.003371] ata1.00: failed command: READ DMA EXT
[ 546.003380] ata1.00: cmd 25/00:00:80:15:06/00:02:00:00:00/e0 tag 0 dma 262144 in
[ 546.003381] res 40/00:00:09:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)
[ 546.003386] ata1.00: status: { DRDY }
[ 546.003401] ata1: soft resetting link
[ 546.181205] ata1.00: configured for UDMA/133
[ 546.181234] ata1: EH complete
제 생각에는 마더보드에 문제가 있거나 디스크를 마더보드에 연결하는 데이터 케이블에 문제가 있는 것 같습니다. 그래서 동일한 케이블과 슬롯을 사용하여 다른 디스크를 마더보드에 연결하고 /dev/null에 연결했습니다. 성공했고 dmesg에는 오류가 표시되지 않았습니다.
답변1
재할당에 실패하여 재할당된 섹터가 없습니다. 드라이브에 5개의 Offline_Un 수정 가능 섹터가 표시되는데, 이는 자동 복구가 실패할 때 발생합니다. dmesg 출력에는 명백한 읽기 실패, SMART 오류 및 SMART 테스트에 대한 읽기 실패가 표시됩니다. 귀하의 질문에서 언급했듯이 이러한 섹터를 수정하는 방법은 여러 가지가 있지만 제 경험에 따르면 이것은 매우 단기적인 수정입니다.
드라이브를 교체하십시오.