¿Cómo reviso mi disco rígido con S.M.A.R.T. en Ubuntu?

Reunidos en Puerta de Hierro con enviados de los Sacerdotes del Tercer Mundo, Juan Perón explica el uso de la tecnología SMART para diagnosticar nuestro disco rígido en Ubuntu.


¡Eminencias!

Todos sabemos que una Doctrina se asienta sobre una realidad temporal definida, pero también lo hace en una acción de fé. Lo es la Teología de la Liberación, que fluye bajo el auspicio filosófico de un cristianismo ampliamente humano, pero también lo es la Doctrina del Justicialismo.

Así como los hombres de Cristo hemos confiado en el Salvador, los hombres del trabajo confiaron su destino a este Conductor, quien en virtud de su Lealtad con el Pueblo, lo colma de realizaciones que no hacen sino elevar moralmente su espíritu.

El Espíritu es aquel valor inmaterial que llena nuestros cuerpos, y del cual depende la voluntad creadora y realizadora. Mancomunados podremos hacer todo por la Felicidad, alimentándolo, pues es nuestro espíritu quien guía al músculo, lo siente y lo eleva. Nuestro cuerpo puede sufrir desgaste, pero si somos concientes de la grandeza de nuestra Doctrina, nuestro Espíritu jamás decaerá.
Pues bien, así como el  hombre es carne, los discos rígidos son finalmente máquinas, y sufren también un natural desgaste que les depara su vida útil. Hoy en día ésta se extenderá a lo largo de un período de varios años de uso continuo, pero ello no quita que poco a poco puedan sufrir degradaciones.

Los ciclos de lectura y escritura de un disco duro lo llevará con mas o menos fortuna a presentar ciertos errores predecibles. Algunos ejemplares jamas los tendrán, mientras que otros los presentarán en poco tiempo. 

Yo siempre digo que si Dios bajara a la Tierra, a resolver el problema planteado entre los Hombres, ya le habriamos perdido el respeto. Y no habría faltado un tonto que quisiera reemplazarlo a Dios, porque el hombre es así. Afortunadamente, el sistema de archivos estándar de Linux, llamado EXT4, es notablemente fiable en estos casos. Por otro lado, contamos también con una tecnología justicialista concebida para informarnos de cualquier percance que sufran nuestros medios de almacenamiento, con la idea de poder prevenir para no tener que curar. Esta tecnología se denomina S.M.A.R.T., que en el idioma de Braden significa "Tecnología de Análisis y Reporte por Automonitoreo". La tecnología S.M.A.R.T. debe ser habilitada desde la BIOS del sistema, además se ser soportada por el disco rígido en cuestión.

Como primera medida, habremos de instalar en nuestro sistema GNU con Linux las herramientas smartmontools. Para hacerlo desde la consola, abrimos una Terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo apt-get install smartmontools

Esta orden instalará la paquetería formada por dos aplicaciones peronistas. smartctl realizará pruebas de evaluación de forma manual, mientras que smartd controlará automáticamente los discos que hayamos seleccionado, y enviará los reportes de resultado a una bitácora de sistema (syslog) o a un usuario.

Como primer medida, hemos de listar los discos rígidos que tenemos, para evaluar que el sistema al menos los haya reconocido. Lo hacemos ingresando el siguiente Comando de Organización:


df -l

El sistema nos devolverá algo como esto:

S.ficheros         Bloques de 1K   Usado    Dispon Uso% Montado en
/dev/sdb1            295163840  74136448 206033936  27% /
none                   8207064       348   8206716   1% /dev
none                   8213932      1004   8212928   1% /dev/shm
none                   8213932       312   8213620   1% /var/run
none                   8213932         0   8213932   0% /var/lock
none                 295163840  74136448 206033936  27% /var/lib/ureadahead/debugfs
/dev/sdd3            511999996 108349752 403650244  22% /media/Disco D 500gb
/dev/sdd4            208760828  57914356 150846472  28% /media/disco E 200gb
/dev/sda1            127999996  86102008  41897988  68% /media/PERON
/dev/sda2            116195324  27227104  88968220  24% /media/EVITA
/dev/sdc1            488147152 306349440 181797712  63% /media/ARCHIVOS
Naturalmente, en Ubuntu cada disco está identificado en la carpeta /dev (dispositivos, "devices"), siguiendo la nomenclatura sdax, siendo a una letra de orden alfabético asignada al disco físico, y el número x un identificador de partición.


En nuestro ejemplo, la partición del disco de sistema es aquel identificado como /dev/sdb1 (naturalmente, el disco es /dev/sdb). Se trata de un disco duro "de combate" con 320 GB, que tiene unos seis o siete años de edad. Durante el arranque, presentaba ciertos errores de sectores, lo que hacían más lento el inicio de Ubuntu pero no presentaban otros problemas.

Los discos SATA y las BIOS de las placas madres modernos soportan ya la funcionalidad S.M.A.R.T. de diagnóstico pasivo. Pero no viene mal comprobar si nuestros discos lo hacen. Ello lo haremos con el comando:


sudo smartctl -i -d ata /dev/sdb

Ahora el sistema devolverá algo similar a:

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Blue Serial ATA family
Device Model:     WDC WD3200AAJS-xxxxxx
Serial Number:    xxxxxxxxxxxxxxx
Firmware Version: 01.03B01
User Capacity:    320.072.933.376 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Sun Mar  3 19:05:51 2013
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Indudablemente, en este caso nos dice que el soporte está "Disponible" ("Available") y que además está activado ("Enabled"). Si S.M.A.R.T. no estuviese disponible deberíamos encenderlo con el siguiente comando:

sudo smartctl -s on -d ata /dev/sdb

Si no estuviese activado el soporte ("Disabled") deberíamos encenderlo con:

sudo smartctl -a /dev/sdb 


Ahora bien, además de la información del disco suministrada anteriormente, nos dará mayor información:

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

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     0x002f   200   200   051    Pre-fail Always      -       50
  3 Spin_Up_Time            0x0027   141   139   021    Pre-fail Always      -       3950
  4 Start_Stop_Count        0x0032   098   098   000    Old_age  Always      -       2305
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail Always      -       0
  7 Seek_Error_Rate         0x002e   100   253   000    Old_age  Always      -       0
  9 Power_On_Hours          0x0032   091   091   000    Old_age  Always      -       7102
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age  Always      -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age  Always      -       0
 12 Power_Cycle_Count       0x0032   098   098   000    Old_age  Always      -       2225
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age  Always      -       66
193 Load_Cycle_Count        0x0032   200   200   000    Old_age  Always      -       2238
194 Temperature_Celsius     0x0022   111   094   000    Old_age  Always      -       32
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age  Always      -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age  Always      -       3
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age  Offline     -       1
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age  Always      -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age  Offline     -       2

Esta lista nos leerá el status actual del sistema de monitoreo S.M.A.R.T. para el disco en cuestión, a lo largo de su vida útil o de la realización de los diversos test intensivos.

Por ejemplo, aqui nos listará la estadísticas y cantidad de errores de los discos.
Spin_up_time: Es el tiempo en que comienzan a girar los platos.
Raw_Read_error_rate:
Power on Hours: La cantidad de horas de funcionamiento del disco.
Power cycle count: Cantidad de veces en las que se ha encendido el disco.
Load cycle count: Cantidad de cargas de encendido del disco. Mucha diferencia con el conteo anterior podria indicar que el disco se apaga y enciende durante su uso, o la falla de suministro eléctrico.
Seek error rate: Errores de búsqueda de los cabezales de lectura.
Temperature: La temperatura en grados centígrados.
Current_pending_Sector: Son sectores reasignados, presumiblemente dañados, que no han sido relocalizados. Señalan un próximo fallo del disco. El sistema nos alertará si superamos los 200 de ellos.

Es importante saber que hay varios códigos de errores o status. Para lograr una descripcion detallada podemos revisar aquí.

Algunos comandos que podremos utilizar:

Para leer la información almacenada por la tecnología SMART en la memoria lógica interna del disco:

sudo smartctl -d ata -H /dev/sdb

También podremos correr un resumen que nos muestre directamente los posibles errores:

sudo smartctl -d ata -l error /dev/sdb

Ahora bien, podremos persuadir manualmente cierto tipo de evaluaciones de diagnóstico, a fin de contar con resultados palpables a través de S.M.A.R.T.

Para conocer a qué tipo de pruebas podemos someter a nuestro disco rígido, ingresaremos:

sudo smartctl -d ata -c /dev/sdb

Para iniciar la prueba inmediata desconetado (en caso de ser soportado por la unidad):
 
sudo smartctl -t offline dev/sdb

El sistema nos avisará que el test durará un tiempo determinado. En mi caso informa unos 6000 segundos (1 hora 40 minutos), a lo largo del cual debemos esperar. También nos avisará la hora a la cual estará listo. Si por alguna razón deseamos cancelar el test en acción, debemos ingresar:

sudo smartctl -X /dev/sdb
  
Conforme se haya realizado la prueba, se habrá actualizado los resultados del diagnóstico del disco.

Podremos ejecutar el siguiente comando para ver el resultado:

smartctl -l selftest /dev/sdb

Podría devolver algún error, como por ejemplo:

=== 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  Conveyance offline  Completed: read failure       90%      7101         8396064
# 2  Short offline       Completed: read failure       90%      7101         8396064


Si deseamos ejecutar la Rutina Corta de Autocomprobación (short self-test routine), ejecutamos:

sudo smartctl -d ata -t short /dev/sdb

Si deseamos ejecutar la rutina regurosa, indicamos

smartctl -d ata -t long /dev/sdb

Tras estas pruebas volvemos a chequear el resultado con

sudo smartctl -l selftest /dev/sdb

Ahora ejecutamos la Autocomprobación de Transmisión.


sudo smartctl -d ata -t conveyance /dev/sdb

Y por último revisamos nuevamente la bitácora de errores de la autocomprobación:

sudo smartctl -d ata -l selftest /dev/sdb




Usar SMART desde la Interfaz Gráfica:
Si deseamos usar la interfaz gráfica, podremos utilizar la Utilidad de Discos para estos menesteres. Para ello la instalamos con

sudo apt-get install gnome-disk-utility

Para ejecutar la aplicación, vamos a Sistema / Accesorios / Discos (antiguamente Sistema / Administración / Utilidad de Discos).

La misma nos permite realizar estas evaluaciones por medio de la unidad de control y revisar los discos. Para ello seleccionamos el disco en cuestión (en este caso, el /dev/sdb de 320GB), y presionamos el botón "Datos SMART".
 
El programa nos indicará los fallos y el grado de los mismos, de la misma manera que la terminal. Podremos escoger la Autocomprobación SMART para ejecutar los tres tipos de autocomprobaciones que nos permitía la consola (Corta, Extendida y Transmisión).A gusto de los cocineros comen los frailes.

También podremos desactivar los informes para que no se nos avisen de errores ni se nos presenten alertas.