Неможливо виконати дані SMART та самотестування на зовнішньому жорсткому диску


13

Зараз у мого зовнішнього накопичувача немає помилок, але я просто хочу перевірити вручну, щоб переконатися.
Як видно із зображення нижче, опція для даних SMART та самовипробування не зацвітає. Також див. Подробиці про жорсткий диск на самому зображенні.

  1. Я спробував запустити, gksu gnome-disksале все-таки варіант заграв.
  2. Я побіг sudo smartctl --all /dev/sdb --test=short -T permissiveя отримав цю помилку:

smartctl 6.4 2014-10-07 r4002 [x86_64-linux-3.19.0-15-generic] (локальна збірка) Copyright (C) 2002-14, Брюс Аллен, Крістіан Франке, www.smartmontools.org

Не вдалося прочитати ідентифікацію пристрою: поле невідповідності про помилку scsi в команді scsi

=== СТАРТ ІНФОРМАЦІЙНОГО СЕКЦІЯ ===

Модель пристрою: [Інформація не знайдена]

Серійний номер: [Інформація не знайдена]

Версія прошивки: [Інформація не знайдена]

Пристрій: немає в базі даних smartctl [для детальної інформації: -P showall]

Версія ATA така: [Інформація не знайдена]

Місцевий час: ср 17 червня 11:33:46 2015 IST

Підтримка SMART така: Неоднозначно - слова 82-83 ATA IDENTIFY DEVICE не показують, чи підтримується SMART.

Підтримка SMART така: неоднозначна - слова 85-87 ATA IDENTIFY DEVICE не відображаються, якщо функцію SMART увімкнено.

Помилка обов'язкової команди SMART: вихід. Щоб продовжити, додайте один або кілька варіантів '-T permissive'.

введіть тут опис зображення


Тут же проблема. Я можу додати, що це відбувається в Ubuntu 14.04 , але НЕ в Ubuntu 12.04, де SMART правильно читається і GUI, і командним рядком. Будь-які ідеї?
Альваро Гутьеррес Перрес

1
Знайшли рішення, дивіться мою відповідь
Альваро Гутьєррес Перрес

Відповіді:


13

У мене була така ж проблема. У моєму випадку 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:

Зауважте, однак, що я не перевіряв цей підхід.


Я використовую Ubuntu 15.10 з Linux ядром 4.2, я зробив те, що ви сказали, але я це не працює для мене
Едвард Торвальдс

@edwardtorvalds це GUI те, що не працює, чи також smartctl? У моєму випадку графічний інтерфейс залишається затьмареним (я ще не перезавантажувався), але smartctlпрацює.
Альваро Гутьєррес Перрес

2
Без mkinitcpio 16.04. Хіба це не "sudo update-initramfs -u", а не зараз?
філофель

1
Чудова відповідь! Я можу отримати доступ до свого USB-накопичувача Seagate і отримати з нього всі дані smartctl. Я спробував твою редагування там із видаленням uі, на жаль, повісив накопичувач, тому я не зміг отримати будь-яких даних SMART, і час завантаження був повільним. Однак, я додав назад, uі це працює ідеально.
Терранс

1
Для більш ніж одного це виглядає так:quirks=0bc2:ab24:u,0bc2:ac30:u
Том Хейл,

6

Зовнішні накопичувачі (через USB, я вважаю) складні з SMART. Деякі взагалі не працюють. В smartmontoolsлюдях розміщений список жорстких дисків з командним рядком , щоб додатиsmartctl (див п'ятого стовпчика).


Зокрема, для накопичувачів Seagate Expansion, схоже, вам потрібно -d satабо -d sat,12. Спробуйте наступне:

sudo smartctl -d sat --all /dev/sdb
sudo smartctl -d sat,12 --all /dev/sdb

Якщо одна з цих функцій працює, вона вказує, який -dперемикач додати до ваших smartctlкоманд.


обидва дають мені посилання на
Едвард Торвальдс

назва зовнішнього hdd: Розширення Seagate External. Схоже, це підтримується, але все-таки варіанти дають помилку
Едвард Торвальдс

3

Просто оновлення, яке я додаю до відповіді Альваро

Щойно перевірив це в Ubuntu 18.04 на зовнішній накопичувач Seagate, який у мене там, де я не зміг взагалі smartctlпрочитати диск. Це вимагало перезавантаження, тому що я не хотів відставати від своєї системи і безладно з USB-з'єднаннями.

Перший забіг lsusbі отримав всю мою інформацію про привід:

terrance@terrance-ubuntu:~$ lsusb
Bus 006 Device 002: ID 0bc2:a0a4 Seagate RSS LLC Backup Plus Desktop Drive
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 1532:0118 Razer USA, Ltd 
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 003: ID 046d:c215 Logitech, Inc. Extreme 3D Pro
Bus 003 Device 002: ID 1532:005b Razer USA, Ltd 
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Як ви бачите, мій диск містить ім'я Seagate, тому все, що мені потрібно було зробити, це запустити наступний рядок, щоб додати інформацію до /etc/modprode.d/ignore_uas.confфайлу:

echo options usb-storage quirks=$(lsusb | awk '/Seagate/ {print $6}'):u | sudo tee -a /etc/modprobe.d/ignore_uas.conf

Просто не забудьте замінити Seagateім'я вашого диска. Тепер, коли я дивлюся на це, /etc/modprode.d/ignore_uas.confя бачу це як:

~$ cat /etc/modprobe.d/ignore_uas.conf 
options usb-storage quirks=0bc2:a0a4:u

Тоді просто запустіть, update-initramfsщоб зміни стали постійними:

sudo update-initramfs -u

Потім перезавантажте систему. Тепер smartctl може читати мій зовнішній привід.

$ sudo smartctl -a /dev/sdf
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.15.0-43-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.14 (AF)
Device Model:     ST3000DM001-1E6166
Serial Number:    W1F3DNG2
LU WWN Device Id: 5 000c50 06a323610
Firmware Version: SC47
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Fri Jan 11 23:07:43 2019 MST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
See vendor-specific Attribute list for marginal Attributes.

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (  592) seconds.
Offline data collection
capabilities:            (0x73) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    ( 336) minutes.
Conveyance self-test routine
recommended polling time:    (   2) minutes.
SCT capabilities:          (0x3081) SCT Status supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   108   099   006    Pre-fail  Always       -       19766104
  3 Spin_Up_Time            0x0003   094   091   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   097   097   020    Old_age   Always       -       3944
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   052   048   030    Pre-fail  Always       -       231936780154
  9 Power_On_Hours          0x0032   058   058   000    Old_age   Always       -       36793
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   097   097   020    Old_age   Always       -       3942
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   092   000    Old_age   Always       -       894 897 1362
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   056   039   045    Old_age   Always   In_the_past 44 (Min/Max 44/44 #237)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   099   099   000    Old_age   Always       -       3909
193 Load_Cycle_Count        0x0032   020   020   000    Old_age   Always       -       161838
194 Temperature_Celsius     0x0022   044   061   000    Old_age   Always       -       44 (0 13 0 0 0)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       8558h+07m+38.053s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       14574986552
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       18776308038

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Сподіваюся, це допомагає!


Після цієї зміни мій накопичувач більше не буде монтуватися. Чому?
Філіп Дельтейль

@PhilippeDelteil Я ніколи не чув про те, що призводить до того, що диск не працює належним чином. Ви можете спробувати askubuntu.com/a/952275/231142, щоб налаштувати більш постійне, якщо дисковод проглядається в gnome-disks.
Терранс

3

У мене було підключено два накопичувачі Seagate, тому я змінив команду @Terrance на:

echo "options usb-storage quirks=$(lsusb | awk '/Seagate/ {print $6":u"}' | tr '\n' ',' | head -c-1)" | sudo tee -a /etc/modprobe.d/ignore_uas.conf

Що дає правильний роздільник (і повторення прапорця) для декількох елементів:

options usb-storage quirks=0bc2:3320:u,0bc2:2323:u

Ця заміна символів 'newline' на ',', ймовірно, зроблена не найелегантнішим способом (вимагає видалити додатковий роздільник за допомогою head), але, здається, працює.

Тоді:

sudo update-initramfs -u

І перезавантажте, як у оригінальній відповіді.


Гарна знахідка! Я не думав про кілька дисків під час тестування свого. Мені це дуже подобається! +1
Терранс

1

перевірте таблицю з підтримуваними USB-пристроями ...

перемикач -d satвказує, що це повинен бути накопичувач з портом SATA.

є певні комутатори для певних мостів USB - вони lsusbможуть показувати конкретну назву. якщо у контролера мосту може бути погана реалізація - просто спробуйте підключити його до SATA замість USB.

SCSI та ATA (відповідно до виходу оболонки), ймовірно, не те, що ви шукаєте :)


Я використовую кабель, який постачався з HDD, коли я купив його. ви можете побачити ці помилки: посилання
Едвард Торвальдс

назва зовнішнього hdd: Розширення Seagate External. Схоже, це підтримується, але все-таки варіанти дають помилку
Едвард Торвальдс

@edwardtorvalds є дві основні передумови ... увімкнено SMART у BIOS / UEFI для порту (якщо це застосовано) та увімкнути його за допомогою програмного забезпечення, перш ніж спробувати його прочитати ... smartctl -T permissive --smart=on /dev/sdb(поки журнали виглядають так, як це було б розмовою до неправильного порту)
Мартін Цайтлер

для цього немає варіанту завантаження, я спробував вище команду. Я отримав цю помилку
Едвард Торвальдс

@edwardtorvalds, здається, все ще надсилає команди SCSI ... відсутній -d sat перемикач smartctl -d sat -T permissive --smart=on /dev/sdb... і, як я вже писав вище, lsusbслід вказати, який це міст.
Мартін Цайтлер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.