Guía de badblocks en Ubuntu: detección de sectores defectuosos

Diagnóstico preventivo del almacenamiento en Linux

Garantizar la integridad física de las unidades de almacenamiento es crucial para eludir desastres imprevistos y pérdidas irreversibles de información. En esta guía práctica abordaremos a fondo la utilidad badblocks, una herramienta esencial para localizar bloques degradados o defectuosos en el disco. Configuraremos un entorno virtual de pruebas totalmente seguro mediante dispositivos loop y exploraremos sus parámetros más destacados: escaneo pasivo de solo lectura, monitorización del progreso en vivo, generación de reportes externos y el modo no destructivo de lectura y escritura.

1. Configuración del laboratorio virtual y análisis inicial en solo lectura (-v)

Antes de comenzar la evaluación, es indispensable verificar que la suite de utilidades de bajo nivel para sistemas de ficheros esté disponible ejecutando sudo apt-get update -qq && sudo apt-get install -y e2fsprogs.

Actualización de repositorios e instalación del paquete e2fsprogs

A fin de experimentar sin poner en riesgo ningún disco físico en producción, generamos un archivo de imagen ficticio de 50MB mediante dd if=/dev/zero of=/tmp/disk_test.img bs=1M count=50 status=none.

Creación de una imagen de disco virtual de 50 megabytes

Para que el núcleo de Linux trate dicho archivo binario como si fuera una unidad de almacenamiento convencional, lo asociamos al primer dispositivo de bucle libre mediante sudo losetup -f /tmp/disk_test.img.

Asociación de la imagen a un dispositivo loop disponible

Almacenamos la ruta asignada en una variable de entorno y comprobamos que el enlace se haya establecido correctamente ejecutando LOOP_DEV=$(losetup -j /tmp/disk_test.img | cut -d: -f1) && echo "테스트 디바이스: $LOOP_DEV".

Verificación de la ruta del dispositivo loop asignado

El comando badblocks rastrea la superficie de los bloques en busca de anomalías de hardware o zonas dañadas.
Iniciamos la revisión aplicando el modo predeterminado de solo lectura junto al modificador -v, el cual reporta el avance detallado sin alterar los datos existentes.
Si la herramienta finaliza su ciclo sin imprimir identificadores de bloque, significa que el medio se encuentra completamente sano.
⚙️ [Parámetros fundamentales]

-v : Habilita el modo detallado (verbose), imprimiendo en la terminal las etapas del análisis y las incidencias detectadas.
-w : Activa la comprobación destructiva mediante patrones de escritura intensivos (sobrescribe por completo el contenido original, eliminando los datos).
-n : Emplea un mecanismo no destructivo de lectura y escritura; resguarda temporalmente cada bloque en memoria, evalúa la superficie y restaura la información intacta.
-s : Despliega una barra de progreso continua indicando la cuota porcentual (%) y el volumen de bloques procesados en tiempo real.
-b : Define la dimensión del bloque en bytes (por defecto opera con bloques de 1024 bytes).
-o : Exporta la relación de sectores dañados directamente hacia un fichero de texto en vez de saturar la salida estándar.
-p : Determina el número de pasadas consecutivas sobre el medio, ideal para detectar fallos intermitentes o sectores al borde del colapso.

Ejecución de escaneo detallado con badblocks

2. Monitorización del progreso en tiempo real (-s, -v)

Para supervisar la tarea de principio a fin con métricas visuales instantáneas, combinamos los modificadores -s y -v mediante la instrucción sudo badblocks -s -v $LOOP_DEV.
El flag -s actualiza continuamente la proporción completada en porcentaje (%) junto a la cuenta de bloques verificados, mientras que -v añade explicaciones pormenorizadas durante cada fase de la inspección.
Esta combinación resulta de gran utilidad en discos de gran tamaño para evitar la incertidumbre sobre el estado del proceso; la culminación sin avisos numéricos ratifica que la unidad opera de forma óptima.

Monitorización del estado del escaneo en tiempo real

3. Ajuste del tamaño de bloque y almacenamiento de registros (-b, -o)

Con el fin de emular el tamaño de asignación estándar empleado por los sistemas de archivos contemporáneos (4096 bytes) y volcar los resultados en un reporte, lanzamos LOOP_DEV=$(losetup -j /tmp/disk_test.img | cut -d: -f1) && sudo badblocks -b 4096 -v -o /tmp/badblocks_report.txt $LOOP_DEV.
La opción -b 4096 sustituye los 1024 bytes por omisión para ajustarse con precisión a la geometría lógica del volumen analizado.
Por otro lado, -o redirige la lista de bloques corruptos descubiertos hacia un archivo específico, dejando preparado el insumo necesario para futuras rutinas de aislamiento o reparación.

Escaneo con tamaño de bloque personalizado y registro en archivo

Procedemos a examinar el fichero generado mediante cat /tmp/badblocks_report.txt para constatar los hallazgos.
Tratándose de una unidad libre de defectos físicos, el comando mostrará un documento enteramente vacío, ratificando la ausencia de sectores anómalos.

Verificación del archivo de reporte generado

4. Análisis exhaustivo no destructivo de lectura/escritura y limpieza (-n)

Para poner a prueba la capacidad de escritura de los sectores sin arriesgar ni corromper los archivos almacenados, ejecutamos LOOP_DEV=$(losetup -j /tmp/disk_test.img | cut -d: -f1) && sudo badblocks -n -v $LOOP_DEV.
La bandera -n opera de manera segura: copia provisionalmente el bloque en memoria volátil, inyecta patrones de comprobación para certificar la respuesta del soporte físico y restituye los datos originales de inmediato.
La finalización del proceso sin arrojar números de bloque dañados confirma plenamente la fiabilidad del medio de almacenamiento.

Prueba de lectura y escritura no destructiva con badblocks

Una vez completadas las validaciones prácticas, procedemos a desmantelar el entorno de pruebas, desacoplando el dispositivo loop y suprimiendo tanto la imagen como el reporte mediante LOOP_DEV=$(losetup -j /tmp/disk_test.img | cut -d: -f1) && sudo losetup -d $LOOP_DEV && rm -f /tmp/disk_test.img /tmp/badblocks_report.txt.

Limpieza de dispositivos loop y ficheros temporales

Hemos revisado los parámetros clave de badblocks para el diagnóstico riguroso de soportes de almacenamiento en Ubuntu.
Integrar este tipo de auditorías periódicas dentro del plan de mantenimiento de sistemas previene incidentes graves y garantiza la longevidad de su infraestructura de datos.