¿Cómo hacer una sola pasada con badblocks en modo destructivo?

¿Cómo hacer una sola pasada con badblocks en modo destructivo?

estoy usandobloques malosrealizar un borrado destructivo de cualquier dato del disco; usando el siguiente comando:

badblocks -wsp 0 /dev/sdb1

Pasé la opción -p 0con la esperanza de que esto resultara en una sola pasada, pero obtengo varias pasadas:

Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: done
Testing with pattern 0xff: done
Reading and comparing: 19.01% done, 7:43:47 elapsed. (0/0/0 errors)

Al leer la página de manual, puedo ver que la -wopción en sí incluye cuatro pases:

-w Utiliza prueba en modo de escritura. Con esta opción, badblocks busca bloques defectuosos escribiendo algunos patrones (0xaa, 0x55, 0xff, 0x00) en cada bloque del dispositivo, leyendo cada bloque y comparando el contenido. Esta opción no se puede combinar con la opción -n, ya que son mutuamente excluyentes.

Esto es excesivo para mis necesidades. ¿Hay alguna manera de lograr un único pase destructivo?

Respuesta1

Al leer más la página de manual, resolví el problema. -wDe hecho, hace una sola pasada, como se desprende de la descripción de la -popción:

El valor predeterminado es 0, lo que significa que los bloques defectuosos saldrán después del primer pase.

Un pase consta de cuatro patrones de prueba:

-w Utiliza prueba en modo de escritura. Con esta opción, badblocks busca bloques defectuosos escribiendo algunos patrones (0xaa, 0x55, 0xff, 0x00) en cada bloque del dispositivo, leyendo cada bloque y comparando el contenido.

El patrón se puede anular usando la -topción:

-t test_pattern Especifica un patrón de prueba para leer (y escribir) en bloques de disco. El test_pattern puede ser un valor numérico entre 0 y ULONG_MAX-1 inclusive, o la palabra "aleatorio", que especifica que el bloque debe llenarse con un patrón de bits aleatorio. Para los modos de lectura/escritura (-w) y no destructivo (-n), se pueden especificar uno o más patrones de prueba especificando la opción -t para cada patrón de prueba deseado. Para el modo de solo lectura, solo se puede especificar un patrón y no puede ser "aleatorio". Las pruebas de solo lectura con un patrón suponen que el patrón especificado se ha escrito previamente en el disco; de lo contrario, una gran cantidad de bloques no superarán la verificación. Si se especifican varios patrones, todos los bloques se probarán con un patrón antes de pasar al siguiente.


Ejemplo de comando y salida:

# badblocks -wsvt 0 /dev/sdz
Checking for bad blocks in read-write mode
From block 0 to 488386583
Testing with pattern 0x00: done                                                 
Reading and comparing: done                                                 
Pass completed, 0 bad blocks found. (0/0/0 errors)

Respuesta2

Si el objetivo era destruir los datos en lugar de buscar errores, entonces podrías usar

dd if=/dev/zero of=/dev/sdX status=progress

donde X es la letra de su dispositivo de destino.

Pero si realmente está preocupado por los datos de su disco, puede ejecutar dd varias veces, usar otras herramientas como borrar o triturar o simplemente dejar que badblocks haga su trabajo. Todo depende del tiempo que estés dispuesto a invertir en eliminar los datos.

información relacionada