badblocks
lee, escribe y compara (no necesariamente en ese orden).
Posteriormente badblocks -v
generará mensajes como:
Pass completed, n bad blocks found (x/y/z errors)
Lo que significa que encontró n
bloques defectuosos, que consisten en x
errores de lectura, y
errores de escritura y z
errores de corrupción. Considera errores de lectura y errores de escritura cuando ocurrieron mientras leía y escribía (según lo informado por el núcleo). Estos errores también pueden ser causados por problemas de cable / controlador / controlador.
Un error de corrupción es cuando los datos se compararon y se descubrió que eran diferentes de lo esperado (es decir, los datos que leyó se desviaron de los datos previamente conocidos / escritos). En particular, badblocks
podría escribir varios patrones de datos (especificados por una o más -t pattern
opciones) y verificar si cada patrón se escribió correctamente.
Es posible obtener falsos positivos por errores de corrupción, si tiene otro programa haciendo sus propias escrituras mientras se badblocks
está ejecutando. Si otro programa escribe, el disco se está comportando correctamente, pero badblocks
no lo sabrá , solo verá lo que considera los datos incorrectos.
Es por eso que nunca debe ejecutarse badblocks
en una unidad que está en uso, en una unidad que ya tiene un sistema de archivos que podría montarse automáticamente sin que lo sepa, o en unidades que ya sospecha que son malas pero que aún desea recuperar sus datos.
En términos de recuperación de datos, siempre debe ir con en ddrescue
lugar de badblocks
. ddrescue
hace casi lo mismo badblocks
(modo de lectura), lee toda la unidad y registra los sectores que no pudo leer; pero al mismo tiempo produce una copia útil, mientras que badblocks
solo descarta los datos por completo.
¿Es confiable?
badblocks
es una herramienta como cualquier otra, hace exactamente lo que dice en la página de manual: busca bloques defectuosos en un dispositivo. Puede o no ser la herramienta adecuada para lo que sea que desee hacer.
En las manos equivocadas, podría ser la causa de la corrupción de datos. El llamado non-destructive
modo es un falso amigo y no implica seguridad para sus datos en absoluto.
badblocks
(modo de escritura) es principalmente útil para poner una unidad nueva y vacía a través del escurridor antes de confiar en ella con datos.
Para una prueba de solo lectura, generalmente es mejor ir con las autocomprobaciones SMART ( smartctl -t long
o smartctl -t select
). Más seguro badblocks
y amigable con otras E / S.