badblocks es una de esas herramientas a las que la gente recurre cuando un disco empieza a comportarse de forma extraña. Está en casi cualquier sistema Linux, suena exactamente a lo que necesitas, y una de sus opciones borrará el disco que intentabas diagnosticar. El manual es inusualmente directo sobre todo esto, así que veamos lo que dice realmente.
Qué hace, y qué no hace
La descripción es una sola línea: badblocks busca bloques defectuosos en un dispositivo. Lo que produce es una lista.
Ese es todo su trabajo. No repara nada. La reasignación de sectores la gestiona el firmware del disco según su propio calendario, no un escáner en espacio de usuario. La lista existe para entregarse a e2fsck o mke2fs, de modo que el sistema de archivos sepa qué bloques debe dejar en paz.
Esto lo sitúa en la misma categoría que smartctl, que informa de los atributos SMART sin repararlos tampoco. Ambos te dicen algo. Ninguno arregla nada.
La opción que borra tu disco
De todo lo que hay aquí, esta es la parte que conviene recordar.
La opción -w ejecuta una prueba en modo escritura. Escribe los patrones 0xaa, 0x55, 0xff y 0x00 en todos los bloques del dispositivo, vuelve a leer cada uno y los compara. Es una prueba minuciosa precisamente porque utiliza toda la superficie.
El manual incluye una advertencia explícita:
Nunca uses la opción -w en un dispositivo que contenga un sistema de archivos existente. ¡Esta opción borra los datos! (en el texto original: «Never use the -w option on a device containing an existing file system. This option erases data!»)
No hay deshacer, ni conservación parcial, ni un "solo sobrescribe las partes defectuosas". Se escribe en todos los bloques.

Los modos seguros
Por defecto, badblocks realiza una prueba no destructiva de solo lectura. Al ejecutarlo sin ninguna opción de modo, lee el dispositivo e informa de lo que no consigue leer. No se escribe nada.
La opción -n añade una prueba no destructiva de lectura y escritura: escribe patrones pero va restaurando el contenido original sobre la marcha. El manual la recomienda como sustituta de -w cuando hay un sistema de archivos presente, y es honesto sobre la contrapartida: es más lenta, pero conservará tus datos.
-n y -w son mutuamente excluyentes, lo cual es una pequeña misericordia.
La recomendación que casi nadie sigue
Aquí viene la parte que sorprende a quienes llevan años usando esta herramienta. El manual dice, en la propia descripción:
se recomienda encarecidamente que los usuarios no ejecuten badblocks directamente, sino que utilicen la opción -c de los programas e2fsck y mke2fs (en el texto original: «it is strongly recommended that users not run badblocks directly, but rather use the -c option of the e2fsck and mke2fs programs»)
El motivo es el tamaño de bloque. Los números de bloque que produce badblocks dependen del tamaño de bloque que usa el sistema de archivos, y el valor por defecto es de 1024 bytes. Si tu sistema de archivos usa otro y no has pasado -b, los números de la salida no se refieren a los bloques que tú crees. Ejecutar el escaneo a través de e2fsck -c o mke2fs -c implica que el tamaño de bloque es correcto por construcción.
Así que el planteamiento honesto es este: badblocks es un componente, y las herramientas que lo invocan suelen saber invocarlo mejor que tú.
Por qué se niega a tocar un dispositivo montado
Normalmente badblocks rechazará una prueba de lectura y escritura o no destructiva sobre un dispositivo montado, porque cualquiera de las dos puede bloquear el sistema o dañar el sistema de archivos, incluso si está montado en solo lectura.
Existe una opción -f para anular esa negativa, y el comentario del manual al respecto es una de las líneas más memorables de una página man de Linux:
Esto puede anularse con la opción -f, pero casi nunca debería usarse: si crees que eres más listo que el programa badblocks, casi con toda seguridad no lo eres. (en el texto original: «This can be overridden using the -f flag, but should almost never be used --- if you think you're smarter than the badblocks program, you almost certainly aren't.»)
Lo correcto es desmontar el dispositivo. El manual admite exactamente una excepción: un /etc/mtab que afirme erróneamente que un dispositivo está montado.
Las opciones que conviene conocer
Unas cuantas opciones cambian la forma de una ejecución:
-bdefine el tamaño de bloque. Por defecto, 1024. Es la que hace que la salida tenga sentido o no lo tenga.-cdefine cuántos bloques se prueban a la vez. Por defecto, 64.-prepite el escaneo hasta que no aparezcan nuevos bloques defectuosos en ese número de pasadas consecutivas. Por defecto, 0, es decir, una sola pasada.-eaborta después de un número dado de bloques defectuosos. Útil para responder a "¿hay alguno?", y el manual señala que produce una lista posiblemente incompleta, así que no la uses cuando quieras la imagen completa.-oescribe la lista en un archivo con el formato que esperane2fsck -lymke2fs -l.-smuestra el progreso, lo que importa porque una pasada completa en un disco grande se mide en horas.
Cuándo probar el disco es la decisión equivocada
Este es el juicio que el manual no puede hacer por ti.
Una pasada completa de badblocks lee, o lee y escribe, todos los bloques del dispositivo. En un disco sano es un ejercicio largo pero inofensivo. En un disco que ya está fallando, son horas de carga adicional sobre un hardware que ya está sufriendo, y horas durante las cuales no estás rescatando nada.
Si los datos aún importan, el orden es: primero clonar, después investigar. Clonar con una herramienta diseñada para soportes dañados, que reintenta y salta de forma inteligente en vez de insistir sobre el mismo sector ilegible, saca tus bytes del disco mientras el disco todavía gira. Lo tratamos en la guía sobre clonar un disco que falla con ddrescue. Ejecuta después tus pruebas sobre la imagen, tantas veces como quieras, sin nada que perder.
Cuando el escaneo confirma que el disco está fallando
La versión corta
badblocks busca bloques defectuosos y anota lo que encuentra. No repara nada.
El modo por defecto es de solo lectura y seguro. -n escribe y restaura. -w borra el dispositivo entero, y el manual dice que nunca se use donde exista un sistema de archivos. El manual también recomienda no llamar a badblocks directamente en absoluto, sino a través de e2fsck -c o mke2fs -c, para que el tamaño de bloque sea el correcto. Si se niega a ejecutarse porque el dispositivo está montado, desmóntalo en lugar de recurrir a -f.
Y si el disco se está muriendo en vez de resultar simplemente sospechoso, no dediques sus horas restantes a probarlo. Cópialo antes.
El comportamiento descrito aquí, incluidos los patrones del modo escritura, la advertencia contra -w, la recomendación de usar e2fsck y mke2fs en lugar de badblocks directamente, la negativa ante un dispositivo montado y los valores por defecto, está tomado de la página de manual badblocks(8) tal como se distribuye con e2fsprogs 1.47.0. Las opciones y los valores por defecto pueden variar entre versiones; consulta el manual del sistema que estés usando realmente. Los enlaces comerciales llevan el atributo rel="sponsored nofollow"; puede aplicarse una comisión de afiliado sin coste adicional para ti.
Recupera los datos de tu disco duro → EaseUS
Escaneo gratis · archivos borrados, formateados, perdidos · Windows y Mac



