ext4 파일 시스템 손상 - ​​하드웨어 오류일까요?

ext4 파일 시스템 손상 - ​​하드웨어 오류일까요?

dmesg컴퓨터를 켜고 약 30분 후에 다음 오류가 발생합니다 .

 [ 1355.677957] EXT4-fs error (device sda2): htree_dirblock_to_tree: inode #1318420: (comm updatedb.mlocat) bad entry in directory: directory entry across blocks - block=5251700offset=0(0), inode=1802725748, rec_len=179136, name_len=32
 [ 1355.677973] Aborting journal on device sda2-8.
 [ 1355.678101] EXT4-fs (sda2): Remounting filesystem read-only
 [ 1355.690144] EXT4-fs error (device sda2): htree_dirblock_to_tree: inode #1318416: (comm updatedb.mlocat) bad entry in directory: directory entry across blocks - block=5251699offset=0(0), inode=2194783952, rec_len=53280, name_len=152
 [ 1356.864720] EXT4-fs error (device sda2): htree_dirblock_to_tree: inode #1312795: (comm updatedb.mlocat) bad entry in directory: directory entry across blocks - block=5251176offset=1460(13748), inode=1432317541, rec_len=208208, name_len=119

/dev/sdaSSD이며 noop 스케줄러를 사용하고 있습니다.

/etc/fstab기입:

UUID=acb4eefa-48ff-4ee1-bb5f-2dccce7d011f / ext4 errors=remount-ro,noatime,discard,user_xattr 0 1

시스템 정보:

$ cat /proc/mounts | grep /dev/sd
/dev/sda1 /boot ext2 rw,noatime,errors=continue 0 0
$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.3 LTS"
$ uname -a
Linux leetpad 2.6.35-30-generic-pae #61~lucid1-Ubuntu SMP Thu Oct 13 21:14:29 UTC 2011 i686 GNU/Linux

출력 smartctl -a:

smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model:     STT_FTM28GX25H
Serial Number:    P637510-MIBY-706A009
Firmware Version: 1916
User Capacity:    128,035,676,160 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Thu Nov 24 20:53:48 2011 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
See vendor-specific Attribute list for marginal Attributes.

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:            (0x1d) SMART execute Offline immediate.
                    No Auto Offline data collection support.
                    Abort Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    No Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x00) Error logging NOT supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   0) minutes.
Extended self-test routine
recommended polling time:    (   0) minutes.

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     0x0000   005   000   000    Old_age   Offline  In_the_past 0
  9 Power_On_Hours          0x0000   141   002   000    Old_age   Offline      -       0
 12 Power_Cycle_Count       0x0000   115   002   000    Old_age   Offline      -       0
184 Unknown_Attribute       0x0000   084   000   000    Old_age   Offline  In_the_past 0
195 Hardware_ECC_Recovered  0x0000   000   000   000    Old_age   Offline  FAILING_NOW 0
196 Reallocated_Event_Count 0x0000   000   000   000    Old_age   Offline  FAILING_NOW 0
197 Current_Pending_Sector  0x0000   000   000   000    Old_age   Offline  FAILING_NOW 0
198 Offline_Uncorrectable   0x0000   002   107   000    Old_age   Offline      -       21198
199 UDMA_CRC_Error_Count    0x0000   063   003   000    Old_age   Offline      -       26957
200 Multi_Zone_Error_Rate   0x0000   099   124   000    Old_age   Offline      -       446
201 Soft_Read_Error_Rate    0x0000   024   154   000    Old_age   Offline      -       328
202 TA_Increase_Count       0x0000   115   254   000    Old_age   Offline      -       115
203 Run_Out_Cancel          0x0000   247   245   000    Old_age   Offline      -       83
204 Shock_Count_Write_Opern 0x0000   000   000   000    Old_age   Offline  FAILING_NOW 0
205 Shock_Rate_Write_Opern  0x0000   016   039   000    Old_age   Offline      -       0
206 Flying_Height           0x0000   005   000   000    Old_age   Offline  In_the_past 0
207 Spin_High_Current       0x0000   055   015   000    Old_age   Offline      -       0
208 Spin_Buzz               0x0000   248   001   000    Old_age   Offline      -       0
209 Offline_Seek_Performnce 0x0000   095   000   000    Old_age   Offline  In_the_past 0
211 Unknown_Attribute       0x0000   000   000   000    Old_age   Offline  FAILING_NOW 0
212 Unknown_Attribute       0x0000   000   000   000    Old_age   Offline  FAILING_NOW 0
213 Unknown_Attribute       0x0000   000   000   000    Old_age   Offline  FAILING_NOW 0

Warning: device does not support Error Logging
Warning! SMART ATA Error Log Structure error: invalid SMART checksum.
SMART Error Log Version: 1
No Errors Logged

Warning! SMART Self-Test Log Structure error: invalid SMART checksum.
SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


Device does not support Selective Self Tests/Logging

7시간 동안 memtest를 실행했는데 메모리 오류가 발견되지 않았습니다.

이 경우 무엇이 잘못될 수 있는지에 대한 확실한 아이디어가 있습니까? 내가 상상할 수 있는 가장 합리적인 것은 SSD가 일부 쓰기 요청을 자동으로 삭제하여 결국 EXT4 파일 시스템 불일치가 발생한다는 것입니다(그러나 디스크 I/O 오류는 없음). 어떻게 이런 일이 일어날 수 있습니까? 올바르게 설정되었는지 확인해야 하는 관련 구성 옵션이 있습니까?

하드웨어 오류를 진단하려면 어떤 도구를 사용해야 합니까? 데이터를 덮어쓰지 않고 SSD 장애를 진단할 수 있습니까?

답변1

198 오프라인_수정 불가능 0x0000 002 107 000 Old_age 오프라인 - 21198

실패했습니다. RMA입니다.

SMART 테스트를 실행하고 싶을 수도 있지만 이러한 값을 사용하면 형식적인 것일 뿐이므로 실패할 가능성은 거의 없습니다.

테스트를 실행하려면 다음을 사용하세요.

smartctl -t long /dev/sda

테스트가 언제 종료되는지 알려주고, smartctl -a /dev/sda다시 실행하면 자체 테스트 섹션에 테스트 결과가 표시됩니다.

답변2

먼저 루트 디스크의 전체 fsck를 수행할 수 있습니다. 때때로 빠른 검사에서 몇 가지 중요한 오류가 누락되는 경우가 있음을 발견했습니다. 루트 디렉터리에 있는 파일을 터치하여 이 작업을 수행할 수 있지만(Linux 배포판에 따라 다름) 시도해 볼 수도 있습니다.

 touch /forcefsck

그리고 재부팅하거나 복구 CD를 시작하고 그곳에서 루트에 대한 fsck를 수행합니다. 전체적으로는 -f fsck 매개변수를 사용한다는 의미입니다.

둘째, syslog에 하드웨어 오류가 표시되어 있습니까?

Mr. Kario가 지적했듯이 smartctl을 사용하여 디스크 상태를 확인할 수 있습니다. 그러나 내가 사용한 일부 디스크는 정보를 보고하지 않는 것으로 나타났습니다.

관련 정보