ddrescue에서 현재 복사 위치를 변경하거나 영역을 건너뛰는 방법

ddrescue에서 현재 복사 위치를 변경하거나 영역을 건너뛰는 방법

현재 ddrescue를 사용하여 고장난 3TB WD Red 드라이브에서 데이터를 복구하려고 합니다.

2주 후에는 약 1TB를 얻었지만 읽기 속도는 초당 몇 킬로바이트로 증가했고 이제는 완료하는 데 몇 년이 걸립니다. 드라이브 전원을 껐다가 켜면 읽기 속도가 몇 초 동안 초당 수백/킬로바이트로 증가했다가 다시 초저속으로 떨어지는 것을 발견했습니다.

디스크 헤드에 붙어 있는 플래터에 약간의 먼지가 있는 것 같아요. 헤드가 주차 위치로 미끄러질 때 제거됩니다.
ddrecsue는 현재 다음과 같이 실행됩니다:

ddrescue -f -n -b 4096 /dev/sda /dev/sdb /media/usbstick/rescue.log

이제 이 영역을 건너뛰고 다른 곳(예: 1500GB)으로 계속하고 싶지만 방법을 모르겠습니다. 매개 변수가 있지만 --input-position=bytes설명서에는 다음과 같이 나와 있습니다.

infile에 있는 복구 필드의 시작 위치(바이트)입니다. 기본값은 0입니다.이것은 ddrescue가 복사를 시작하는 지점이 아닙니다.

또한 --skip-size=[initial][,max]불량 섹터 이후에 크기를 건너뛰는 것 같은데 이는 제가 원하는 것이 아닙니다.

이것을 달성하는 방법에 대한 아이디어가 있습니까?

답변1

전체 문서 ddrescue(참고자료 참조 info ddrescue)에서는 다음 예를 다루고 있습니다.

예 3: 전체 드라이브 /dev/sda를 /dev/sdb로 복구하는 경우 /dev/sda는 위치 12345678에서 고정됩니다.

ddrescue -f /dev/sda /dev/sdb mapfile       <-- /dev/sda freezes here
  (restart /dev/sda or reboot computer)
  (restart copy at a safe distance from the troubled sector)
ddrescue -f -i 12350000 /dev/sda /dev/sdb mapfile
  (then copy backwards down to the troubled sector)
ddrescue -f -R /dev/sda /dev/sdb mapfile

따라서 해당 옵션은 -i영역을 건너뛰는 데 작동합니다. 경고하다

이것은 ddrescue가 복사를 시작하는 지점이 아닙니다.

다른 옵션과 관련하여 설명서에는 다음 사항도 설명되어 있습니다.

-i bytes
--input-position=bytes
    Starting position of the rescue domain in infile, in bytes. Defaults to 0. This is not the point from which ddrescue starts copying. (For example, if you pass the option '--reverse' to ddrescue, it starts copying from the end of the rescue domain). In fill mode it refers to a position in the infile of the original rescue run. See the chapter Fill mode (see Fill mode) for details.

따라서 사용하지 -R않거나 사용하지 않는 한 특정 바이트 범위를 건너뛰는 오프셋 -F으로 사용할 수 있습니다 .-i

관련 정보