
Я пытаюсь получить образ с поврежденного USB-накопителя с помощью ddrescue. Процесс работает для первых 100 МБ диска, а затем полностью зависает: вывод ddrescue заморожен (не движется даже в течение нескольких часов).
Процесс ddrescue находится в состоянии «D» — непрерывного сна (обычно IO), и сигналы не остановят его, остановить его можно только отключением USB-накопителя.
Кажется, ошибки ввода-вывода не достигают ddrescue, поэтому он не может перейти к следующему блоку. Есть ли способ убедиться, что ядро возвращает ошибку ввода-вывода ddrescue, чтобы он мог двигаться дальше?
Я запустил 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
возможностью пропуска поврежденной области. Это сработало, но из-за количества проблем сделать это вручную невозможно.