Восстановить неисправный жесткий диск; получить тупик модуля ядра

Я нахожусь в процессе восстановления умирающего жесткого диска с помощью ddrescue. Утилита работает очень хорошо в тех частях диска, где нет проблем, но в тех частях диска, где есть проблемы, она работает очень медленно и, кажется, вызывает тупик в каком-то модуле ядра.

Во-первых: моя система,

$ uname -a
Linux 3.16.2-1-ARCH #1 SMP PREEMPT Sat Sep 6 13:12:51 CEST 2014 x86_64 GNU/Linux

Вот что происходит, я сейчас на первом этапе восстановления использую ddrescue -dn /dev/sdd ddrescue.img ddrescue.log Повторное обнаружение в моих журналах ядра следующие журналы

[ 1160.113936] end_request: critical target error, dev sdd, sector 520968448
[ 1191.145082] usb 3-2: reset SuperSpeed USB device number 3 using xhci_hcd
[ 1191.159792] xhci_hcd 0000:01:00.0: xHCI xhci_drop_endpoint called with disabled ep ffff88044919cf00
[ 1191.159797] xhci_hcd 0000:01:00.0: xHCI xhci_drop_endpoint called with disabled ep ffff88044919cf48
[ 1222.107631] usb 3-2: reset SuperSpeed USB device number 3 using xhci_hcd
[ 1222.122490] xhci_hcd 0000:01:00.0: xHCI xhci_drop_endpoint called with disabled ep ffff88044919cf00
[ 1222.122495] xhci_hcd 0000:01:00.0: xHCI xhci_drop_endpoint called with disabled ep ffff88044919cf48
[ 1346.337324] sd 17:0:0:0: [sdd] Unhandled error code
[ 1346.337329] sd 17:0:0:0: [sdd]  
[ 1346.337332] Result: hostbyte=0x05 driverbyte=0x00
[ 1346.337334] sd 17:0:0:0: [sdd] CDB: 
[ 1346.337336] cdb[0]=0x28: 28 00 1f 0d 59 80 00 00 01 00
[ 1346.337345] end_request: I/O error, dev sdd, sector 520968576
[ 1377.408091] usb 3-2: reset SuperSpeed USB device number 3 using xhci_hcd
[ 1377.422946] xhci_hcd 0000:01:00.0: xHCI xhci_drop_endpoint called with disabled ep ffff88044919cf00
[ 1377.422951] xhci_hcd 0000:01:00.0: xHCI xhci_drop_endpoint called with disabled ep ffff88044919cf48

Я предполагаю, что это происходит из-за ошибок ввода-вывода, происходящих на уровне ядра - модуль завершает сброс соединения с устройством. (Пожалуйста, поправьте меня, если я ошибаюсь).

Это будет продолжаться некоторое время и работать нормально, пока в конце концов я не получу то, что выглядит как тупик.

[ 4132.846802] usb-storage: Error in queuecommand_lck: us->srb = ffff880446c78300
[ 4132.866845] usb-storage: Error in queuecommand_lck: us->srb = ffff880446c78300
[ 4132.886878] usb-storage: Error in queuecommand_lck: us->srb = ffff880446c78300
[ 4132.906841] usb-storage: Error in queuecommand_lck: us->srb = ffff880446c78300
[ 4132.926928] usb-storage: Error in queuecommand_lck: us->srb = ffff880446c78300
[ 4132.946948] usb-storage: Error in queuecommand_lck: us->srb = ffff880446c78300
[ 4132.966935] usb-storage: Error in queuecommand_lck: us->srb = ffff880446c78300
[ 4132.986990] usb-storage: Error in queuecommand_lck: us->srb = ffff880446c78300
[ 4133.007033] usb-storage: Error in queuecommand_lck: us->srb = ffff880446c78300
[ 4133.027030] usb-storage: Error in queuecommand_lck: us->srb = ffff880446c78300

^ эти сообщения никогда не перестают приходить

Когда он блокирует все связанные блокировки ввода-вывода и уничтожение процесса не работает - мое единственное решение - перезапуск системы (иногда принудительно)- мне кажется, это способ вызвать потенциальное повреждение данных в данных, которые я пытаюсь выздороветь. Мне не нужно перезагружать систему несколько раз, чтобы восстановить этот диск.

  1. Я понимаю, что этот диск выходит из строя, но почему этот модуль в итоге заходит в тупик?
  2. Как мне сообщить об исправлении этой ошибки?
  3. Существуют ли определенные модули ядра, которые я могу перезапустить, чтобы восстановить эту ошибку без перезагрузки? (Моя лучшая попытка была силой удаления uas который останавливает ddrescue, но я не могу запустить его снова)

Заранее благодарю

0 ответов

Другие вопросы по тегам