불량 섹터 또는 하드웨어 오류가있는 하드 드라이브에서 데이터를 복구하기위한 ddrescue와 같은 오류 처리 기능이있는 rsync와 같은 파일 복사 유틸리티 [닫힘]


12

디스크 헤드 불량, 모터 불량 또는 하드 드라이브가 데이터를 매우 느리게 읽고 많이 읽는 다른 문제와 같은 잠재적 인 기계적 문제로 인해 읽기에 실패한 불량 블록 또는 섹터가있는 하드 드라이브가 있습니다 읽기 오류 평균 50KB / 초가 표시되고 일부 읽기는 10KB / 초 미만으로 떨어지며 일반적으로 파일 또는 섹터에 보통 2-10 분 이상 (일반적으로 2-10 분 이상) 시간이 초과되기 전에 rsync 사용).

속도가 크게 변하는 것처럼 보이며 파일에 많은 영향을 미치며 마지막으로 "고정되지 않은"상태가되면 다시 멈추기 전에 짧은 버스트 동안 만 지속되는 것 같습니다. 드라이브는 가끔씩 파일을 복사하는 소리만으로 매우 조용합니다 (일반적으로 잠시 멈추거나 잠기지 않은 경우 다시 끼기 전에). 따라서 일반적으로 HDD 사망과 관련된 사악한 소리는 없습니다. 누군가는 잘못 정렬 된 디스크 헤드로 인해 문제가 발생한 것처럼 들렸다 고 제안했습니다. 데이터 헤드를 성공적으로 읽기 전에 많은 다시 읽기가 필요합니다. 그럴듯 해 보이지만

어쨌든 rsync의 문제점은 적절한 오류 처리 지원이없는 것입니다. 분명히, 그것은 고장난 하드 드라이브에서 데이터를 복구하는 데 사용하기위한 것이 아니라, 그러한 용도로 사용되는 소위 "데이터 복구"유틸리티 일반적으로 삭제 된 파일 또는 엉망 파티션의 복구에 중점을 둡니다. 죽어가는 하드 드라이브에서 파일을 복사합니다. 삭제 된 파일 복구는 내가 필요로하는 것이 아니며, 따라서 내가 아직 찾은 것을 찾을 수 없다는 실망감을 이해할 수 있습니다.

당연히이 곳은 아마도 "당신은 ddrescue를 사용해야합니다!"라고 말할 것입니다. 글쎄, 그것은 훌륭하고 멋지지만, 나는 이미 대부분의 데이터를 백업 했으므로 특정 파일을 복구하고 싶습니다. ddrescue와 마찬가지로 블록별로 전체 파티션을 복구하려고 시도하는 것에 대해서는 걱정하지 않습니다. 특정 파일과 디렉토리 만 구조하는 데 관심이 있습니다.

이상적으로, 내가 원하는 것은 rsync와 ddrescue 사이의 일종의 십자가입니다. 소스와 대상을 rsync와 같은 일반 파일의 디렉토리로 지정할 수있게하는 것 (ddrescue에 필요한 두 개의 전체 파티션이 아닌)과 파일을 건너 뛸 수있는 방법 초기 실행에서 오류가 발생했다가 나중에 실행시 오류가있는 파일을 복구 할 수 있습니다 (물론 약간 변경된 명령 사용). 재시도 횟수를 지정하는 옵션도 제공합니다. ddrescue가 블록과 어떻게 작동하는지, rsync와 같은 특정 파일 / 디렉토리와 작동하는 유틸리티 만 원합니다.

그래서 나는 여기서 공상을하고 있습니까, 아니면 이것을 할 수있는 무언가가 있습니까? 아니면 rsync 또는 ddrescue를 이런 식으로 작동시키는 방법일까요? 어떤 "솔루션"할 파일을 선택하고 초기 실행에서 오류가있는 파일을 건너 뛸 수 있고 나중에 해당 오류를 다시 시도 / 재 시도 할 수있는 한 어떤 솔루션이든 작동 할 수 있습니다.

지금까지 다음 옵션을 사용하여 rsync를 시도했지만 시간 초과보다 오랫동안 파일에 걸리는 경우가 많으며 이상적으로 다음 파일로 이동하여 나중에 가져 오는 파일로 다시 돌아가고 싶습니다. 붙어. 그래도 가능하지 않다고 생각합니다. 어쨌든, 지금까지 내가 사용했던 것이 있습니다.

rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/

답변:


3

3TB Hitachi가 고통스럽게 느리게 읽습니다. ddrescue는 파일 수준에서 작동합니다. 그러나 디렉토리에는 없습니다. 그러나 ddrescue의 --timeout 또는 --min-read-rate 옵션을 작동시킬 수 없었습니다.

한 번에 하나의 파일을 ddrescue하기 위해 스크립트에서이 작업을 수행하려고합니다.

cat listoffiles | while read file
pipe while> do
pipe while> ls -l "$file"
pipe while> ddrescue -n -e1  "$file" /cc/RecoveredFiles/"$file" /cc/RecoveredFiles/"$file".llog
pipe while> date
done | tee -a  /cc/RecoveredFiles/ddrescue.log

3

이 질문을받은 이후 몇 년 동안 rsync가 변경되었을 수 있습니다.

내 경험은 rsync현재 죽어가는 하드 드라이브에서 물건을 복사하는 훌륭한 일을하는 것입니다.

rsync -a <src> <dest>

오류가 발생하면 재실행하여 다시 실행하면 해당 파일을 다시 시도합니다.

rsync --version 보고서 rsync version 2.6.9 protocol version 29

다른 답변에 관해서 :

2011 년 답변은 ddrescue와 상업적으로 동등한 도구를 홍보하는 것으로 보입니다. 파일 인식이라는 표시는 없습니다. 수상한. 2013 년 답변은 흥미 롭습니다.


2

좋은 질문은 세부 수준을 좋아합니다. 이 시나리오에서 잘 작동하는 유틸리티를 들어 나는에서 Filescavenger을 시도하는 것이 좋습니다 Quetek . 100 + 카운트에서 과도한 다시 읽기를 허용하지만 더 중요한 것은 파일을 평가 한 다음 이미지를로드하고 스캔하는 데 시간을 낭비하지 않고 전체 내용을 이미지로 덤프 할 수있는 디스크 이미징 기능이 있습니다 파일. 이 유틸리티는 개인 사용자를 위해 $ 50를 실행하지만, 돈을 소비하기 전에 이미지에서 복구 할 수있는 것을 볼 때까지 다운로드하여 테스트 할 수 있습니다.

전문적인 사용이라면 비용이 많이 들지만 논리 및 하드웨어 RAID 배열에 대한 지원을 포함하여 중요한 기능을 얻습니다.

이것도 실패하면 소프트웨어 복구 도구의 시점을 넘어 섰을 수 있습니다. 귀하가 실험실 복구 비용을 정당화 할 수있는 경우 귀하가 거주하는 국가, 주 및 도시를 알려주십시오. 가까운 연구소 또는 경쟁 업체 실험실 중 하나를 추천 할 수 있습니다.

크리스


1

프로그레시브 복사기를 원합니다 . 전체 드라이브를 대상으로하지만 파일 경로를 매개 변수로 사용하므로 개별 파일에서도 작동합니다. 디렉토리에서 작동하지 않는다고 생각합니다. 각 파일을 지정해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.