Come interpretare l'output di badblocks


44

Le pagine man per i badblock non sembrano menzionare in particolare il significato dei tre numeri nell'output:

Passaggio completato, 7 blocchi danneggiati trovati (errori 7/0/0)
Passaggio completato, trovati 120 blocchi danneggiati (errori 0/0/120)

Sto indovinando che è "errori durante la lettura / scrittura / a confronto". Qualcuno può illuminarmi?

Risposte:


46

La tua ipotesi è corretta.

Il codice sorgente è simile al seguente:

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

Quindi i suoi errori di lettura / scrittura / corruzione. E corruzione significa confronto con dati precedentemente scritti:

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

Perfezionare. Cercare nella fonte l'unica cosa che mi sarebbe dovuta venire in mente, ma in qualche modo no. Grazie. :)
Tomalak,

Naturalmente questo è anche il motivo per cui non ci sono messaggi di errore del kernel nel (0/0/120 errors)caso.
Tomalak,

Una possibile causa di errori di corruzione è che qualcos'altro ha scritto sul disco durante l' badblocksesecuzione, nel qual caso non sarebbe affatto un errore (diverso dall'errore dell'utente).
frostschutz,

In questo caso è un disco sospetto che sto usando esclusivamente con i badblock. Nessun altro processo scrive. C'è un modo per visualizzare il file di output con l'elenco dei settori danneggiati, a parte il calcolo manuale della loro posizione?
Tomalak,

-8

Sbagliato. Se badblocks dice qualcosa che non è "nessun errore trovato", significa:

  • Spegnere immediatamente la macchina
  • Ottieni un disco sostitutivo
  • Prega $ GOD_OF_BACKUPS che i dati importanti siano al sicuro
  • Fai tutto il necessario per configurare il nuovo disco e copia i dati da quello vecchio

Opzionalmente è possibile tenere il disco in giro per intrattenimento o come fermacarte.

(I dischi moderni hanno una serie di cilindri in più per rimappatura blocchi danneggiati, in quanto non v'è alcun modo di produrre dischi senza di loro, e gli utenti urlò sanguinosa inferno quando hanno visto l'elenco dei blocchi danneggiati. Se i blocchi danneggiati non si presentano, vuol dire che quello spazio è esaurito. Poiché le comuni modalità di errore dei dischi rotanti forniscono un numero esponenzialmente crescente di blocchi danneggiati, vedere alcuni significa che al disco rimangono in genere poche ore.)


10
Non era nemmeno la domanda.
Tomalak,

1
Non eseguire mai badblockssu un disco su cui sono presenti dati importanti. Se il disco presenta un errore, badblockspuò causare danni aggiuntivi anche in modalità di scrittura non distruttiva, se non è possibile riscrivere i dati originali a causa dell'errore.
frostschutz,

@frostschutz, Il -ntest dovrebbe essere di sola lettura?
vonbrand,

3
No, -nè una scrittura non distruttiva. Quindi scrive, ma ripristina i dati originali dopo il test. Che potrebbe non riuscire a causa di errori. Per sola lettura badblocks, credo che tu non usi alcuna opzione.
frostschutz,

Non è un cattivo consiglio, ma non si adatta alla domanda. Avresti potuto dare una risposta in stile Domande e risposte.
neverMind9
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.