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 0
con 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 -w
opció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. -w
De hecho, hace una sola pasada, como se desprende de la descripción de la -p
opció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 -t
opció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.