
Generalmente cuando comenzamos a tener fallas en nuestro sistema o notamos cierta lentitud o congelamiento al sistema, solemos atribuirlos al sistema, que tenemos muchos programas instalados o demasiada información o simplemente el equipo no tiene los recursos suficientes.
En gran medida estos problemas suelen ser ocasionados por las fallas con los sectores de nuestro disco duro. Verificar la salud de su disco duro es bastante fácil con las herramientas adecuadas.
Es por ello que en este artículo vamos hablar sobre una excelente herramienta que nos ayudara a verificar la salud de nuestro disco duro.
Smartctl
Antes de comenzar, muchos de ustedes sabrán que la mayoría de los discos duros modernos tienen «SMART».
Esta es una característica que permite que los sistemas operativos (como Linux, Mac y Windows) verifiquen la integridad y el estado de los discos duros.
Cuando el sistema tiende a detectar ciertos errores, este te informa e incluso mucho BIOS suelen desplegar los mensajes generados por fallos con sectores en el disco duro.
Instalar Smartmontools
En Linux, hay muchas formas de verificar el estado de un disco duro. Sin embargo, probablemente la forma más rápida es con smartctl.
Antes de que podamos ver cómo usar esta herramienta, debemos de instalar esta en nuestro sistema para poder hacer uso de ella.
Smartctl es una utilidad que se encuentra en casi todas las distribuciones de Linux actuales dentro de sus repositorios.
Para poder instalar esta utilidad en Debian, Ubuntu y sistemas basados o derivados de estos, debemos de abrir una terminal y en ella vamos a teclear el siguiente comando:
sudo apt-get install smartmontools
¿Cómo utilizar Smartctl en Linux?

Smartctl es bastante fácil de usar, dado que su uso solamente es bajo la terminal y que requiere que hagamos uso de los permisos de supe usuario deberemos de abrir una y tecleamos en ella:
su
Ahora hecho, esto debemos de realizar un listado de nuestros discos duros, así como de las particiones.
Para ello debemos de teclear el siguiente comando:
fdisk -l
Nos dara un listado de los discos duros con sus particiones y tamaños correspondientes e etiquetas, iniciando por el disco y partición en donde tenemos instalado el sistema.
Siendo este como /dev/sda y seguido por el número de partición que en este caso será la 1.
Si tienen más de una partición en el mismo disco este seguirá mostrado /dev/sda2, /dev/sda3 así sucesivamente.
Si tienen más de un disco duro este cambiara la última letra siguiendo el abecedario según el número de discos, tal es que el primero es /dev/sda, el segundo /dev/sdb y así.
Ya identificado el disco ahora solamente ejecutamos el siguiente comando, sustituyendo ‘sdx’ por el disco que tú vas a examinar:
smartctl -a /dev/sdX
Si requieren un informe sobre el estado de su disco lo pueden exportar a un documento de texto con el siguiente comando:
smartctl -a /dev/sdX >> /ruta/donde/guardara/el/reporte-de-disco.txt
Este proceso puede demorar algunos minutos, dado que esto depende en gran medida de la capacidad de almacenamiento de tu disco.
En caso de que requieras de realizar acciones preventivas con tu disco puedes hacer uso del comando fsck.
O en casos muy extremos requerir de la ayuda del comando badblocks, con el cual podrás detectar y aislar sectores dañados de tu disco duro.
Finalmente, si requieres de una herramienta que cuente con interfaz gráfica, te puedo recomendar el uso de la utilidad de discos de Gnome o mejor conocida como Gnome disk.
Entre sus opciones podrás encontrar utilidades para verificar el estado de tu disco.
¿En qué valores debo fijarme?
Cuando hacemos un test de SMART, nos va a aparecer una gran cantidad de atributos de nuestro disco duro o SSD. Algunos de estos valores es crítico que nos fijemos muy bien, porque podrían darnos «pistas» de que el disco va a fallar muy pronto:
- Reallocated_Sector_Ct: es el número de sectores que se han reasignados a otras zonas del disco porque ha habido errores de lecturas. Este error es muy típico cuando un disco tiene mucho tiempo y está cerca de terminar su vida útil.
- Spin_Retry_Count: es el número de intentos que han sido necesarios para arrancar el disco, esto indica que hay un grave problema de hardware en el disco, y podría no arrancar la próxima vez.
- Reallocated_Event_Count: número de reasignaciones que se han realizado, ya sea con éxito o sin éxito. Cuanto mayor es el número, peor es la salud del disco duro.
- Current_Pending_Sector: número de sectores que están pendientes de reasignar próximamente.
- Offline_Uncorrectable: número de errores no corregibles al acceder, ya sea en lectura o en escritura a diferentes sectores del disco.
- Multi_Zone_Error_Rate: número total de errores durante la escritura de un sector.

Utilización de smartctl
Para poder utilizar este programa y comprobar la salud de nuestro disco duro, lo primero que debemos hacer es saber cuántos discos duros tenemos, y cuál es la ruta para examinar esos discos duros o SSD en cuestión. Para poder conocer dónde están los discos, debemos ejecutar el siguiente comando:
df -h
También podríamos hacer uso de fdisk para sacar el listado de discos que tenemos en nuestro servidor:
sudo fdisk -l
Estos comandos nos mostrará un listado de las unidades y también de las particiones. Este programa tenemos que utilizarlo a nivel de disco duro o SSD, no a nivel de partición. Generalmente en sistemas Linux encontraremos los discos en la ruta /dev/sdX.
Una vez que sepamos qué unidad vamos a analizar para comprobar su salud a través de SMART, debemos saber que existen un total de dos pruebas diferentes que podemos realizar:
- Prueba corta: esta prueba es la más utilizada para detectar problemas en el disco. Al realizar esta prueba nos mostrará los errores y avisos más importantes, sin necesidad de analizar todo el disco en detalle. Podemos programar esta prueba corta a través de cron para que sea semanal, de esta forma, una vez cada semana realizará este análisis y nos avisará si ha detectado algún error. Es recomendable hacer esta prueba en un horario donde haya poco o ningún uso, no es recomendable hacerlo en horario de trabajo, mejor de madrugada.
- Prueba larga: esta prueba puede durar bastante tiempo, dependiendo del disco y su capacidad. Al realizar esta prueba tan completa, nos mostrará todos los avisos o errores que encuentre en todo el disco. Podemos programar esta prueba larga con cron para que se haga mensual, es decir, una vez cada mes realizaremos esta prueba para comprobar la salud del disco. Es recomendable hacer esta prueba en un horario donde apenas haya uso del disco, por ejemplo, de madrugada, porque de lo contrario el rendimiento en lectura y escritura así como en latencia de acceso a los datos aumentarán considerablemente.
Una vez que ya sabemos los dos tipos de exámenes que podemos usar, lo primero que debemos saber es si el disco duro o SSD tiene activado SMART:
sudo smartctl -i /dev/sda
En el caso de que el disco soporte SMART pero no esté activado, lo podemos activar ejecutando la siguiente orden:
sudo smartctl -s on /dev/sda
Para ver todos los atributos de SMART del fabricante del disco en cuestión, podemos ejecutar la siguiente orden:
sudo smartctl -a /dev/sda
Para realizar un test corto ejecutamos lo siguiente:
sudo smartctl -t short /dev/sda
Para realizar un test largo ejecutamos lo siguiente:
sudo smartctl -t long /dev/sda
Una vez que hayamos realizado el test corto o largo, podemos ejecutar la siguiente orden para ver todos los resultados:
sudo smartctl -H /dev/sda