Cómo interpretar la salida de badblocks

44

Las páginas de manual para bloques defectuosos no parecen mencionar en particular lo que significan los tres números en la salida:

Pase completado, 7 bloques defectuosos encontrados (errores 7/0/0)
Pase completado, 120 bloques defectuosos encontrados (0/0/120 errores)

Estoy adivinando que es "errores durante la lectura / escritura / comparar". ¿Alguien puede iluminarme?

Tomalak
fuente

Respuestas:

46

Tu suposición es correcta.

El código fuente se ve así:

if (v_flag)
    fprintf(stderr,
            _("Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"),
            bb_count, num_read_errors, num_write_errors, num_corruption_errors);

Entonces sus errores de lectura / escritura / corrupción. Y corrupción significa comparación con datos previamente escritos:

if (t_flag) {
    /* test the comparison between all the
       blocks successfully read  */
    int i;
    for (i = 0; i < got; ++i)
        if (memcmp (blkbuf+i*block_size,
            blkbuf+blocks_at_once*block_size,
            block_size))
            bb_count += bb_output(currently_testing + i, CORRUPTION_ERROR);
}
Frostschutz
fuente
Perfecto. Buscando en la fuente lo único que debería haberme ocurrido, pero de alguna manera no fue así. Gracias. :)
Tomalak
Por supuesto, esa es también la razón por la cual no hay mensajes de error del núcleo en el (0/0/120 errors)caso.
Tomalak
Una posible causa de errores de corrupción es que algo más escribió en el disco mientras se badblocksestaba ejecutando, en cuyo caso no sería un error (aparte del error del usuario).
frostschutz
En este caso es un disco sospechoso que estoy usando exclusivamente con badblocks. Ningún otro proceso le escribe. ¿Hay alguna manera de visualizar el archivo de salida con la lista de sectores defectuosos, sin calcular manualmente su posición?
Tomalak
-8

Incorrecto. Si badblocks dice algo que no es "no se encontraron errores", significa:

  • Apague la máquina inmediatamente.
  • Obtenga un disco de reemplazo
  • Ore a $ GOD_OF_BACKUPS, los datos importantes están seguros
  • Haga lo que sea necesario para configurar el nuevo disco y copie los datos del anterior.

Opcionalmente, puede guardar el disco para entretenerse o como pisapapeles.

(Los discos modernos tienen un conjunto de cilindros adicionales para reasignar bloques defectuosos, ya que no hay forma de fabricar discos sin ellos, y los usuarios gritaron un infierno cuando vieron la lista de bloques defectuosos. Si aparecen bloques defectuosos , significa que ese espacio está agotado. Como los modos de falla comunes de los discos rotativos dan un número de bloques defectuosos que aumenta exponencialmente, al ver algunos medios, al disco normalmente le quedan unas pocas horas).

vonbrand
fuente
10
Esa ni siquiera era la pregunta.
Tomalak
1
Nunca se ejecute badblocksen un disco que tenga datos importantes. Si el disco tiene un error, badblockspuede causar daños adicionales incluso en modo de escritura no destructiva, si no puede volver a escribir los datos originales debido al error.
frostschutz
@frostschutz, ¿ -nse supone que la prueba es de solo lectura?
vonbrand
3
No, -nes escritura no destructiva. Entonces escribe, pero restaura los datos originales después de la prueba. Que puede fallar debido a errores. badblocksSolo para leer , creo que no usas ninguna opción.
frostschutz
No es un mal consejo, pero no se ajusta a la pregunta. Podrías haber hecho una respuesta de estilo de preguntas y respuestas.
neverMind9