ddrescue 후에도 "입력/출력 오류"가 지속됩니다.

ddrescue 후에도 "입력/출력 오류"가 지속됩니다.

NTFS로 포맷된 2TB 외장 HDD( /dev/sda)가 있습니다. 최근에 파일을 이동할 때 "입력/출력 오류"가 발생하고 명령으로 이상한 출력이 표시되기 시작했습니다 ls.

...
??????????? folder_1
?   ?   ?   folder_2
ls: cannot access 'folder_3': Input/output error
ls: cannot open directory 'folder_3': Input/output error
...

새로운 4TB HDD( )가 있어서 다음 명령을 사용하여 디스크가 고장나기 전에 파일을 복사 /dev/sdb해 보았습니다.ddrescue

ddrescue -f -r3 /dev/sda /dev/sdb mapfile

보고된다여기그리고여기.

명령은 오류 보고 없이 약 6시간 만에 완료되었지만 "입력/출력 오류"가 새 드라이브에 여전히 존재합니다. 즉, ls새 드라이브에서 실행하려고 하면 여전히 이전과 동일한 출력이 제공됩니다.

Windows에서 새 드라이브를 열려고 했더니 외장 드라이브에 "수리해야 할" 항목이 있다는 경고가 나타났습니다(이전 드라이브에서도 동일한 작업을 수행했음에도 불구하고). 기회를 주려고 했습니다. Windows에서 새 드라이브를 "복구"한 후에는 더 이상 "입/출력 오류" 메시지가 표시되지 않지만 폴더는 사라졌습니다. 즉, 새 드라이브에는 folder_1없습니다 folder_2.folder_3

이것이 출력이다smartctl -a /dev/sda

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       2107
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       320
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       103
 10 Spin_Retry_Count        0x0033   106   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       189
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       19
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       105
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       1166
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       15 (Min/Max 13/46)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   253   000    Old_age   Always       -       0
220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       0
222 Loaded_Hours            0x0032   100   100   000    Old_age   Always       -       53
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       181
240 Head_Flying_Hours       0x0001   100   100   001    Pre-fail  Offline      -       0

~에 따르면이 테이블, "괜찮아" 보이는군요(아마도).

그래서 내 질문은 다음과 같습니다.

  1. 기존 드라이브에서 "모든" 데이터를 복구할 수 있는 방법이 있습니까?
  2. 1.의 대답이 "아니요"인 경우. 어떤 "다음 단계"를 취해야 합니까? 새 드라이브에서 동일한 오류를 찾는 데 사용하는 것만 으로 ddrescue는 해결책이 아닌 것 같습니다.
  3. rsync새 드라이브를 특정 파일 시스템(예: exFAT)으로 포맷한 다음 이전 드라이브의 모든 파일(예:)을 새 드라이브에 복사해야 합니까?

답변1

수집한 팁에 따르면 문제는 디스크 물리적 수준이 아니라 파일 시스템 구조 수준에 있는 것 같습니다. 일부 데이터 구조(예: 디렉터리)가 손상되었습니다. I/O 오류는 커널 파일 시스템이 불가능한 위치에 있는 디스크에 액세스하도록 지시하는 디렉터리 구조의 이탈 포인터에서 비롯된 것으로 추측할 수 있습니다.

나는 당신처럼 시작하겠습니다 (별도의 디스크로 복구). 귀하가 다른 복사본에서 복원을 시도하는 동안 두 복사본 중 하나를 읽기 전용 백업으로 유지하겠습니다.

그런 다음 액세스 가능한 파일을 새 파티션(ntfs 또는 다른 파티션)에 복사합니다.

그런 다음 일부 하위 수준 도구를 통해 나머지 부분을 복원해 보겠습니다. 나는 ntfs 관련 도구를 모르지만 존재한다고 확신합니다. 데이터 가치가 높으면 전문 서비스를 시도해 볼 수 있습니다. 복구 가능한 데이터는 확실히 복구할 수 있습니다.

직접 시도해 보고 싶다면 데이터 파일 자체가 손상되지 않고 디스크에서 연속되어 있다는 가정 하에 .jpeg 및 .mov 파일을 포함하는 디렉터리가 손상되더라도 해당 파일을 recoverjpeg저장할 수 있습니다.recovermov

다른 데이터 파일을 복구하려면 흑마법이 필요합니다. 여기에는 파일 서명(명령에서 사용하는 서명 file)을 검색하기 위한 일부 ntfs 관련 도구나 대용량 파일 바이너리 편집기를 찾고 데이터를 검색하여 이를 식별하고 파일의 시작과 끝을 찾는 작업이 포함됩니다(디스크에 있다고 가정).

관련 정보