Wie wird die Ausgabe von Badblocks interpretiert?

44

Die Manpages für Badblocks scheinen nicht zu erwähnen, was die drei Zahlen in der Ausgabe insbesondere bedeuten:

Pass abgeschlossen, 7 fehlerhafte Blöcke gefunden (7/0/0 Fehler)
Pass abgeschlossen, 120 fehlerhafte Blöcke gefunden (0/0/120 Fehler)

Ich vermute, es ist "Fehler beim Lesen / Schreiben / Vergleichen". Kann mich jemand aufklären?

Tomalak
quelle

Antworten:

46

Ihre Vermutung ist richtig.

Der Quellcode sieht folgendermaßen aus:

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

Also seine Lese- / Schreib- / Korruptionsfehler. Und Korruption bedeutet Vergleich mit zuvor geschriebenen Daten:

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
quelle
Perfekt. Es in der Quelle nachzuschlagen, das Einzige, was mir hätte einfallen sollen, aber irgendwie tat es das nicht. Vielen Dank. :)
Tomalak
Das ist natürlich auch der Grund, warum es in dem (0/0/120 errors)Fall keine Kernelfehlermeldungen gibt .
Tomalak
Eine mögliche Ursache für Beschädigungsfehler ist, dass während badblocksder Ausführung etwas anderes auf die Festplatte geschrieben wurde. In diesem Fall handelt es sich überhaupt nicht um einen Fehler (außer um einen Benutzerfehler).
Frostschutz
In diesem Fall handelt es sich um eine verdächtige Festplatte, die ich ausschließlich mit Badblocks verwende. Kein anderer Prozess schreibt darauf. Gibt es eine Möglichkeit, die Ausgabedatei mit der Liste der fehlerhaften Sektoren zu visualisieren, ohne ihre Position manuell zu berechnen?
Tomalak
-8

Falsch. Wenn badblocks irgendetwas sagt , das nicht "keine Fehler gefunden" ist, bedeutet das:

  • Maschine sofort ausschalten
  • Besorgen Sie sich eine Ersatzdiskette
  • Bete zu $ ​​GOD_OF_BACKUPS, wichtige Daten sind sicher
  • Führen Sie alle erforderlichen Schritte aus, um die neue Festplatte einzurichten, und kopieren Sie die Daten von der alten

Sie können die Disk wahlweise zur Unterhaltung oder als Briefbeschwerer aufbewahren.

(Moderne Festplatten verfügen über einen Satz zusätzlicher Zylinder für die Neuzuordnung von fehlerhaften Blöcken, da es keine Möglichkeit gibt, Festplatten ohne sie herzustellen. Die Benutzer haben die Liste der fehlerhaften Blöcke zum Teufel geschrien. Wenn fehlerhafte Blöcke angezeigt werden, bedeutet dies, dass dieser Bereich leer ist verbraucht ist. Da die üblichen Fehlermodi rotierender Festplatten eine exponentiell zunehmende Anzahl fehlerhafter Blöcke ergeben, bedeutet dies, dass die Festplatte in der Regel noch einige Stunden Zeit hat.)

vonbrand
quelle
10
Das war nicht einmal die Frage.
Tomalak
1
Führen Sie niemals badblockseinen Datenträger aus, auf dem sich wichtige Daten befinden. Wenn die Festplatte einen Fehler aufweist, badblockskann dies selbst im zerstörungsfreien Schreibmodus zu zusätzlichen Schäden führen, wenn die ursprünglichen Daten aufgrund des Fehlers nicht zurückgeschrieben werden können.
Frostschutz
@frostschutz, Der -nTest soll nur lesbar sein?
Vonbrand
3
Nein, -nist nicht destruktiv zu schreiben. Es schreibt also, stellt aber nach dem Testen die ursprünglichen Daten wieder her. Was an Fehlern scheitern kann. badblocksIch glaube nur , dass Sie überhaupt keine Option verwenden.
Frostschutz
Keine schlechte Beratung, passt aber nicht zur Frage. Sie hätten eine Frage-Antwort daraus machen können.
NeverMind9