No se pueden realizar datos SMART y autoprueba en disco duro externo

13

En este momento, mi unidad externa no tiene ningún error, pero solo quiero verificar manualmente para asegurarme.
Como se ve en la imagen a continuación, la opción para SMART data y Self-Test está en gris. También vea los detalles sobre el disco duro en la imagen misma.

  1. Intenté ejecutar gksu gnome-diskspero la opción aún está atenuada.
  2. Corrí sudo smartctl --all /dev/sdb --test=short -T permissive, recibí este error:

smartctl 6.4 2014-10-07 r4002 [x86_64-linux-3.19.0-15-generic] (construcción local) Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

Error al leer la identidad del dispositivo: error de scsi campo no admitido en el comando scsi

=== INICIO DE LA SECCIÓN DE INFORMACIÓN ===

Modelo de dispositivo: [No se encontró información]

Número de serie: [No se encontró información]

Versión de firmware: [No se encontró información]

El dispositivo está: No está en la base de datos de smartctl [para detalles use: -P showall]

La versión de ATA es: [No se encontró información]

Hora local es: mié 17 de junio 11:33:46 IST 2015

El soporte SMART es: Ambiguo: las palabras 82-83 del DISPOSITIVO DE IDENTIFICACIÓN ATA no se muestran si SMART es compatible.

El soporte SMART es: Ambiguo: las palabras 85-87 del DISPOSITIVO DE IDENTIFICACIÓN ATA no se muestran si SMART está habilitado.

Ha fallado un comando SMART obligatorio: salir. Para continuar, agregue una o más opciones '-T permisivas'.

ingrese la descripción de la imagen aquí

Edward Torvalds
fuente
El mismo problema aqui. Puedo agregar que sucede en Ubuntu 14.04 , pero NO en Ubuntu 12.04 donde SMART es leído correctamente tanto por la GUI como por la línea de comando. ¿Algunas ideas?
Alvaro Gutierrez Perez
1
Encontré la solución, mira mi respuesta
Alvaro Gutierrez Perez

Respuestas:

13

Yo tuve el mismo problema. En mi caso, SMART había estado funcionando correctamente en el dispositivo durante años mientras usaba Ubuntu 12.04 , y luego, bajo Ubuntu 14.04 , sucedió exactamente lo que usted dice en la pregunta.

El problema está relacionado con un nuevo módulo de kernel que se introdujo en Linux Kernel 3.15 llamado uas(USB Attached SCSI ) (ver anuncio de lanzamiento ).

Ese módulo ahora es responsable de administrar los dispositivos de almacenamiento masivo USB. Hay un hilo en el que las personas se quejan de que uasen el kernel 3.15 está causando que sus dispositivos USB fallen. Otro dice que podría ser la causa de problemas SMART.

Afortunadamente, esos problemas parecen desaparecer en el kernel 3.19 (que estoy usando), ya que mi dispositivo se está detectando correctamente. Solo queda el problema INTELIGENTE.

Para solucionarlo, debe deshabilitar el uso del uasmódulo para el dispositivo dado.

Deshabilitar uassin reiniciar

Primero, desconecte todos los dispositivos USB que puedan estar usándolo. Luego, elimine los módulos uasy usb-storage:

sudo modprobe -r uas
sudo modprobe -r usb-storage

Luego, cargue el usb-storagemódulo con un parámetro que le indique que no se use uaspara un dispositivo dado:

sudo modprobe usb-storage quirks=VendorId:ProductId:u

VendorIdy ProductIddebe ser reemplazado por el proveedor del dispositivo y la identificación del producto, que se puede obtener con el lsusbcomando (son los caracteres que aparecen después ID).

Por ejemplo, tengo el siguiente dispositivo:

Bus 002 Device 011: ID 0bc2:3320 Seagate RSS LLC SRD00F2 [Expansion Desktop Drive]

Entonces mi identificación de proveedor es 0bc2, y mi identificación de producto es 3320. Mi comando es:

sudo modprobe usb-storage quirks=0bc2:3320:u

El último ule dice usb-storageque ignore uasel dispositivo (ver fuente ).

En este punto, puede insertar el dispositivo USB, y sabrá que no debe usarlo uas, lo que hace que SMART funcione correctamente. Verá líneas como estas dmesgal insertar el dispositivo 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

Hacer el cambio permanente

La peculiaridad anterior solo durará hasta que reinicie el sistema. Para hacerlo persistente, debe seguir los pasos descritos aquí , que copio a continuación:

Primero, cree un archivo nombrado ignore_uas.confen el /etc/modprobe.d/directorio con el siguiente contenido:

options usb-storage quirks=VendorId:ProductId:u

Como antes, sustituya VendorIdy ProductIdpor su dispositivo el proveedor y la identificación del producto obtenidos de lsusb.

Luego, regenera tu disco RAM inicial:

mkinitcpio -p linux

o, en versiones más nuevas de Ubuntu:

sudo update-initramfs -u

Finalmente, reinicie su computadora.


Editar: se puede encontrar más información sobre el tema y otra forma de solucionarlo sin deshabilitar uas (que tiene un mejor rendimiento que el almacenamiento usb) aquí: https://www.smartmontools.org/ticket/971#comment:12

Parece que el kernel está en la lista negra SAT ATA PASS-THROUGHen algunos dispositivos cuando se ejecuta en modo uas, ya que tienen un firmware roto.

Por lo tanto, la lista negra se puede desactivar (bajo su propio riesgo) utilizando el método anterior que menciono en la respuesta, pero eliminando el final ude la peculiaridad, es decir:

quirks=VendorId:ProductId:

Sin embargo, tenga en cuenta que no he probado este enfoque.

Alvaro Gutierrez Perez
fuente
Estoy usando Ubuntu 15.10 con Linux kernel 4.2, hice lo que dijiste, pero no funciona para mí
Edward Torvalds
@edwardtorvalds ¿es la GUI lo que no funciona, o también smartctl? En mi caso, la GUI permanece atenuada (aún no he reiniciado), pero smartctlfunciona.
Álvaro Gutiérrez Pérez
2
No mkinitcpio en 16.04. ¿No es "sudo update-initramfs -u" en su lugar ahora?
filofel
1
¡Gran respuesta! Puedo acceder a mi unidad USB Seagate y obtener todos los datos de smartctl. Intenté su edición allí con la eliminación de uy eso desafortunadamente colgó la unidad, por lo que no pude obtener datos SMART y el tiempo de arranque fue lento. Sin embargo, agregué nuevamente uy funciona perfecto.
Terrance
1
Para más de uno, se ve así:quirks=0bc2:ab24:u,0bc2:ac30:u
Tom Hale
6

Las unidades externas (a través de USB, supongo) son complicadas con SMART. Algunos no funcionan en absoluto. La smartmontoolsgente publicó una lista de discos duros con interruptores de línea de comandos para agregarsmartctl (ver quinta columna).


Para las unidades de expansión de Seagate, en particular, parece que lo que necesita, ya sea -d sato -d sat,12. Intenta lo siguiente:

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

Si uno de esos funciona, le indica qué -dinterruptor agregar a sus smartctlcomandos.

Olathe
fuente
ambos me están dando enlace de
Edward Torvalds
el nombre del disco duro externo es: Seagate Expansion External. parece ser compatible, pero aún así las opciones están dando error
Edward Torvalds
3

Solo una actualización que estoy agregando a la respuesta de Alvaro

Acabo de probar esto en Ubuntu 18.04 para una unidad externa de Seagate que tengo donde no pude smartctlleer la unidad en absoluto. Se requirió un reinicio porque no quería quedar atrás de mi sistema y meterme con las conexiones USB.

Primero corrí lsusby obtuve toda mi información para la unidad:

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

Como puede ver, mi unidad tiene el nombre Seagate, así que todo lo que tuve que hacer es ejecutar la siguiente línea para agregar la información al /etc/modprode.d/ignore_uas.confarchivo:

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

Solo recuerde reemplazar Seagatecon el nombre de su unidad. Ahora cuando miro /etc/modprode.d/ignore_uas.conflo veo como:

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

Luego simplemente ejecute el update-initramfspara que los cambios se vuelvan permanentes:

sudo update-initramfs -u

Luego reinicie su sistema. Ahora el smartctl puede leer mi disco externo.

$ 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.

¡Espero que esto ayude!

Terrance
fuente
Después de este cambio, mi unidad ya no se montará. Por qué ?
Philippe Delteil
@PhilippeDelteil Nunca he oído hablar de que la unidad no se monte correctamente. Puede probar askubuntu.com/a/952275/231142 para configurar una versión más permanente si se ve la unidad gnome-disks.
Terrance
3

Tenía dos unidades Seagate conectadas, así que modifiqué el comando @Terrance para:

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

Lo que da un separador correcto (y una repetición de marca) para múltiples elementos:

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

Esta sustitución de caracteres 'nueva línea' por ',' probablemente no se realiza de la manera más elegante (requiere eliminar el separador adicional usando head), pero parece funcionar.

Entonces:

sudo update-initramfs -u

Y reiniciar como en la respuesta original.

Bouteille
fuente
¡Buen descubrimiento! No pensé en varias unidades cuando probé la mía. ¡Realmente me gusta esto! +1
Terrance
1

consulte la tabla con dispositivos USB compatibles ...

el conmutador -d satindica que se supone que es una unidad con puerto SATA.

existen interruptores específicos para ciertos puentes USB ; lsusbpueden mostrar el nombre concreto. Si el controlador de puente puede tener una mala implementación, solo intente conectarlo nativo a través de SATA en lugar de USB.

SCSI y ATA (según la salida del shell) probablemente no sean lo que está buscando :)

Martin Zeitler
fuente
Estoy usando el cable que vino con el disco duro cuando lo compré. es posible que desee ver estos errores: enlace
Edward Torvalds
el nombre del disco duro externo es: Seagate Expansion External. parece ser compatible, pero aún así las opciones están dando error
Edward Torvalds
@edwardtorvalds hay dos condiciones previas básicas ... tener SMART habilitado en BIOS / UEFI para el puerto (si corresponde) y tenerlo habilitado a través del software, antes de intentar leerlo ... smartctl -T permissive --smart=on /dev/sdb(mientras los registros parecen estar hablando al puerto incorrecto)
Martin Zeitler
no hay opción de arranque para eso, probé el comando anterior, recibí este error
Edward Torvalds
@edwardtorvalds parece que todavía está enviando comandos SCSI ... falta ese conmutador -d sat smartctl -d sat -T permissive --smart=on /dev/sdb... y como he escrito anteriormente, lsusbdebería enumerar qué puente es.
Martin Zeitler