Как исправить ненадежные внешние жесткие диски, тормозящими при передаче в Linux


В июне прошлого года мы проверяли Ryzen Embedded SBC с Windows 10, и внешний жесткий диск, который мы обычно используем для проверки, имел всевозможные проблемы, включая очень медленную скорость и/или остановку передачи, но без сообщений об ошибках.

На прошлой неделе мы попытались еще раз, установить Ubuntu 20.04 на тот же Ryzen Embedded SBC, и с внешним жестким диском снова возникли проблемы, поэтому просто предположим, что есть некоторые проблемы несовместимости оборудования — SBC и диска, и возможно будет исправить ошибки или найти альтернативное решение.

Иногда это действительно проблема оборудования, когда на диске слишком много поврежденных блоков, и если это так, и диск все еще находится на гарантии, вы можете вернуть его и получить новый (или отремонтированный) диск бесплатно. Но этот диск работал с нашим ноутбуком со скоростью около 100 МБ/с.

У нас закончились идеи, и тут numero53 не прокомментировал, что у него похожие проблемы со многими адаптерами USB-SATA, и хитрость заключалась в том, что отключение UAS (USB Attached SCSI), могло бы улучшить производительность. О аналогичной проблеме сообщили и пользователи Raspberry Pi  и ODROID. Обычно сообщения об ошибках выглядят следующим образом:

У нас не было таких сообщений, но мы все равно пытались отключить UAS на этом конкретном диске. у нас не было уверенности в том, что это сработает. Во-первых, нам нужно найти USB VID / PID для адаптера:

Теперь мы можем создать файл для внесения диска/адаптера в черный список, чтобы предотвратить загрузку модуля UAS для этого диска:

После перезагрузки мы видим, что диск попал в черный список:

Посмотрим, решило ли это нашу проблему, запустив тест iozone:

Нам удалось записать файл размером 1 ГБ со скоростью около 90+ МБ/с. Вполне нормально на этом диске. Проблема исправлена! Показатели чтения ~ 2 ГБ/с явно зависят от кеша …

Очевидно, это довольно распространенная проблема с USB-накопителями Seagate (VID: 0x0bc2) и Western Digital (VID: 0x1058), и Томас Кайзер несколько лет назад просто внес в черный список все такие накопители по умолчанию.

Итак, мы нашли обходной путь в Linux / Ubuntu. Но как насчет Windows 10, раз уж у нас такая же проблема. Мы не могли найти очевидного решения. В папке %WinDir%\System32\drivers есть файл uaspstor.sys, который является драйвером USB Attached SCSI (UAS) для Windows 10. Но он не используется непосредственно нашим накопителем.

Мы полагаем, что можно попробовать переместить/переименовать файлы драйверов, пока проблема не будет решена, но это не идеальное решение, поскольку другие диски, которые действительно правильно работают с UAS, также будут затронуты. Мы поискали способы занести в черный список UAS для определенных драйверов в Windows 10, как мы сделали в Linux, но, похоже, никакого решения нет. Если вы знаете как решить проблему, делитесь.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

5 1 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments