Cómo Leer la Información S.M.A.R.T de un Disco Duro o SSD en Linux

S.M.A.R.T es un sistema de monitoreo que incluyen la mayoría de los discos duros y discos en estado sólido desde hace muchos años. Algunos datos importantes que se pueden extraer son la cantidad de datos escritos (en algunos casos Total LBAs Written y en otros Data Units Written)  y la cuenta de ciclos de carga (Load Cycle Count o Power Cycles). Ambos son importantes (especialmente en discos SSD) para conocer el estado de uso y reconocer problemas de escritura excesiva en periodos cortos o el estado general de un disco duro un poco viejo. El proceso para verificar la cantidad de datos escritos en un disco duro o SSD en Linux es sumamente sencillo. Es importante aclarar que la información indicada no corresponde solo al uso en el sistema operativo Linux sino que la información incluye la escritura total del disco desde su primer uso en cualquier sistema operativo sin importar que haya sido formateado. Esta información se encuentra a lo interno del disco y es independiente.

La herramienta smartctl es muy conocida es es muy efectiva para discos duros tradicionales y muchos SSD. Sin embargo existe una subdivisión en los SSD dentro de la cual podemos encontrar algunos con tecnología NVME (Non-Volatile Memory). Para estos últimos, es necesaria otra herramienta que será presentada más adelante en el artículo. 

smartctl para discos duros y mayoría de SSDs

Esta herramienta es muy reconocida y tiene muchos años de ser usada en Linux para extraer la información S.M.A.R.T de millones de discos duros y SSDs. Para instalarla únicamente debemos ejecutar el siguiente comando en la terminal:

sudo apt install smartmontools

Una vez instalada únicamente debemos ejecutar el siguiente comando para reconocer las unidades compatibles instaladas en el sistema

smartctl --scan

Los dispositivos se mostrarán como /dev/sdx como un ejemplo donde x puede ser a, b, c etc... 

 Screenshot from 2017 07 19 08 29 36

Una vez encontrado el dispositivo que queremos analizar debemos ejecutar el siguiente comando para obtener la información:

sudo smartctl -a /dev/sdx

En el caso anterior hay que cambiar la x por el nombre apropiado del disco duro o SSD que queremos analizar. Si hay dudas sobre el identificador que debemos usar, es posible ejecutar el siguiente comando para identificar el nombre, marca y modelo y tamaño del disco que queremos analizar:

lsblk --output NAME,SIZE,MODEL,MOUNTPOINT

Este es un ejemplo de los datos que nos permite leer la herramienta:

Screenshot from 2017 07 19 08 02 19

nvme-cli para discos en estado sólido (SSD) con tecnología NVME

En este caso hay que instalar un paquete que incluye la herramienta que necesitamos. Para esto ejecutamos el siguiente comando:

sudo apt install nvme-cli

Una vez instalado solo debemos ejecutar el siguiente comando para identificar los discos compatibles con la herramienta:

sudo nvme list

Una vez identificado el node (como se ve en la siguiente imagen) podemos proceder a leer la información S.M.A.R.T del SSD:

Screenshot from 2017 07 19 08 44 10b

sudo nvme smart-log /dev/nvme0n1

De nuevo les recuerdo que nvme0n1 deben cambiarlo por el correspondiente identificador del SSD instalado en su sistema

Este es un ejemplo de los datos recopila y muestra la herramienta:

Screenshot from 2017 07 19 08 00 44

Análisis de los datos

Load Cycle Count o Power Cycles: 

Esta es una información muy útil ya que por lo general los fabricantes establecen dentro de las especificaciones del disco la cantidad de ciclos de carga como una forma de indicar la vida útil de un disco duro. 

Screenshot from 2017 07 19 08 54 43

En este caso el disco que estoy analizando (con 4 años de uso) indica en sus especificaciones que el total de ciclos es de 600 000 y la información me indica lo siguiente:

Screenshot from 2017 07 19 08 01 44

El parámetro Load Cycle Count muestra que ha pasado por un total de 69687 ciclos de carga. Es decir apenas ha superado el 10% de ciclos que establece el fabricante en las especificaciones

Total LBAs Written 

En este caso corresponde al parámetro 241 y el numero indicado representa la cantidad de unidades de 512 bytes escritas. Por esta razón para obtener el dato en bytes es necesario multiplicar el valor indicado en los resultados por 512 y después dividirlo entre 1073741824 para obtener los gigabytes totales escritos (hay mil setenta y tres millones setecientos cuarenta y un mil ochocientos veinticuatro bytes en un gigabyte). 

Screenshot from 2017 07 19 08 02 19

En el caso de la imagen el resultado de 248221948 * 512 / 1073741824 da 108 Gigabytes. Es un disco duro relativamente nuevo con apenas 41 ciclos de carga completados (ver parámetro 193). 

Nota: es importante aclarar que para algunos fabricantes como Kingston, el resultado para el parámetro 241 se muestra directamente en gigabytes. En otros casos como el del fabricante Intel, el contador aumenta en una unidad cada 32 megabytes escritos. Por esto, hay que multiplicar el dato por 32 y dividir entre 1024 para obtener el total de gigabytes escritos. 

Data Units Written (para NVME)

Este es un dato que aparece por lo regular en los discos de tecnología NVME. Es similar al caso anterior pero a diferencia la interpretación es diferente. Cada unidad de Data Units Written corresponde a su vez a 1000 unidades de 512 bytes escritas. En otras palabras, para obtener el dato legible, es necesario multiplicar el valor generado por 512000 y dividirlo entre 1073741824 para obtener el dato en gigabytes. (En algunos casos como el de Samsung, se sugiere redondear a 1000000000 para obtener el dato, de cualquier forma lo que interesa es un dato aproximado). 

Screenshot from 2017 07 19 08 00 44

En el caso anterior al multiplicar 417181 por 512000 y dividirlo entre 1000000000 da como resultado 213 gigabytes escritos. Es importante consultar las especificaciones del modelo dadas por el fabricante para así hacernos una idea de que tan cerca nos encontramos del límite de garantía por ejemplo. En este caso Samsung ofrece confiabilidad hasta 200 TBW (Terabytes escritos) y 200 gigabytes son 0.2 terabytes por lo que corresponde aproximadamente a un 0.1 % del total. De nuevo, tiene únicamente 43 ciclos de carga por lo que es un disco nuevo. 

Screenshot from 2017 07 19 09 25 26

Es importante aclarar que no todos los discos brindan la misma información de la misma forma. La mayoría de los discos indican datos escritos, leídos, ciclos de carga, temperatura y tiempo en horas de encendido entre otros. Si tienes alguna duda o los datos generados por tu disco son diferentes, puedes dejar un comentario para poder ayudarte. 

Fundador
Seguidor de Jesús. Escribo artículos en mi tiempo libre sobre temas de tecnología que me interesan.