BTRFS 파일 시스템의 일부가 포함된 HDD 장치 파티션에서 일부 손상 오류를 발견했습니다.
matt@ryzen3950 ~> btrfs device stats /dev/dm-2
[/dev/mapper/cryptsda1].write_io_errs 0
[/dev/mapper/cryptsda1].read_io_errs 0
[/dev/mapper/cryptsda1].flush_io_errs 0
[/dev/mapper/cryptsda1].corruption_errs 12
[/dev/mapper/cryptsda1].generation_errs 0
또한 btrfs-scrub을 사용하여 오류를 수정할 수 없습니다. 이것이 반드시 하드 드라이브에 오류가 발생했음을 의미합니까? 하드 드라이브를 교체하고 버려야 할까요? 아니면 다른 문제로 인해 손상이 발생했지만 하드 드라이브는 정상인가요? 하드 드라이브가 실제로 건강한지 어떻게 알 수 있나요?
편집하다
아래 rickhg12hs의 의견에서 영감을 받아 설치했습니다.지능형 모니터링 도구그리고 쿼리 장치 상태를 사용하십시오 smartctl
. 기기를 확인해 보니
sudo smartctl -a -d sat /dev/sda
( /dev/sda
기기로 교체)
이는 무엇보다도 다음과 같이 보고합니다.
SMART overall-health self-assessment test result: PASSED
그런 다음 확장 자체 테스트를 실행했습니다.
sudo smartctl -t long /dev/sda
나중에 위의 첫 번째 명령으로 결과를 확인했습니다.
$ sudo smartctl -a -d sat /dev/sda
[sudo] password for matt:
smartctl 7.1 2020-06-01 r5062 [x86_64-linux-5.9.6] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Seagate BarraCuda 3.5
Device Model: ST2000DM008-2FR102
Serial Number: ZFL0JANK
LU WWN Device Id: 5 000c50 0b61e994b
Firmware Version: 0001
User Capacity: 2,000,398,934,016 bytes [2.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 7200 rpm
Form Factor: 3.5 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS-3 T13/2161-D revision 5
SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Mon Jun 28 07:11:26 2021 PDT
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: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
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: ( 0) seconds.
Offline data collection
capabilities: (0x73) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
No 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: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 201) minutes.
Conveyance self-test routine
recommended polling time: ( 2) minutes.
SCT capabilities: (0x30a5) SCT Status supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 080 046 006 Pre-fail Always - 194321836
3 Spin_Up_Time 0x0003 099 098 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 37
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 1664
7 Seek_Error_Rate 0x000f 083 060 045 Pre-fail Always - 190898752
9 Power_On_Hours 0x0032 086 086 000 Old_age Always - 12558 (250 148 0)
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 37
183 Runtime_Bad_Block 0x0032 100 100 000 Old_age Always - 0
184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
188 Command_Timeout 0x0032 100 099 000 Old_age Always - 1 1 1
189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0022 063 058 040 Old_age Always - 37 (Min/Max 31/42)
191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 0
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 492
193 Load_Cycle_Count 0x0032 094 094 000 Old_age Always - 13428
194 Temperature_Celsius 0x0022 037 042 000 Old_age Always - 37 (0 21 0 0 0)
195 Hardware_ECC_Recovered 0x001a 083 064 000 Old_age Always - 194321836
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 12100h+54m+59.286s
241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 29153824028
242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 49954137838
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 without error 00% 12548 -
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.
제가 아는 한, 이 장치는 완벽하게 작동하고 있습니다. btrfs 손상 오류의 원인이 무엇인지 모르겠습니다(그래서 이 편집 내용을 답변으로 게시하지 않았습니다).
답변1
원시 읽기 오류율과 탐색 오류율은 모두 높으며 과거에는 둘 다 더 나빴습니다. 이는 드라이브가 플래터의 비트 패턴을 읽을 수 없음을 나타냅니다. 드라이브는 내장된 오류 수정 기능(하드웨어 ECC 복구 값 참조)으로 인해 여전히 대부분의 시간을 처리하지만 완전히 건강한 것은 아닙니다.
재할당된 섹터의 표준 개수는 100이지만 원시 값은 0이 아닙니다. 즉, 과거에 일부 섹터가 재할당되었을 수 있음을 의미합니다(원시 값은 정규화되지 않았으므로 정확히 무엇인지 말하기 어렵습니다). 이는 손상 오류를 설명할 수 있으며 BTRFS가 모든 손상 오류를 찾지 못할 수도 있습니다. 일부 파일에 읽기 오류가 있을 것으로 예상됩니다.
따라서 드라이브는 여전히 사용할 수 있지만 마모된 흔적이 보이고 있으며 향후 어느 시점에 오류가 발생할 것으로 예상됩니다(보통 이는 매우 갑자기 발생함). 귀중한 데이터를 넣지 말고 반드시 백업하십시오. 시스템 드라이브로 사용할 수 있으며 운영체제를 재설치하여 복원할 수 있습니다.