===== Guía avanzada de smartctl desde linea de comandos =====
Si algunos de los comandos propuestos fallan, se recomienda probar el parámetro "-T permissive" (e incluso "-T verypermissive") para que smartctl sea más tolerante a posibles errores recibidos por comandos SMART / ATA y se pueda trabajar sobre el disco.
El comando dmesg puede ayudar también a localizar problemas en los discos. En esta guía se mostrarán las opciones más interesantes de la herramienta, no todas las opciones valen para todos los tipos de disco, se recomienda mirar el manual de smartctl.
Si se desea configurar smartd (demonio de smartd): [[configurar_smartd_con_alertas_a_gmail_facil]]
==== Obtener información del disco duro ====
Modelo de disco duro, número de serie, versión del firmware del disco duro, etc.
smartctl -i /dev/sdd
=== START OF INFORMATION SECTION ===
Model Family: SAMSUNG SpinPoint S250
Device Model: SAMSUNG HD250HJ
Serial Number: S0URJ9CPB07644
LU WWN Device Id: 5 0000f0 09bb07644
Firmware Version: FH100-05
User Capacity: 250.059.350.016 bytes [250 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA/ATAPI-7, ATA8-ACS T13/1699-D revision 3b
Local Time is: Sun Mar 29 17:10:12 2015 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Obtener toda la información smart del disco duro.
smartctl -a /dev/sdbb
Obtener toda la información del disco smart y no-smart.
smartctl -a /dev/sdbb
==== Activar o desactivar smart en discos duros ====
smartctl -s on /dev/sdbb
smartctl -s off /dev/sdbb
==== Indicar el tipo de dispositivo usado con smart ====
Por defecto se usa siempre el tipo auto, pero cuando este falla se debe especificar el tipo de dispositivo. Es posible también apoyarse en la opción de escaneo.
* **auto** Tratar de adivinar el tipo de dispositivo apoyándose en el SO o el ID de la base de datos de dispositivos.
* **ata** Dispositivos ATA (previene el uso de comandos SCSI).
* **scsi** Dispositivo SCSI (previene el uso de comandos ATA).
* **sat** Dispositivo SATA (SCSI to ATA Translation (SAT)). Los comandos pueden ser de 12 o 16 bytes (por defecto)
* **usbcypress** Dispositivo ATA detrás de un Cypress USB to PATA bridge.
* **usbjmicron** Dispositivo SATA detrás de un JMicron USB to PATA/SATA bridge.
* **usbsunplus** Dispositivo SATA detrás de un SunplusIT USB to SATA bridge.
* **3ware,N** Uno o más dispositivos ATA conectados a una 3ware RAID controller (FreeBSD y Linux).
* **cciss,N** Uno o más dispositivos SCSI/SAS conectados a una controladora cciss RAID (FreeBSD y Linux).
* **hpt,L/M/N** Uno o más discos ATA conectados a una constroladora HighPoint RocketRAID (FreeBSD y Linux).
Analiza en busca de dispositivos y muestra los nombres, tipos y protocolos ([ATA] o [SCSI]) de los dispositivo conectados.
smartctl --scan
/dev/sda -d scsi # /dev/sda, SCSI device
Ejemplo de uso
smartctl -a /dev/sdd
/dev/sdd: USB bridge [0x152d:0x0539 (0x202)] type is ambiguous: 'usbjmicron' or 'sat'
Please specify device type with the -d option.
Use smartctl -h to get a usage summary
$ smartctl -H -d sat /dev/sdd
==== Examinar los atributos de los discos ====
Información del estado de cada atributo del disco. Se puede consultar la temperatura actual, su mínimo y máximo soportado, cuantas veces ha entrado el disco en estado de standby, horas que ha estado funcionando el disco desde que se compró, cuantas veces se ha encendido el disco, etc. Esto permite controlar el estado de cada atributo, los cuales no siempre son iguales y dependen de cada fabricante y modelo de disco duro.
smartctl -A /dev/sdd
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 099 050 Pre-fail Always - 0
2 Throughput_Performance 0x0005 100 100 050 Pre-fail Offline - 0
3 Spin_Up_Time 0x0027 100 100 001 Pre-fail Always - 449
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 185
5 Reallocated_Sector_Ct 0x0033 001 001 050 Pre-fail Always FAILING_NOW 16376
7 Seek_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 100 100 050 Pre-fail Offline - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 56
10 Spin_Retry_Count 0x0033 103 100 030 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 101
191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 0
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 44
193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 298
194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 34 (Min/Max 13/47)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 1690
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 1073
220 Disk_Shift 0x0002 100 100 000 Old_age Always - 0
222 Loaded_Hours 0x0032 100 100 000 Old_age Always - 40
223 Load_Retry_Count 0x0032 100 100 000 Old_age Always - 0
224 Load_Friction 0x0022 100 100 000 Old_age Always - 0
226 Load-in_Time 0x0026 100 100 000 Old_age Always - 265
240 Head_Flying_Hours 0x0001 100 100 001 Pre-fail Offline - 0
En el ejemplo, el atributo //Reallocated_Sector_Ct// muestra que hay sectores dañados en el disco y estos se han reasignado. Cuando el disco duro encuentra un error de lectura / escritura / verificación, marca ese sector como "reasignado" y transfiere los datos a un área reservada especial (área de repuesto). Este proceso se conoce también como reasignación (remapping) y los sectores reasignados remaps. El valor bruto normalmente representa un recuento de los sectores defectuosos que se han encontrado y reasignado. Cuanto mayor sea el valor de atributo, más sectores de la unidad se han tenido que reasignar. El usar discos duros con sectores reasignados tiene un impacto en el rendimiento debido a que la aguja debe ir a esa área de repuesto cada vez que necesita algún dato afectado por la reasignación.
En el caso del ejemplo, el disco está tan deteriorado que no es posible reasignar los sectores defectuosos. En otros casos, se puede seguir usando el disco duro, pero se debe tener en cuenta que ese disco será, muy posiblemente, más propenso a fallar cada día que pase en funcionamiento. Cuando la controladora del disco no puede reasignar los sectores dañados por el motivo que sea y se quiere seguir usando el dispositivo, se puede obtener un listado de bloques dañados y dar formato al disco esquivando esas áreas del disco.
La reasignación de sectores la realiza el propio firmware del disco duro, pero algunas veces todavía no ha sido realizada o bien no puede hacerla. Esto provocaría que se encontrara el atributo smart //Reallocated_Sector_Ct// a 0 y //Current_Pending_Sector// con algún valor indicando que hay sectores pendientes de reasignar.
La reasignación automática de sectores sólo ocurre cuando se escribe en un sector defectuoso, si una unidad sabe que un sector tiene problemas y la controladora de la unidad recibe una orden para escribir sobre él, esta no utilizará más ese sector y los reasignará otra región (espacio de repuesto). Esto explica porque algunos discos que parecen completamente defectuosos, pasado un tiempo parecen estar recuperados (Cuanto todos los sectores defectuosos se han reasignado). Ver atributos #197 Current_Pending_Sector y #5 Reallocated_Sector_Ct. Para forzar la reasignación manualmente se pueden utilizar herramientas como SeaTools, hdparm, dd o sg_reassign / sg_verify ([[http://ma.juii.net/blog/repair-bad-sector-like-seatools|Leer]]).
NOTA: La reasignación de sectores no tiene relación con el sistema de ficheros y el encargado de realizarlo y utilizarlo es la controladora del disco duro. Cuando no se pueden reasignar todos los sectores defectuosos, la solución sería esquivarlos a nivel de sistema de ficheros al dar formato al disco, de esta forma nunca se usarían esos bloques dañados.
[[http://en.wikipedia.org/wiki/Self-Monitoring,_Analysis,_and_Reporting_Technology#ATA_S.M.A.R.T._attributes | Información sobre los atributos]]
**Comprobar que los sectores están defectuosos**
Obtenemos la la siguiente salida.
smartctl -a /dev/sdb
...
Error 614 occurred at disk power-on lifetime: 14643 hours (610 days + 3 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
84 51 08 60 cb 02 eb Error: ICRC, ABRT at LBA = 0x0b02cb60 = 184732512
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
ca 00 08 60 cb 02 eb 00 00:21:04.563 WRITE DMA
ec 00 00 00 00 00 a0 00 00:21:04.500 IDENTIFY DEVICE
ef 03 42 00 00 00 a0 00 00:21:04.500 SET FEATURES [Set transfer mode]
ec 00 00 00 00 00 a0 00 00:21:04.500 IDENTIFY DEVICE
00 00 01 01 00 00 a0 00 00:21:04.313 NOP [Abort queued commands]
Podemos usar hdparm o dd para asegurar el estado de esos sectores. Si el sector defectuoso está pendiente de ser reasignado, el siguiente comando mostraría errores de entrada salida ya que todavía el LBA apunta a un sector inutilizable.
hdparm --read-sector 184732512 /dev/sdd
/dev/sdd: Input/Output error
# Usando dd.
dd bs=4096 seek=$((184732512/8)) count=1 if=/dev/sdd of=/dev/null
dd: /dev/sdd: Input/output error
Es muy posible que la salida de smartctl muestre errores y estos estén ya subsanados. Es decir, se han reasignado esos sectores defecutosos y LBA apunta a sectores sin problemas, por eso es importante fijarse en los atributos que muestra smartctl.
hdparm --read-sector 184732512 /dev/sdb
/dev/sdb:
reading sector 184732512: succeeded
# Usando dd.
dd bs=4096 seek=$((184732512/8)) count=1 if=/dev/sdd of=/dev/null
1+0 registros leídos
1+0 registros escritos
4096 bytes (4,1 kB) copiados, 2,77199 s, 1,5 kB/s
Forzar reasignación de sectores con hdparm.
hdparm --write-sector 184732512 --yes-i-know-what-i-am-doing /dev/sdd
/dev/sdb: re-writing sector 184732512: succeeded
# Comprobación del sector reasignado.
hdparm --read-sector 184732512
/dev/sdb:
reading sector 184732512: succeeded
Al reasignar sectores se puede apreciar como aumenta el valor del atributo smart //Reallocated_Sector_Ct// y disminuye //Reallocated_Event_Count//.
Leer: [[http://www.smartmontools.org/browser/trunk/www/badblockhowto.xml#sdisk]]
NOTA: La utilidad hdparm puede también crear sectores defectuosos con la opción %%--%%make-bad-sector.
**Atributos smart críticos a tener en cuenta**.
* 05 Reallocated Sectors Count
* 10 Spin Retry Count
* 183 SATA Downshift Error Count or Runtime Bad Block
* 184 End-to-End error / IOEDC
* 188 Command Timeout
* 196 Reallocation Event Count
* 197 Current Pending Sector Count
* 198 Uncorrectable Sector Count / Offline Uncorrectable / Off-Line Scan Uncorrectable Sector
* 201 Soft Read Error Rate / TA Counter Detected
* 230 Drive Life Protection Status
Si alguno de estos atributos tiene un problema lo más probable es que se encuentren problemas en el uso del disco de forma inminente.
**Campos de los atributos mostrados por smartctl**.
* ID: ID del atributo (1 -253).
* RAW_VALUE: Valor crudo de seis bytes.
* VALUE: Valor normalizado de un byte.
* WORST: El valor mínimo de los valores alcanzado desde que se activó SMART en el disco.
* TYPE: El tipo del atributo indica si el fallo del atributo indica que el dispositivo ha alcanzado el final de la vida para la que fue diseñado (Old_age) o si se trata de un fallo inminente (Pre-fail). Por ejemplo, el tiempo de spin-up7 (ID #3) es un atributo prefallo. Si este (o cualquier otro atributo prefallo) falla, se esperará una avería del disco en menos de 24 horas.
Para el ID 194, el valor crudo guarda tres temperaturas: la temperatura del disco en grados Celsius (34), su mínimo (13) y máximo (47)
Para reflejar la fiabilidad del disco, el firmware del disco convierte el valor crudo en un valor normalizado entre 1 y 253. Si este valor normalizado es menor o igual que el umbral (//THRESH//), se dice que el atributo ha fallado, tal y como indica la columna "//WHEN_FAILE//D", mostrando "//FAILING_NOW//". Si el valor registrado es inferior o igual al valor del umbral, entonces esta columna mostrará "In_the_past". Si la columna "//WHEN_FAILED//" no tiene ninguna entrada (indicado por un guión: '-') entonces este atributo está correcto y nunca ha fallado en el pasado.
Que no se obtenga ningún FAILING_NOW no quiere decir que todo esté en orden en nuestro disco, es obligatorio siempre hacer un test largo y consultar los resultados con la opción "-H" o bien "-l selftest" o utilizar -a (recomendado).
NOTA: Los nombres/significados de los atributos y la interpretación de sus valores crudos no están especificados en ningún estándard. A veces diferentes fabricantes utilizan el mismo ID de atributo para diferentes propósitos. Por esta razón, la interpretación de un atributo específico puede modificarse con la opción -v de smartctl; consulte la página de manual para los detalles.
==== Visualizar los errores reportados por smart ====
Mostrar los errores encontrados en el disco, solo puede mostrar los últimos 5 errores críticos. Uno se debe preocupar solo cuando los errores comienzan a aparecer en grandes cantidades. Un error ocasional, transitorio y no recurrente suele ser benigno. La página web de smartmontools tiene varios ejemplos de salida de smartctl -a mostrando algunas entradas en el registro de errores ilustrativas.
smartctl -l error /dev/sdb
=== START OF READ SMART DATA SECTION ===
SMART Error Log Version: 1
ATA Error Count: 615 (device log contains only the most recent five errors)
CR = Command Register [HEX]
FR = Features Register [HEX]
SC = Sector Count Register [HEX]
SN = Sector Number Register [HEX]
CL = Cylinder Low Register [HEX]
CH = Cylinder High Register [HEX]
DH = Device/Head Register [HEX]
DC = Device Command Register [HEX]
ER = Error register [HEX]
ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.
Error 615 occurred at disk power-on lifetime: 14643 hours (610 days + 3 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
84 51 08 60 cb 02 eb Error: ICRC, ABRT at LBA = 0x0b02cb60 = 184732512
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
ca 00 08 60 cb 02 eb 00 00:21:04.938 WRITE DMA
ec 00 00 00 00 00 a0 00 00:21:04.875 IDENTIFY DEVICE
ef 03 42 00 00 00 a0 00 00:21:04.875 SET FEATURES [Set transfer mode]
ec 00 00 00 00 00 a0 00 00:21:04.813 IDENTIFY DEVICE
00 00 01 01 00 00 a0 00 00:21:04.625 NOP [Abort queued commands]
Error 614 occurred at disk power-on lifetime: 14643 hours (610 days + 3 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
84 51 08 60 cb 02 eb Error: ICRC, ABRT at LBA = 0x0b02cb60 = 184732512
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
ca 00 08 60 cb 02 eb 00 00:21:04.563 WRITE DMA
ec 00 00 00 00 00 a0 00 00:21:04.500 IDENTIFY DEVICE
ef 03 42 00 00 00 a0 00 00:21:04.500 SET FEATURES [Set transfer mode]
ec 00 00 00 00 00 a0 00 00:21:04.500 IDENTIFY DEVICE
00 00 01 01 00 00 a0 00 00:21:04.313 NOP [Abort queued commands]
Error 613 occurred at disk power-on lifetime: 14643 hours (610 days + 3 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
84 51 08 60 cb 02 eb Error: ICRC, ABRT at LBA = 0x0b02cb60 = 184732512
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
ca 00 08 60 cb 02 eb 00 00:21:04.250 WRITE DMA
ec 00 00 00 00 00 a0 00 00:21:04.188 IDENTIFY DEVICE
ef 03 42 00 00 00 a0 00 00:21:04.188 SET FEATURES [Set transfer mode]
ec 00 00 00 00 00 a0 00 00:21:04.188 IDENTIFY DEVICE
00 00 01 01 00 00 a0 00 00:21:04.000 NOP [Abort queued commands]
Error 612 occurred at disk power-on lifetime: 14643 hours (610 days + 3 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
84 51 08 60 cb 02 eb Error: ICRC, ABRT at LBA = 0x0b02cb60 = 184732512
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
ca 00 08 60 cb 02 eb 00 00:21:03.938 WRITE DMA
ec 00 00 00 00 00 a0 00 00:21:03.875 IDENTIFY DEVICE
ef 03 42 00 00 00 a0 00 00:21:03.875 SET FEATURES [Set transfer mode]
ec 00 00 00 00 00 a0 00 00:21:03.875 IDENTIFY DEVICE
00 00 01 01 00 00 a0 00 00:21:03.688 NOP [Abort queued commands]
Error 611 occurred at disk power-on lifetime: 14643 hours (610 days + 3 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
84 51 08 60 cb 02 eb Error: ICRC, ABRT at LBA = 0x0b02cb60 = 184732512
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
ca 00 08 60 cb 02 eb 00 00:21:03.625 WRITE DMA
ec 00 00 00 00 00 a0 00 00:21:03.563 IDENTIFY DEVICE
ef 03 42 00 00 00 a0 00 00:21:03.563 SET FEATURES [Set transfer mode]
ec 00 00 00 00 00 a0 00 00:21:03.563 IDENTIFY DEVICE
00 00 01 01 00 00 a0 00 00:21:03.375 NOP [Abort queued commands]
NOTA: Una vez reasignados (reparados) determinados sectores, se recomienda realizar de nuevo el test largo y comprobar el resultado con el anterior.
**LBA = Logical Block Address**
Cada bloque en disco tiene una única dirección. Sin embargo, hay diferentes métodos de direccionamiento. La dirección lógica no tiene que coincidir necesariamente con la dirección física. A los bloques también a veces se les llama 'cuadros' (frame) o 'sectores' (sectors).
==== Consultar la salud del disco segun los datos smart ====
Esta opción muestra un resumen de la salud del disco, mostrando si algo tiene problemas o no, para obtener una información completa se debe utilizar la opción "-a". El estado SMART no necesariamente indica la fiabilidad del dispositivo en la actualidad o en el pasado.
NOTA: Si la unidad ya ha tenido problemas anteriormente el estado SMART puede ser inaccesible. Si la unidad estaba experimentando problemas en el pasado, pero ahora los sensores indican que ya no existen los problemas, el estado SMART puede indicar la unidad está bien, dependiendo de la programación del fabricante.
smartctl -H /dev/sdb
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
smartctl -H /dev/sdd
=== START OF READ SMART DATA SECTION ===
SMART Status not supported: Incomplete response, ATA output registers missing
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
Warning: This result is based on an Attribute check.
Failed Attributes:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 001 001 051 Pre-fail Always FAILING_NOW 71480
5 Reallocated_Sector_Ct 0x0033 001 001 050 Pre-fail Always FAILING_NOW 16376
Obtener toda la información smart del disco duro.
smartctl -a /dev/sdbb
==== Ejecutar tests de autodiagnóstico ====
Se muestran dos tipos diferentes de pruebas de autodiagnóstico, la corta, la larga, la selectiva y conveyance. Estos tests no corrompen los datos del disco. Normalmente, un test corto sólo tarda dos minutos en completarse, y un test largo tardar varias horas dependiendo del tamaño (1Terybyte - 4 horas). Con el test largo o extendido no hay ninguna restricción de tiempo y se comprueban todos los segmentos del disco en vez de una sección.
Estos tests no interfieren con el funcionamiento normal del disco, así que los comandos se pueden utilizar sobre discos montados en un sistema en ejecución.
Test rápido / largo o extendido (recomendado).
smartctl -t short /dev/sdb
smartctl -t long /dev/sdb
Se pueden realizar también test selectivos y usar rangos (hasta 5)
sudo smartctl -t select,10-20 /dev/sdc # LBA 10 a LBA 20 (incl.)
sudo smartctl -t select,10+11 /dev/sdc # LBA 10 a LBA 20 (incl.)
sudo smartctl -t select,0-10 -t select,5-15 -t select,10-20 /dev/sdc # Rangos
El test Conveyance es una prueba rápida para identificar los daños ocasionados durante el transporte del dispositivo del fabricante de la unidad al fabricante del equipo.
**Obtener información sobre los test realizados**. (Solo muestra los últimos 21 Tests)
smartctl -l selftest /dev/sdd
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended captive Completed: unknown failure 90% 71 0
# 2 Extended offline Completed: read failure 00% 61 79544
# 3 Short offline Completed without error 00% 3692 -
Si "-l selftest" dice que no hay nada registrado, es que todavía debe haber un test trabajando o bien todavía no se hizo ninguno.
Para saber el estado / progreso de un smart test en funcionamiento.
smartctl -c /dev/sda | grep remain
50% of test remaining.
Una vez que el test haya terminado se puede saber como resulto usando "-l selftest".
Si los test extendidos aparecen siempre como interrumpidos, leer esta [[extended_offline_aborted_by_host_smartctl|entrada]].
**Cancelar un test que está en ejecución**.
smartctl -X /dev/sda
==== Recomendaciones a tener en cuenta ====
* Realizar test largos y guardar la salida en un registro de logs.
* Controlar y entender correctamente los atributos para saber qué tipo de fallo tenemos.
* Si se corrige el problema, por ejemplo reasignando sectores, comprobar posteriormente con otro test largo.
* Consultar la información con la opción "-a" o bien "-x" para obtener toda la información.
* Si smart muestra errores, se debe tener en cuenta que no es un disco 100% confiable, la gravedad dependerá del atributo y su valor.
* No confundir el concepto de reasignación de sectores con esquivarlos al dar formato al disco (sistema de ficheros).
* Leer el manual oficial ayuda antes cualquier duda y estar atento a qué modelo va dirigido [SCSI], [ATA], [SATA],...
* No forzar la reasignación de sectores si no se entiende el comando que se introduce para tal menester.
* Si los test no parecen terminar nunca y siempre se muestran interrumpidos, [[https://www.busindre.com/extended_offline_aborted_by_host_smartctl|leer]].
**Comando útil para listar todos los discos duros y mostrar propiedades / estado**.
for i in /dev/[sh]d[abcdefghijklmnopqrstuvwxyz]; do echo "===DRIVE: $i==="; smartctl -a $i | egrep -i "serial|model|capacity|reallocated_sec|ata error|power_on"; done;
===DRIVE: /dev/sda===
Model Family: Western Digital Blue
Device Model: WDC WD10EZEX-00BN5A0
Serial Number: WD-WMC3F0685256
User Capacity: 1.000.204.886.016 bytes [1,00 TB]
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
9 Power_On_Hours 0x0032 093 093 000 Old_age Always - 5449
===DRIVE: /dev/sdb===
Model Family: SAMSUNG SpinPoint S250
Device Model: SAMSUNG HD250HJ
Serial Number: S0URJ9CPB07644
User Capacity: 250.059.350.016 bytes [250 GB]
5 Reallocated_Sector_Ct 0x0033 253 253 010 Pre-fail Always - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 23338
ATA Error Count: 615 (device log contains only the most recent five errors)
===DRIVE: /dev/sdc===
Model Family: Seagate Barracuda 7200.12
Device Model: ST31000528AS
Serial Number: 9VP5ENVM
User Capacity: 1.000.204.886.016 bytes [1,00 TB]
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
9 Power_On_Hours 0x0032 097 097 000 Old_age Always - 3413
==== Enlaces de interés recomendados ====
* [[http://www.smartmontools.org/browser/trunk/www/badblockhowto.xml#sdisk]]
* [[http://elpuig.xeill.net/Members/vcarceler/articulos/monitorizando-discos-duros-con-smart]]
* [[https://www.thomas-krenn.com/en/wiki/Analyzing_a_Faulty_Hard_Disk_using_Smartctl#cite_note-2]]
* [[https://www.thomas-krenn.com/en/wiki/SMART_tests_with_smartctl]]
* [[http://sourceforge.net/p/smartmontools/mailman/message/21244941/]]
* [[http://linoxide.com/linux-how-to/how-to-fix-repair-bad-blocks-in-linux/]]
* [[http://ma.juii.net/blog/repair-bad-sector-like-seatools]]
* [[http://www.sj-vs.net/forcing-a-hard-disk-to-reallocate-bad-sectors/]]
* [[http://elpuig.xeill.net/Members/vcarceler/articulos/monitorizando-discos-duros-con-smart]]