하드 드라이브의 I/O 오류 찾기

하드 드라이브의 I/O 오류 찾기

여기 파티션에 일부 I/O 오류가 있습니다. 방금 복사할 수 있는 것을 다른 드라이브에 복사했지만 이제 I/O 오류로 인해 읽을 수 없는 파일을 알고 다른 소스에서 정확한 파일을 복원할 수 있습니다.

Bash에서 이 오류가 있는 파일을 디스크에서 어떻게 검색할 수 있나요?

편집하다

파일 시스템은 NTFS이고 현재 cp를 사용하여 파일을 zfs 디스크에 복사하고 있지만 중요하지 않습니다. 300GB가 넘고 가끔 I/O 오류가 발생하고 개별 파일을 건너뛰는 바람에 하루가 넘게 걸렸습니다.

이러한 파일은 DAW 구성 요소의 일부이며 개별 MIDI 파일이나 WAV 샘플로 읽을 수 없습니다. 성공적으로 통과한 프로젝트 파일에 대해서는 다른 백업에서 특정 샘플 패키지를 다시 설치하고 싶지만, 정말 양이 많기 때문에 전부 다시 설치하거나 누락되거나 손상되었을 수 있는 모든 프로젝트 파일 및 하위 폴더를 테스트하고 싶지는 않습니다. 파일을 저장하고 하루 이상을 낭비했습니다. 따라서 I/O 오류가 있는 파일의 경로를 알면 손상된 패키지 몇 개를 다시 설치하는 것만으로도 시간을 절약할 수 있습니다.

답변1

이는 파티션의 파일 시스템 유형에 따라 다릅니다. ext2/ext3 및 ReiserFS의 경우 다음에서 도움말을 찾을 수 있습니다.smartmontools의 불량 블록 HOWTO.

기본적으로 당신이 하는 일은 다음과 같습니다:

  1. 하드 드라이브 자체 테스트를 시작하면 smartctl소요 시간이 표시됩니다.
  2. 셀프 테스트가 완료된 후 셀프 테스트 결과를 확인하고 첫 번째 불량 블록을 식별합니다. 불량 블록이 없으면 작업이 완료된 것입니다.
  3. 불량 블록의 파티션과 파티션 내 오프셋을 결정합니다.
  4. debugfs오프셋이 파일 내부에 있는지 여부와 그렇다면 어떤 파일인지 확인하는 데 사용됩니다 .
  5. 불량 블록에 무엇이든 쓰기를 사용하십시오 dd. 하드 드라이브는 불량 블록을 예비 블록으로 교체합니다.
  6. 1. 재부팅하여 다음 불량 블록을 가져옵니다.

위의 HOWTO에서 자세한 내용을 확인할 수 있습니다.

답변2

질문 제목부터 시작해 보겠습니다.

하드 드라이브의 I/O 오류 찾기

이 말은 의미가 없습니다. 입출력 오류는 드라이브의 마모로 인해 자연스럽게 발생하거나 최악의 경우 일종의 손상으로 인해 발생합니다. 오해하지 마세요. 다음과 같이 할 수 있습니다.

불량 섹터를 찾아 0으로 채웁니다.


이제 원래 질문은 다음과 같습니다.

이 오류가 있는 파일을 디스크에서 검색하는 방법세게 때리다?

깨지기가 더 어렵습니다. 쉘 스크립트( bash) 솔루션이 필요합니까? 그렇다면 이유를 설명해 주실 수 있나요?


질문의 핵심을 살펴보겠습니다(아마도):

하드 드라이브가 특정 섹터를 읽을 수 없습니다.

옳은? 왜냐하면 만약 그렇다면 당신은실제로는 할 수 없습니다cp이 작업 에 사용됩니다 .


당신은 무엇을 할 수 있나요?

GNU 시작하기ddrescue 사명(그것은Ubuntu 패키지 이름은 다음과 같습니다.gddrescue, 하나 있어요g! ).

어떻게 했는지, 순수한 예로서, 내 말을 왜곡하지 마세요. 그 후 다음과 같습니다.

ddrescue -d -f -r3 /dev/disk/by-partuuid/xxxxxxxxxxxx /path/where/to/store/image/of/the/partition /path/to/log/file/of/this/rescue

물론 을 사용해도 되지만 /dev/sdx1여러 개의 디스크를 연결하면 재부팅 시 문제가 발생하므로 그냥 blkid /dev/sdx1아무거나 사용하세요.

어떤 파일이 완전한지 확인할 수 없습니다. 유감스럽게도 실제로 파일을 열고 파일에 포함된 내용을 보거나 듣는 것 외에는 다른 방법이 없습니다.

오프셋 없이 이미지를 직접 마운트할 수 있습니다. 제가 일반적으로 하는 방식이지만 단순화를 위해...


인용하다:

  1. GNU ddrescue매뉴얼 의 경우클릭 해주세요

  2. 데이터 저장 오류 수정 알고리즘에 대한 기본 정보클릭 해주세요

  3. 일반 UUID 주제의 경우클릭 해주세요

관련 정보