Zum Hauptinhalt springen
hard-driveINFO

smartctl und fehlerhafte Sektoren: was es wirklich verrät, und die 23 %, die es übersieht

smartctl meldet fehlerhafte Sektoren, es repariert sie nie. Welche SMART-Attribute einen Ausfall tatsächlich vorhersagen, wie du sie liest, und warum Backblaze bei 23,3 % der ausgefallenen Platten überhaupt keine Warnung fand.

Von Eric Gerard · Redakteur · Save My Disk6 Min. LesezeitPhoto via Pexels

Suche nach diesem Thema, und Google schlägt dir "smartctl fix bad sectors" vor. Dieser Vorschlag beschreibt etwas, das das Werkzeug gar nicht tut, und genau in der Lücke zwischen dem, was Leute erwarten, und dem, was SMART tatsächlich liefert, gehen Daten verloren.

smartctl meldet, es repariert nicht

Die Dokumentation lässt keinen Interpretationsspielraum: smartctl "does not calculate any of the Attribute values, thresholds, or types, it merely reports them from the SMART data on the device." (es berechnet keine der Attributwerte, Schwellenwerte oder Typen, sondern liest sie lediglich aus den SMART-Daten auf dem Gerät aus)

Es ist ein Werkzeug zur Überwachung und Berichterstattung. Es gibt keinen Schalter, der einen Sektor repariert, denn Reparieren gehört nicht zu dem, was ein Diagnosewerkzeug tut. Wenn eine Platte einen fehlerhaften Sektor neu zuweist, erledigt das die Firmware, still und leise, mit einem Ersatzsektor aus ihrem Reservepool.

Das hat praktische Folgen. Jedes Werkzeug, das damit wirbt, fehlerhafte Sektoren zu "reparieren", tut eines von zwei Dingen: Es überschreibt sie, was den früheren Inhalt endgültig zerstört, oder es zwingt die Firmware zur Neuzuweisung. Keines von beiden holt deine Datei zurück. Wenn die Daten noch wichtig sind, ist Schreiben auf die Platte das Letzte, was du willst.

Die fünf Attribute, die sich zu lesen lohnen

Backblaze betreibt einen der größten veröffentlichten Datensätze zu Plattenausfällen und überwacht fünf SMART-Attribute zur Vorhersage:

IDAttribut
5Reallocated Sectors Count
187Reported Uncorrectable Errors
188Command Timeout
197Current Pending Sector Count
198Uncorrectable Sector Count

Ihr veröffentlichter Vergleich: Bei 76,7 % der ausgefallenen Platten lag mindestens einer dieser Werte über null, gegenüber 4,2 % der laufenden Platten. Dieser Abstand ist es, der sie zum Nachsehen wert macht.

Die beiden, die am häufigsten falsch gelesen werden, sind 197 und 5, und der Unterschied zwischen ihnen lohnt das Verständnis.

197, Current Pending Sector Count, ist die vorläufige Liste. Das sind Sektoren, die die Platte nur mit Mühe lesen konnte und die sie auf Bewährung gesetzt hat. Sie sind noch nicht verurteilt. Gelingt ein späterer Lesevorgang, kann der Zähler wieder sinken.

5, Reallocated Sectors Count, ist der dauerhafte Eintrag. Das sind Sektoren, die die Platte aufgegeben und gegen Ersatzsektoren getauscht hat. Diese Zahl steigt nur.

Eine 197 über null ist also die frühere Warnung und die, bei der sich Handeln lohnt, denn sie sagt, dass die Platte gerade Mühe hat, etwas zu lesen. Dieses Etwas kann durchaus deine Datei sein.

Eine Makroaufnahme in eine geöffnete Festplatte hinein, zu sehen sind die spiegelnde Magnetscheibe und der Aktuatorarm mit seinen Schreib- und Leseköpfen.
Eine Makroaufnahme in eine geöffnete Festplatte hinein, zu sehen sind die spiegelnde Magnetscheibe und der Aktuatorarm mit seinen Schreib- und Leseköpfen.

Wie du die Ausgabe liest, ohne sie misszuverstehen

Drei Befehle decken das Praktische ab:

smartctl -H /dev/sda      # overall health status
smartctl -A /dev/sda      # the attribute table
smartctl -l selftest /dev/sda   # results of past self-tests

Bei -H ist die dokumentierte Bedeutung eines Fehlschlags konkret und dringlich: "either that the device has already failed, or that it is predicting its own failure within the next 24 hours." (entweder ist das Gerät bereits ausgefallen, oder es sagt seinen eigenen Ausfall innerhalb der nächsten 24 Stunden voraus) Vierundzwanzig Stunden sind kein Wartungsfenster. Es heißt: Kopiere jetzt, was dir wichtig ist.

Bei -A trägt jedes Attribut einen Raw-Wert (Rohwert), einen Normalized-Wert (normalisierter Wert) und einen Threshold (Schwellenwert). Die dokumentierte Regel lautet: Ist der normalisierte Wert kleiner oder gleich dem Schwellenwert, gilt das Attribut als fehlgeschlagen. Leute lesen regelmäßig die Raw-Spalte und geraten in Panik, oder sie lesen sie und beruhigen sich, ohne sie gegen den Threshold zu prüfen. Der Raw-Wert allein sagt dir nicht, ob ein Attribut fehlgeschlagen ist.

Um die Tests selbst zu starten:

smartctl -t short /dev/sda    # usually under ten minutes
smartctl -t long /dev/sda     # tens of minutes, more thorough

Der kurze Test prüft die elektrische und mechanische Leistung zusammen mit der Leseleistung. Der erweiterte Test ist die längere, gründlichere Fassung. In beiden Fällen startet der Befehl den Test und kehrt zurück; den Ausgang liest du danach mit -l selftest, das Typ und Endstatus jedes der jüngsten Selbsttests anzeigt.

Die Zahl, die niemand zitiert: 23,3 %

Hier kommt der Teil, der ändern sollte, wie du auf einen sauberen Bericht reagierst.

Nach Backblaze' eigenen Zahlen gilt: Wenn 76,7 % der ausgefallenen Platten eine Warnung zeigten, dann zeigten 23,3 % der ausgefallenen Platten überhaupt keine. Fast jeder vierte Ausfall kommt daher, während SMART nichts Auffälliges meldet.

SMART ist eine nützliche Frühwarnung, die etwa ein Viertel der Zeit schweigt. Wenn es spricht, ist es ein Beleg für ein Problem, und wenn es schweigt, ist es kein Beleg für Gesundheit. Ein bestandener Test heißt, dass bisher nichts Schlechtes erkannt wurde. Er heißt nicht, dass die Platte in Ordnung ist, und er ersetzt keine zweite Kopie.

Was zu tun ist, wenn die Zahlen schlecht sind

Die Reihenfolge zählt, und den ersten Schritt überspringen die Leute gern.

Höre auf, auf die Platte zu schreiben. Jeder Schreibvorgang ist eine Gelegenheit, etwas Rettbares zu überschreiben, und zusätzliche Arbeit für eine Mechanik, die ohnehin schon kämpft.

Erstelle ein Image, bevor du untersuchst. Arbeite von einer Kopie auf Sektorebene, nicht von der defekten Platte. Wiederholte Leseversuche auf einer Platte mit ausstehenden Sektoren belasten genau die Stelle, die bereits schwach ist, und jeder erneute Versuch ist eine Chance, dass aus einem grenzwertigen Sektor ein unlesbarer wird. Den Ablauf behandeln wir in eine defekte Festplatte mit ddrescue klonen.

Rette dann aus dem Image. Sobald du eine Kopie hast, kannst du so oft wiederholen, wie du möchtest, ohne das Original zu gefährden.

Redaktionelle Empfehlung
4.5 / 5

Rettung aus einem Image oder von einer noch lesbaren Platte

Gilt, sobald die Platte stabil genug zum Lesen ist oder du eine Kopie erstellt hast. Es repariert keine fehlerhaften Sektoren, und keine Software kann das, denn die Neuzuweisung übernimmt die Firmware der Platte.

Gegründet 200430 Tage GarantieKostenlose 2-GB-Version
Das Angebot ansehen

Die Kurzfassung

smartctl sagt dir, was die Platte über sich selbst meldet. Es repariert nie etwas, also behandle "fix bad sectors" als Beschreibung von etwas anderem. Lies Attribut 197 als Frühwarnung und 5 als dauerhaften Eintrag, und vergleiche normalisierte Werte mit den Schwellenwerten, statt allein die Rohzahlen zu lesen. Ein fehlgeschlagenes -H gibt dir einen dokumentierten Horizont von 24 Stunden. Und ein sauberer Bericht ist kein Gesundheitszeugnis, denn rund jeder vierte Ausfall tauchte in diesen Statistiken überhaupt nicht auf.

Das Verhalten der Befehle und die Bedeutung der Attribute stammen aus der smartctl-Dokumentation; die Zahlen zur Ausfallkorrelation (76,7 %, 4,2 %, 23,3 %) sind Backblaze' veröffentlichte Statistiken aus der eigenen Flotte. Die Zahlen beschreiben deren Plattenbestand und sind keine Vorhersage für eine einzelne Platte. Kommerzielle Links tragen das Attribut rel="sponsored nofollow"; eine Affiliate-Provision kann anfallen, ohne dass für dich zusätzliche Kosten entstehen.

Redaktionelle Empfehlung
4.5 / 5

Stelle die Daten deiner Festplatte wieder her → EaseUS

Kostenloser Scan · gelöschte, formatierte & verlorene Dateien · Windows & Mac

Gegründet 200430 Tage GarantieKostenlose 2-GB-Version
Das Angebot ansehen

Häufig gestellte Fragen

Kann smartctl fehlerhafte Sektoren reparieren?

Nein. Die smartctl-Dokumentation sagt ausdrücklich, dass das Werkzeug keine der Attributwerte oder Schwellenwerte berechnet, sondern sie lediglich aus den SMART-Daten auf dem Gerät ausliest. Es ist ein Werkzeug zur Überwachung und Berichterstattung. Nichts daran schreibt auf deine Daten oder repariert einen Sektor. Die Neuzuweisung erledigt die Firmware der Platte selbst, nicht smartctl, und ein Werkzeug, das behauptet, fehlerhafte Sektoren zu reparieren, überschreibt sie entweder, was den vorhandenen Inhalt zerstört, oder es beschreibt falsch, was es tut.

Welche SMART-Attribute sind wirklich wichtig?

Backblaze überwacht fünf davon zur Ausfallvorhersage: SMART 5 Reallocated Sectors Count, 187 Reported Uncorrectable Errors, 188 Command Timeout, 197 Current Pending Sector Count und 198 Uncorrectable Sector Count. Ihre veröffentlichten Zahlen zeigen, dass bei 76,7 % der ausgefallenen Platten mindestens einer dieser Werte über null lag, gegenüber 4,2 % der laufenden Platten.

Was bedeutet ein fehlgeschlagener Gesundheitsstatus von smartctl -H?

Die Dokumentation hält fest: Meldet das Gerät einen fehlerhaften Gesundheitsstatus, bedeutet das entweder, dass das Gerät bereits ausgefallen ist, oder dass es seinen eigenen Ausfall innerhalb der nächsten 24 Stunden vorhersagt. Das ist ein schmales Zeitfenster. Es ist ein Grund, die Platte sofort nicht mehr zu benutzen und das Wichtige herunterzukopieren, und kein Grund, eine Wartung fürs Wochenende einzuplanen.

Meine Platte besteht den SMART-Test. Sind meine Daten sicher?

Nicht zwangsläufig, und das ist die Zahl, die am meisten zählt. Backblaze berichtete, dass 23,3 % der ausgefallenen Platten über diese fünf SMART-Werte keinerlei Warnung zeigten. Fast jeder vierte Ausfall kommt mit einem sauberen Bericht daher. Ein bestandener SMART-Test sagt dir nur, dass bisher nichts Schlechtes erkannt wurde, was nicht dasselbe ist wie eine gesunde Platte.

Was ist der Unterschied zwischen smartctl -t short und -t long?

Der kurze Selbsttest läuft üblicherweise in unter zehn Minuten und prüft die elektrische und mechanische Leistung sowie die Leseleistung der Platte. Der erweiterte Test dauert Dutzende Minuten und ist eine längere, gründlichere Fassung desselben Vorgangs. Lies die Ergebnisse danach im Selbsttest-Protokoll, statt anzunehmen, der Befehl, der den Test gestartet hat, habe dessen Ausgang schon gemeldet.