Marcio Cunha

Cómo revivir discos duros con sectores defectuosos en Linux

Aprende a usar comandos de bajo nivel en Linux para reasignar bloques dañados y rescatar archivos antes de una falla total del disco.

Marcio Cunha•5 min
También disponible en:PortuguêsEnglish
Resumen
  • Los sectores defectuosos ocurren debido al desgaste físico natural del disco o pequeñas inestabilidades magnéticas en los platos.
  • La utilidad SMART monitorea la salud interna del disco duro y advierte sobre tasas crecientes de reasignación de bloques.
  • Los comandos de lectura forzada permiten extraer datos importantes de áreas críticas antes de que el sistema pierda acceso definitivo.
  • La reasignación forzada reemplaza bloques inestables con sectores de reserva administrados por el propio firmware del disco.
  • Mantener copias de respaldo actualizadas sigue siendo la única protección real contra la pérdida definitiva de datos en almacenamiento mecánico.

Qué son los sectores defectuosos y por qué aparecen en los discos

Los discos duros tradicionales, conocidos como HDD, funcionan escribiendo datos en platos magnéticos giratorios mediante un cabezal de lectura y escritura microscópico. Con el paso de los años, el desgaste mecánico natural, la vibración excesiva y el envejecimiento del material magnético cobran su precio. Cuando una pequeña región del disco pierde su capacidad de retener la carga magnética de forma estable, surge lo que llamamos un sector defectuoso o bloque malo.

En la práctica, esto significa que el sistema operativo intenta leer un archivo importante pero tropieza en un tramo mudo donde la información se corrompió o desapareció. La mayoría de las veces, el sistema de archivos detecta el problema, acusa un error de lectura y se congela temporalmente. Antes de desechar el hardware o intentar un reemplazo drástico, es posible utilizar herramientas nativas de Linux para diagnosticar la gravedad del daño, aislar las áreas problemáticas y extraer archivos vitales, tal como hacemos al organizar rutinas de copias de seguridad incrementales para mitigar pérdidas futuras.

Cómo diagnosticar la salud real del disco con SMART

Antes de ejecutar cualquier comando destructivo o intento de reparación, debemos preguntarle al propio disco cómo se siente. Los discos modernos cuentan con un sistema interno de monitoreo llamado SMART, siglas en inglés para tecnología de autorregistro, análisis e informes. Este sistema registra estadísticas vitales sobre el funcionamiento mecánico, como horas de uso, temperatura y el número exacto de sectores que ya han fallado.

Para verificar estos datos en Linux, utilizamos el paquete smartmontools a través de la terminal. El comando básico para inspeccionar una unidad específica, como /dev/sda, se ejecuta con privilegios administrativos. En la práctica, observamos principalmente atributos como Reallocated_Sector_Count, que indica cuántos bloques malos ya fueron reemplazados por sectores de reserva, y Current_Pending_Sector_Count, que muestra sectores inestables esperando una decisión de reasignación.

sudo smartctl -a /dev/sda

Cómo extraer datos de áreas dañadas usando ddrescue

Cuando un disco duro comienza a mostrar fallas graves, intentar copiar archivos comunes usando el administrador de archivos gráfico es el camino más corto para destruir lo que queda. El movimiento del cabezal intentando releer los bloques dañados genera calor y desgaste acelerado, bloqueando el sistema operativo. Para evitar este estrés innecesario, la herramienta ideal en el ecosistema Linux es ddrescue, diseñada específicamente para recuperar datos de medios con defectos físicos.

A diferencia del comando tradicional dd, que se rinde al encontrar el primer error de lectura, ddrescue utiliza un algoritmo inteligente en dos fases. Primero, copia rápidamente todas las áreas sanas del disco, dejando las regiones problemáticas para el final. En la segunda fase, regresa a los tramos corrompidos y aplica múltiples intentos inversos para extraer el máximo de bits legibles antes de que el motor deje de girar.

sudo ddrescue -d -r3 /dev/sda /mnt/backup/imagen_disco.img /mnt/backup/mapa_errores.log

Cómo forzar la reasignación de bloques malos con badblocks

Después de rescatar los datos importantes y guardar lo crítico, podemos intentar recuperar la usabilidad temporal del disco forzando al firmware a reasignar los bloques defectuosos. Linux cuenta con la herramienta badblocks, capaz de probar la superficie magnética de forma destructiva o no destructiva. El modo no destructivo lee y escribe los datos de vuelta, pero para forzar una limpieza real y activar el remapeo de fábrica, el modo de escritura destructiva es el más eficiente.

En la práctica, el comando ejecuta patrones de prueba en toda la extensión del bloque. Cuando el controlador del disco nota que una escritura falló en un sector específico, marca automáticamente esa dirección como inutilizable y la reemplaza por un sector de reserva mantenido en un área aislada del disco. Vale la pena recordar que esta operación requiere extrema precaución, ya que cualquier error al identificar la unidad podría borrar el sistema operativo principal.

sudo badblocks -v -s -w /dev/sda

Cómo validar la integridad del sistema de archivos tras la reparación

Después de realizar el mapeo y la reasignación de sectores defectuosos, el sistema de archivos en la parte superior de la partición puede quedar inconsistente. Los metadatos y las tablas de asignación que apuntaban a los bloques corrompidos necesitan corrección para que el sistema operativo vuelva a operar de forma estable. Para esta tarea, utilizamos el comando fsck, que verifica y repara estructuras corrompidas en particiones tipo ext4, xfs y otros formatos compatibles con el kernel.

Es fundamental ejecutar fsck con la partición debidamente desmontada, ya que intentar reparar un sistema de archivos en uso activo resulta en una corrupción catastrófica de datos. Durante el proceso, la utilidad recorre los bloques, reconecta archivos huérfanos a la carpeta perdida y ajusta los punteros internos, preparando el terreno para que el hardware recupere su funcionalidad operacional básica.

sudo umount /dev/sda1 && sudo fsck -y -f /dev/sda1

Consideraciones finales sobre la vida útil de los discos recuperados

Revivir un disco duro mediante la reasignación de sectores defectuosos y el rescate con comandos de bajo nivel es una excelente estrategia de emergencia para salvar archivos cruciales o mantener sistemas heredados funcionando temporalmente. Sin embargo, es necesario ver este procedimiento como una medida paliativa y nunca como una solución definitiva. Un disco que ha comenzado a desarrollar bloques malos mecánicos indica que el desgaste físico ha llegado a un punto sin retorno y es probable que ocurran nuevas fallas en cascada pronto. La mejor práctica de ingeniería sigue siendo el reemplazo preventivo de la unidad dañada y el mantenimiento riguroso de rutinas de copias de seguridad automatizadas.