Процессы, обращающиеся к USB-устройству, останавливаются и перестают работать
863
tmlen
У меня есть программа, которая должна записывать большое количество файлов на внешний диск USB-3 с файловой системой NTFS. Кажется, с этим есть некоторая проблема: сначала он периодически зависает на несколько минут, а затем постоянно зависает.
Процесс становится бесперебойным. Смотрите скриншот: .
Канал ожидания "read_descriptor". Все эти процессы (пытались запустить его несколько раз) открыли файл /sys/.../usb4/descriptors.
В этом состоянии кажется, что все команды, которые получают доступ к USB-устройству, зависают. В том числе:
lsusb
cat /sys/kernel/debug/usb/devices
USB Reset скрипты, которые вызывают /sys/..../unbind
После того, как я попытался размонтировать раздел, после использования umount --force(возможно, также других команд, точно не уверенных больше) он размонтировался и больше не появляется при вызове mount. Однако в приложении Disks оно по-прежнему отображается как «Размонтирование файловой системы».
Также на диске много плохих секторов (уже 984). Это совершенно новый диск. Кажется, что при записи в Linux из-за этого появляются плохие сектора.
Есть ли способ перезапустить подсистему USB / принудительно отключить устройство, не перезагружая систему? ( update-grubтакже блокирует, и настройка по умолчанию меню загрузчика установлена неправильно, поэтому я не могу удаленно подключиться после перезагрузки).
И что может вызвать эту проблему с USB-накопителем?
Система также, похоже, имела аналогичные проблемы с другим внешним USB-накопителем (замедление чтения до менее 1 МБ / с).
Система Ubuntu Linux, 16.04.2 LTS, Xenial на 64-битной машине
Обновление :
Утилита lspci:
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06) 00:14.0 USB controller: Intel Corporation 9 Series Chipset Family USB xHCI Controller 00:16.0 Communication controller: Intel Corporation 9 Series Chipset Family ME Interface #1 00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-V 00:1a.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #2 00:1b.0 Audio device: Intel Corporation 9 Series Chipset Family HD Audio Controller 00:1c.0 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 1 (rev d0) 00:1c.3 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d0) 00:1d.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #1 00:1f.0 ISA bridge: Intel Corporation 9 Series Chipset Family H97 Controller 00:1f.2 SATA controller: Intel Corporation 9 Series Chipset Family SATA Controller [AHCI Mode] 00:1f.3 SMBus: Intel Corporation 9 Series Chipset Family SMBus Controller 01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GT 740] (rev a1) 01:00.1 Audio device: NVIDIA Corporation GK107 HDMI Audio Controller (rev a1) 03:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 04)
Это диск ssd или жесткий диск? Вы говорите, что думаете, что запись в Linux приводит к повреждению секторов, что, как я понимаю, означает, что у вас есть окна на одной машине, и, похоже, это не вызывает ту же проблему, верно?
Cliff Armstrong 7 лет назад
0
это жесткий диск (LaCie Porsche Design 4TB, диск Seagate). да, на Windows это делает бо проблемы: написал около 500 ГБ к нему, нет не было замораживания и не было ошибок файловой системы впоследствии
tmlen 7 лет назад
0
Очень странно. Вы исключили функциональное оборудование как возможную причину. Я могу только представить, что это несовместимость между модулями ядра и USB-хостом. Можем ли мы получить `lspci`, чтобы увидеть, какие USB-хосты у вас есть? `lsmod` также может быть полезен, чтобы увидеть, какие модули ядра использует ваша система.
Cliff Armstrong 7 лет назад
0
включил его в пост
tmlen 7 лет назад
0
Он не показывает модуль xhci (usb 3), но он может быть скомпилирован в ядро. Что показывает `lspci -v -s 14.0`?
Cliff Armstrong 7 лет назад
0
На самом деле, он не показывает модуль ehci. `lspci -v -s 1d.0`?
Cliff Armstrong 7 лет назад
0
Можете ли вы определить, включен ли LPM (Link Power Management) в этих двух ОС?
Ale..chenski 7 лет назад
0
Если было несколько больших файлов, вы можете использовать "sudo mount -o big_writes / media /" / DEV /", которая не позволяет * fuse * разбивать большие файлы, но может не помочь многим маленьким. Другой вариант может быть монтирование с использованием опции синхронизации, заставляющее записи завершаться перед началом следующего. См. https://askubuntu.com/questions / 297029 / автомонтирования-с асинхронным-опциону
DrMoishe Pippik 7 лет назад
0
xhci и ehci, кажется, были встроены. (Показало такое сообщение при попытке отключить с помощью `modprobe`)
tmlen 7 лет назад
0
Кроме того, не существует ли ограничение в 2,2 ТБ для NTFS?
Ale..chenski 7 лет назад
0
Теперь это вызывает ту же проблему в Windows (ошибка ввода-вывода при копировании с помощью 7zip, а затем `diskpart` и другие приложения зависают). Это не означает «скачок напряжения на USB-порту» или «Устройству требуется больше энергии, чем может обеспечить порт», и больше не монтируется. Это накопитель USB-3 с разъемом USB-C на самом накопителе.
tmlen 7 лет назад
0
1 ответ на вопрос
1
Ale..chenski
Если «ожидающий канал» находится в состоянии «read_descriptor», это означает, что USB-канал начал интенсивное восстановление после довольно серьезной аппаратной проблемы, поскольку «этап дескриптора» происходит только при сбросе порта, а сброс порта происходит только в случае неисправимого Произошла ошибка транзакции.
Тот факт, что он работает под Windows, означает лишь то, что программное обеспечение ОС, вероятно, использует некоторые другие аппаратные конфигурации и параметры контроллера / PHY.
Я сильно подозреваю, что Link Power Management (LPM) виноват здесь. Дистрибутив Linux, вероятно, включает все навороты и новейшие версии, в то время как Windows может использовать так называемый «драйвер фильтра», разработанный Intel для устранения некоторых недостатков контроллера.
Состояния LPM U1 и U2 возникают на аппаратном уровне, поэтому они, вероятно, невидимы со стороны программного обеспечения. Чтобы определить, переходит ли канал назад и вперед в состояния LPM, вам понадобится суперскоростной анализатор протокола USB, Ellisys 280 или Teledyne LeCroy Advisor T3, или какой-либо другой инструмент, который обнаруживает состояния LPM на суперскоростном канале, например, этот гораздо меньше. дорогой инструмент .
Могут ли "плохие сектора" быть повреждением оборудования или просто логическими ошибками в файловой системе или неправильным чтением?
tmlen 7 лет назад
0
@ tmlen, сложно сказать. Проблема, вероятно, в случайном зависании интерфейса USB, но в какой степени это может повредить диск SATA, я не знаю. Вы должны извлечь диск, подключить его к обычному кабелю SATA и тщательно протестировать / переформатировать на работающей доверенной ОС.
Ale..chenski 7 лет назад
0