У мене була така ж проблема. У моєму випадку SMART працював належним чином на пристрої роками під час використання Ubuntu 12.04 , а потім під Ubuntu 14.04 сталося саме те, про що ви розповідаєте у питанні.
Проблема пов'язана з новим модулем ядра, який був представлений у Linux Kernel 3.15 під назвою uas
(USB Attached SCSI ) (див. Анонс випуску ).
Цей модуль тепер відповідає за управління USB-накопичувачами. Є нитка, де люди скаржаться на те, що 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:
Зауважте, однак, що я не перевіряв цей підхід.