ddrescue 속도를 높이는 방법

ddrescue 속도를 높이는 방법

ddrescue를 사용하여 실패한 외장 USB HDD Maxtor M3 4TB를 백업하려고 합니다.

처음에는 약 300kB/s를 얻었기 때문에 외부 상자를 뜯어 SATA를 통해 드라이브를 데스크탑에 직접 연결하여 속도가 약 700kB/s로 향상되었습니다. -a(최소 읽기 속도) -b(블록 크기) -c(한 번에 복사할 섹터 수)를 사용한 후 도착했습니다.

-a 20M -b 4096B -c 2048

위에서 언급한 조합은 속도를 약 1800kB/s로 증가시켰습니다. 또한 현재 속도는 몇 바이트/초에서 115MB/초까지 변동하며 전체 평균은 언급된 1800kB/s 정도를 유지합니다. 마치 정상적인 '정상 드라이브' 속도로 1초 동안 읽은 다음 잠시 시간이 초과될 때까지 기다렸다가 감소된 속도로 계속되는 것처럼 느껴집니다.

비율을 향상시키는 데 도움이 되는 다른 매개변수에 대한 경험이 있습니까? 전체 4TB 드라이브는 현재 속도로 약 한 달이 걸리기 때문에 어떤 개선이라도 높이 평가됩니다.

편집 - 전체 명령

전체 명령은

sudo ddrescue -a 20M -b 4096 -c 2048  -f -n -vv /dev/sdi /dev/sdh video_drive.log

편집 2 - 아 그래서 너무 느리네요

SMART 지원이 때때로 비활성화되는 방식으로 드라이브가 실패하지만 작동하는 동안 Read Error RateHardware ECC Recovered필드의 값이 높아지고 증가하는 것을 발견했습니다. 나는 ECC 복구가 오류가 표시되지 않는 이유이자 속도가 너무 낮은 이유라고 가정합니다.

답변1

디스크를 읽을 때 ddrescue모든 블록을 읽어야 합니다. 어떤 블록이 불량인지 미리 알 수 없습니다. 따라서 필연적으로 불량 블록을 읽으려고 시도합니다. 디스크는 포기하고 오류를 반환하기 전에 이 블록을 올바르게 읽으려고 매우 열심히 노력할 것입니다. 소비자급 하드 드라이브에서는 이 동작을 비활성화하거나 제어할 수 없습니다.

따라서 ddrescue재시도하지 않더라도 불량 블록으로 인해 프로세스 속도가 많이 느려집니다. 계속 나아가는 것 외에는 할 수 있는 일이 없습니다.

관련 정보