ddrescue까지 버블링되지 않는 I/O 오류

ddrescue까지 버블링되지 않는 I/O 오류

ddrescue를 사용하여 손상된 USB 스틱에서 이미지를 얻으려고 합니다. 프로세스는 드라이브의 처음 100MB에 대해 작동하다가 완전히 중단됩니다. ddrescue 출력이 정지됩니다(몇 시간 동안 움직이지 않음).

ddrescue 프로세스는 "D"입니다. 무정전 절전(일반적으로 IO) 상태이며 신호는 이를 중지하지 않으며 USB 드라이브를 분리하는 것만 가능합니다.

I/O 오류가 ddrescue에 도달하지 않아 다음 블록으로 넘어갈 수 없는 것 같습니다. 커널이 ddrescue에 I/O 오류를 반환하여 계속 진행할 수 있도록 하는 방법이 있습니까?

기본 옵션을 사용하여 ddrescue를 실행했습니다.

sudo ddrescue /dev/sdc /tmp/image_usb_rescue.img /myt/image_usb_rescue.log

dd대신 사용하면 ddrescue동일한 결과가 발생합니다(프로세스 중단).

dmesg에서 다음 메시지가 나타납니다.

[ 2247.230715] usb 1-2: reset high-speed USB device number 15 using xhci_hcd
[ 2247.381353] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_TIME_OUT driverbyte=DRIVER_OK cmd_age=1s
[ 2247.381377] sd 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 00 05 eb 00 00 00 f0 00
[ 2247.381385] blk_update_request: I/O error, dev sda, sector 387840 op 0x0:(READ) flags 0x84700 phys_seg 30 prio class 0
[ 2252.054160] usb 1-2: reset high-speed USB device number 15 using xhci_hcd
[ 2252.203889] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_TIME_OUT driverbyte=DRIVER_OK cmd_age=1s
[ 2252.203912] sd 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 00 06 19 00 00 00 f0 00
[ 2252.203920] blk_update_request: I/O error, dev sda, sector 399616 op 0x0:(READ) flags 0x84700 phys_seg 15 prio class 0
[ 2254.610160] usb 1-2: reset high-speed USB device number 15 using xhci_hcd

USB 컨트롤러 드라이버 문제가 아닌지 확인하기 위해 두 가지 다른 시스템(AMD 데스크톱 및 Intel 노트북)에서 복구를 시도했습니다. 결과는 동일했습니다.

플러그를 뽑고 USB 스틱을 연결한 다음 불량 영역을 건너뛰는 옵션을 사용하여 ddrescue를 다시 시작하려고 시도했지만 --input-position작동하지만 문제가 많아 수동으로 수행하는 것이 불가능합니다.

관련 정보