У меня такая же проблема. В моем случае SMART работал должным образом на устройстве в течение многих лет при использовании Ubuntu 12.04 , а затем под Ubuntu 14.04 произошло именно то, что вы говорите в вопросе.
Проблема связана с новым модулем ядра, который был представлен в Linux Kernel 3.15 и называется uas
(USB Attached SCSI ) (см. Объявление о выпуске ).
Этот модуль теперь отвечает за управление USB Mass Storage Devices. Существует поток, где люди жалуются, что uas
в ядре 3.15 происходит сбой их USB-устройств. Другой говорит, что это может быть причиной SMART проблем.
К счастью, эти проблемы, похоже, исчезли в ядре 3.19 (которое я использую), так как мое устройство определяется правильно. Остается только проблема SMART.
Чтобы это исправить, нужно отключить использование uas
модуля для данного устройства.
Отключить uas
без перезагрузки
Во-первых, отключите все USB-устройства, которые могут его использовать. Затем удалите uas
и usb-storage
модули:
sudo modprobe -r uas
sudo modprobe -r usb-storage
Затем загрузите usb-storage
модуль с параметром, который говорит, что он не должен использоваться uas
для данного устройства:
sudo modprobe usb-storage quirks=VendorId:ProductId:u
VendorId
и ProductId
должны быть заменены вашим поставщиком устройства и идентификатором продукта, которые можно получить с помощью lsusb
команды (они являются символами после ID
).
Например, у меня есть следующее устройство:
Bus 002 Device 011: ID 0bc2:3320 Seagate RSS LLC SRD00F2 [Expansion Desktop Drive]
Таким образом, мой идентификатор поставщика 0bc2
, а мой идентификатор продукта 3320
. Моя команда:
sudo modprobe usb-storage quirks=0bc2:3320:u
Последнее u
говорит usb-storage
игнорировать uas
для устройства (см. Источник ).
На этом этапе вы можете вставить USB-устройство, и оно будет знать, что не следует использовать uas
, чтобы SMART работал правильно. dmesg
При вставке USB-устройства вы увидите такие строки :
usb 2-2: UAS is blacklisted for this device, using usb-storage instead
usb-storage 2-2:1.0: USB Mass Storage device detected
usb-storage 2-2:1.0: Quirks match for vid 0bc2 pid 3320: 800000
scsi host12: usb-storage 2-2:1.0
Сделать изменение постоянным
Предыдущий причуд будет длиться только до тех пор, пока вы не перезагрузите систему. Чтобы сделать его постоянным, вам нужно выполнить шаги, описанные здесь , которые я копирую ниже:
Сначала создайте файл с именем ignore_uas.conf
в /etc/modprobe.d/
каталоге со следующим содержимым:
options usb-storage quirks=VendorId:ProductId:u
Как и прежде, замените VendorId
и ProductId
вашим поставщиком устройства и идентификатором продукта, полученным от lsusb
.
Затем восстановите ваш начальный виртуальный диск:
mkinitcpio -p linux
или, на более новых версиях Ubuntu:
sudo update-initramfs -u
Наконец, перезагрузите компьютер.
Изменить: Больше информации об этой проблеме, и другой способ обойти ее без отключения uas (который имеет лучшую пропускную способность, чем usb-хранилище) можно найти здесь: https://www.smartmontools.org/ticket/971#comment:12
Похоже, что ядро занесено в черный список SAT ATA PASS-THROUGH
на некоторых устройствах при работе в режиме uas, так как у них сломана прошивка.
Таким образом, черный список можно отключить (на свой страх и риск), используя предыдущий метод, который я упоминаю в ответе, но удаляя финал u
из причуды, то есть:
quirks=VendorId:ProductId:
Обратите внимание, однако, что я не проверял этот подход.