Como interpretar a saída de badblocks

44

As páginas de manual para badblocks não parecem mencionar o que os três números na saída significam em particular:

Passe concluído, 7 blocos inválidos encontrados (erros 7/0/0)
Passe concluído, 120 blocos inválidos encontrados (erros 0/0/120)

Eu estou supondo que é "Erros ao ler / escrever / comparar". Alguém pode me esclarecer?

Tomalak
fonte

Respostas:

46

Seu palpite está correto.

O código fonte fica assim:

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);

Portanto, seus erros de leitura / gravação / corrupção. E corrupção significa comparação com dados escritos anteriormente:

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
fonte
Perfeito. Procurando na fonte a única coisa que deveria ter me ocorrido, mas de alguma forma não ocorreu. Obrigado. :)
Tomalak
Obviamente, essa também é a razão pela qual não há mensagens de erro do kernel no (0/0/120 errors)caso.
21713 Tomalak
Uma possível causa para erros de corrupção é que algo mais foi gravado no disco enquanto badblocksestava em execução; nesse caso, não seria um erro (exceto erro do usuário).
Frostschutz
Nesse caso, é um disco suspeito que estou usando exclusivamente com badblocks. Nenhum outro processo grava nele. Existe uma maneira de visualizar o arquivo de saída com a lista de setores defeituosos, além de calcular manualmente sua posição?
Tomalak
-8

Errado. Se badblocks diz algo que não é "nenhum erro encontrado", significa:

  • Desligue a máquina imediatamente
  • Obter um disco de substituição
  • Ore para que dados importantes de $ GOD_OF_BACKUPS estejam seguros
  • Faça o que for necessário para configurar o novo disco e copie os dados do antigo

Opcionalmente, você pode manter o disco ao redor para entretenimento ou como peso de papel.

(Discos modernos têm um conjunto de cilindros extras para remapeamento blocos defeituosos, como não há nenhuma maneira de fabricar discos sem eles, e os usuários gritou diabos quando viram a lista de bloqueio ruim. Se blocos ruins não aparecer, isso significa que esse espaço Como os modos de falha comuns dos discos rotativos fornecem um número exponencialmente crescente de blocos defeituosos, ver alguns meios de que o disco normalmente tem algumas horas restantes.)

vonbrand
fonte
10
Essa nem era a questão.
Tomalak
1
Nunca execute badblocksem um disco com dados importantes. Se o disco apresentar um erro, badblockspoderá causar danos extras, mesmo no modo de gravação não destrutivo, se não puder gravar os dados originais novamente devido ao erro.
Frostschutz
@frostschutz, O -nteste deve ser somente leitura?
21813 vonbrand
3
Não, -né gravação não destrutiva. Por isso, escreve, mas restaura os dados originais após o teste. O que pode falhar devido a erros. Apenas para leitura badblocks, acredito que você não use nenhuma opção.
Frostschutz
Não é um conselho ruim, mas não se encaixa na pergunta. Você poderia ter feito uma resposta no estilo de perguntas e respostas.
neverMind9 17/03