smartmontools: guía práctica para medir y anticipar fallos en SSD/HDD (smartctl + smartd)

Qué es smartmontools y cuándo usarlo

smartmontools es un conjunto de utilidades —smartctl (línea de comandos) y smartd (demonio)— para consultar y monitorizar la tecnología S.M.A.R.T. integrada en la mayoría de unidades modernas (SATA/SAS/SCSI y NVMe). Sirve para obtener señales tempranas de degradación y fallos de disco, programar pruebas internas y recibir alertas automáticas cuando ciertos umbrales se desvían. smartmontools.org+1

Cuándo usarlo

  • Diagnóstico rápido de salud: comprobar si el disco “PASSED/FAILED” y revisar logs de errores. linux.die.net

  • Mantenimiento preventivo: planificar pruebas short/long en segundo plano con notificaciones por correo o syslog. linux.die.net

  • Entornos mixtos: funciona en Linux/BSD/macOS y Windows (paquetes precompilados e instaladores). smartmontools.org


Instalación rápida en Linux, Windows y macOS

Linux (Debian/Ubuntu):

sudo apt update && sudo apt install smartmontools

RHEL/CentOS/Rocky/Alma:

sudo dnf install smartmontools

Arch/Manjaro:

sudo pacman -S smartmontools

macOS (Homebrew):

brew install smartmontools

Windows: descarga el instalador desde la página oficial (o usa MSYS2/Chocolatey si lo prefieres). smartmontools.org

Nota: el paquete incluye smartctl y smartd. Si no planeas automatizar aún, puedes usar solo smartctl.


Primeros pasos con smartctl: comprobar soporte y estado

Enumerar dispositivos detectados:

sudo smartctl --scan

Comprobar información básica y si SMART está activado:

sudo smartctl -i /dev/sdX
sudo smartctl -H /dev/sdX # Health summary (PASSED/FAILED)
sudo smartctl -A /dev/sdX # Atributos SMART
sudo smartctl -l error /dev/sdX # Registro de errores

Estas opciones provienen del manual oficial de smartctl. linux.die.net

Salida en JSON (ideal para scripts):

sudo smartctl -a --json=c /dev/sdX

Consejo: guarda informes con fecha para comparar tendencia (p. ej., sectores reasignados que suben con el tiempo).


Pruebas SMART: short, long y conveyance (cuándo elegir cada una)

  • Short (rápida, minutos): buena para chequeos frecuentes sin interrumpir.

  • Long/Extended (profunda, decenas de minutos u horas): útil ante síntomas o antes de mover datos críticos.

  • Conveyance (transporte, rápida): diseñada para detectar daños sufridos durante envíos/traslados (no todos los modelos la implementan).

Ejecutar prueba y consultar progreso/resultado:

sudo smartctl -t short /dev/sdX
sudo smartctl -t long /dev/sdX
sudo smartctl -l selftest /dev/sdX

Las pruebas y registros se documentan en las páginas de manual. linux.die.net


Interpretar los atributos SMART que importan (SSD vs HDD)

No todos los fabricantes usan los mismos nombres; fíjate en Raw Value y en la tendencia. A continuación, una guía orientativa:

TipoAtributo (ejemplos)¿Qué vigilar?Interpretación rápida
HDDReallocated_Sector_Ct>0 y creciendoSuperficie degradada; planifica copia y reemplazo si aumenta.
HDDCurrent_Pending_Sector>0Sectores inestables en espera; riesgo inmediato si sube.
HDDOffline_Uncorrectable>0Errores no corregibles; degradación.
HDD/SSDUDMA_CRC_Error_Count>0 y creciendoSuele indicar cable SATA defectuoso/con interferencias.
AmbosPower_On_HoursEdad/uso (útil para contexto).
SSDMedia_Wearout_Indicator / Percentage UsedAlto % usadoDesgaste; cerca de fin de vida útil.
SSDWear_Leveling_CountBajo margenDistribución de desgaste; acompáñalo con % usado.

Muchos SSD/NVMe exponen porcentaje de vida usada o indicadores de desgaste; con NVMe, los campos y logs cambian respecto a SATA, por eso es clave usar herramientas compatibles con NVMe. smartmontools.org


NVMe con smartctl: banderas y diferencias clave

smartmontools soporta NVMe (la semántica difiere de SATA/SAS; hay Error Log, SMART/Health Information, etc.). Para direcciones NVMe, smartctl puede trabajar sobre el dispositivo físico o el namespace:

# Información en NVMe (ambas suelen devolver lo mismo si hay un solo namespace)
sudo smartctl -i /dev/nvme0
sudo smartctl -i /dev/nvme0n1

# Datos de salud NVMe
sudo smartctl -a -d nvme /dev/nvme0

  • El soporte NVMe está documentado en la wiki del proyecto (incluye notas y limitaciones). smartmontools.org

  • Con NVMe, algunos “self-tests” funcionan de forma distinta o pueden no estar disponibles en ciertos modelos/firmwares; céntrate en los contadores de vida, temperatura y error log. smartmontools.org+1


Automatiza con smartd: programar tests y alertas por email/syslog

smartd es un demonio que lee /etc/smartd.conf (o ruta equivalente) y comprueba periódicamente todos tus discos. Puede enviar correos, escribir en syslog, programar self-tests y reaccionar a eventos. linux.die.net+1

Ejemplo de /etc/smartd.conf (base práctico)

# Monitorea todos los discos detectados automáticamente
DEVICESCAN -H -l error -l selftest -f -n standby,q -s (S/../.././02) -s (L/../../6/03) -m admin@tudominio.com

# Explicación:
# DEVICESCAN -> Detecta dispositivos disponibles.
# -H -> Avisa si el "overall-health" falla.
# -l error,selftest -> Registros a vigilar.
# -f -> Reporta fallos de lectura de atributos.
# -n standby,q -> Evita despertar discos en standby (q = silencioso).
# -s (S...) -> Programa test corto diario a las 02:00.
# -s (L...) -> Programa test largo semanal (sábado 03:00).
# -m correo -> Envía alertas por email.

Tras editar, recarga la configuración:
sudo systemctl reload smartd (o killall -HUP smartd) según tu sistema. Arch Manual Pages

Si prefieres ver plantillas comentadas, revisa el archivo de ejemplo del paquete Debian, muy útil para copiar directivas específicas por tipo de disco. Debian Sources


Snippets útiles para diagnóstico y exportación de informes

Exportar informe completo con fecha:

sudo smartctl -a /dev/sdX | tee "smart_$(hostname)_sdX_$(date +%F).txt"

Detectar rápidamente discos con health != PASSED:

for d in /dev/sd? /dev/nvme?n?; do
sudo smartctl -H $d 2>/dev/null | awk -v d=$d '/overall-health/ && $0 !~ /PASSED/ {print d ": " $0}'
done

Parseo en JSON + jq (ideal para Prometheus/alerta):

sudo smartctl -a --json=c /dev/sdX | jq '.["smart_status"] // empty, .nvme_smart_health_information_log // empty'

Errores comunes y cómo solucionarlos

  • UDMA_CRC_Error_Count en aumento: suele ser cable SATA malo o interferencias; cambia el cable/puerto y vuelve a medir.

  • Current_Pending_Sector > 0: realiza backup inmediato, ejecuta un test largo; si el valor no baja (o sube), planifica reemplazo.

  • Temperatura alta sostenida: mejora ventilación, ajusta curvas de ventilador y revisa ubicación física.

  • NVMe “no soporta SMART” (falso positivo): usa -d nvme o el dispositivo correcto (/dev/nvme0/n1); distintas familias exponen métricas con nombres diferentes. smartmontools.org+1


Alternativas y GUI: GSmartControl y otras opciones

Si prefieres una interfaz gráfica, GSmartControl es un frontend para smartctl que permite ver atributos, lanzar tests y guardar informes con un par de clics. Útil para ver rápidamente varias unidades sin consola. GSmartControl+1


Checklist de mantenimiento preventivo y decisiones de reemplazo

  • Activar SMART y comprobar health tras instalar.

  • ✅ Programar test short diario y long semanal con smartd. linux.die.net

  • ✅ Monitorizar tendencias (sectores reasignados/pending, errores CRC, temperatura).

  • ✅ Guardar informes históricos (texto/JSON) y compararlos.

  • ✅ Reemplazar si hay crecimiento sostenido de atributos críticos o errores no corregibles.

  • ✅ En NVMe, seguir porcentaje de vida usada y error log. smartmontools.org


Preguntas frecuentes (FAQ)

¿smartctl funciona en Windows y macOS?
Sí. smartmontools ofrece instaladores y paquetes para varias plataformas, además de código fuente. smartmontools.org

¿SMART garantiza predecir un fallo?
No. Da señales y estadísticas que ayudan a anticipar riesgos; no es una bola de cristal. Aun así, es esencial para mantenimiento preventivo. help.ubuntu.com

¿Qué pasa con RAID/controladoras HBA?
Puede requerir opciones especiales o exponer los discos de forma distinta; consulta la documentación de tu HBA y parámetros de smartctl para ese driver. linux.die.net

¿Y con NVMe?
Está soportado, pero los campos difieren de SATA; usa -d nvme y revisa los logs de salud específicos. smartmontools.org


Conclusión

Con smartmontools tienes una caja de herramientas potente y ligera para medir, probar y automatizar la salud de tus discos. Empieza por smartctl -H y -A para un vistazo rápido, añade pruebas periódicas y alertas con smartd, y apóyate en informes históricos para decidir cuándo reemplazar. La clave no es una lectura aislada, sino la tendencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *