Salvando datos de un HDD moribundo: SMART + ddrescue paso a paso

Written by

in

Diagnóstico y plan de rescate para un disco duro mecánico (HDD) con degradación física acelerada, usando los atributos SMART como evidencia y ddrescue como herramienta de recuperación.

Estado crítico del disco (HDD Seagate 1TB)

El análisis partió de los reportes de smartctl -a /dev/sda. El disco presentaba una degradación física acelerada y exponencial en la superficie de los platos, provocada principalmente por desgaste (21,665 horas de uso) y un historial de impactos mecánicos (ID 191 G-Sense: 492 eventos registrados).

La gravedad se hizo evidente al comparar cómo empeoraron los atributos SMART en cuestión de días:

Atributo SMARTEvoluciónSignificado
Sectores Reasignados (ID 5)64 → 1,224 → 1,248El disco se está quedando sin sectores de repuesto
Sectores Pendientes (ID 197)56 (estable)Sectores inestables esperando ser remapeados
Errores Incorregibles (ID 187)1 → 37Errores que el hardware no pudo solucionar por sí solo
Auto-tests (corto y extendido)Fallaron (Read failure)Bloqueo físico al intentar leer el LBA 1934650888

Por qué estos números importan

Un disco mecánico sano tiene sectores de repuesto reservados de fábrica para reemplazar automáticamente los que empiezan a fallar — es un proceso normal y silencioso que ocurre en cualquier disco con el paso del tiempo. El problema real empieza cuando el conteo de sectores reasignados crece de forma acelerada en pocos días (como en este caso, de 64 a más de 1,200): significa que el disco está agotando esa reserva mucho más rápido de lo esperado, y que la superficie física está fallando de forma activa, no por desgaste gradual normal.

Los errores incorregibles son aún más serios: representan sectores que ni siquiera el propio firmware del disco pudo reparar o remapear — ahí es donde empieza la pérdida real de datos si no se actúa a tiempo.

Estrategia de mitigación: temperatura

Mantener el disco lo más fresco posible (en este caso, a 26°C) ayuda a estabilizar la mecánica interna y evitar la dilatación térmica de los componentes, ganando tiempo valioso antes de que el disco falle por completo. Sin embargo, esto no frena el daño físico — solo reduce el estrés adicional. La recomendación práctica es mantener el equipo apagado hasta tener listo el disco de reemplazo, y encenderlo solo el tiempo estrictamente necesario para el rescate.

Monitoreo en tiempo real

Para vigilar la temperatura del disco mientras se trabaja en él, sin generar lecturas SMART adicionales innecesarias que añadan estrés:

watch -n 5 "sudo smartctl -A /dev/sdb | grep Temperature"

Rescate de datos con ddrescue

ddrescue es la herramienta correcta para este escenario porque, a diferencia de rsync o cp, no se detiene ante un error de lectura: registra el sector problemático en un archivo de log, lo salta, y continúa copiando el resto — maximizando la cantidad de datos recuperados incluso con un disco en mal estado. Herramientas normales de copiado abandonan la operación completa ante el primer error de I/O.

Opción disco a disco (clonación completa)

Copia el disco completo, sector por sector, a otro disco de igual o mayor capacidad en bytes:

sudo ddrescue -d -f -r3 /dev/sdb /dev/sda /home/usuario/rescate.log

Los parámetros clave: -d usa acceso directo al disco (evita la caché del sistema, más preciso para discos dañados), -f fuerza la operación incluso en dispositivos que ddrescue considera «raros», y -r3 indica 3 reintentos por sector antes de darlo por perdido y continuar.

Opción rescate selectivo (recomendada para minimizar estrés mecánico)

En vez de clonar el disco completo, se puede rescatar solo el contenido de una partición específica hacia una carpeta destino en otro disco sano — reduce el tiempo total de operación y el desgaste mecánico adicional sobre un disco que ya está fallando:

sudo ddrescue -d /dev/sdb1 /home/usuario/datos_rescatados /home/usuario/rescate_datos.log

Buenas prácticas para este tipo de rescate

  • El archivo de log de ddrescue es crítico: si el proceso se interrumpe (corte de luz, reinicio), volver a ejecutar el mismo comando con el mismo archivo de log retoma exactamente donde quedó, sin repetir sectores ya copiados.
  • Nunca trabajar directamente sobre el disco dañado para tareas que no sean estrictamente el rescate — cada lectura adicional es una oportunidad más de que un sector marginal termine de fallar.
  • Priorizar la opción selectiva cuando se sabe exactamente qué datos importan, en vez de clonar el disco completo — menos tiempo de disco encendido, menos riesgo.
  • La temperatura ayuda pero no cura: es una medida para ganar tiempo durante el rescate, no una solución — el disco debe reemplazarse sin importar cuánto se estabilicen los números tras enfriarlo.