Festplatten sterben irgendwann, das ist bekannt – dumm nur, dass man den Zeitpunkt nicht kennt. Smartmontools weiß mehr: Es entdeckt Fehler frühzeitig und warnt vor Ausfällen.
Zwar weiß man um die begrenzte Lebensdauer von Festplatten, doch überrascht das plötzliche Ableben derselben den Besitzer dennoch meist unvorbereitet und mit unangenehmen Folgen. Clevere Nutzer sehen den großen Crash allerdings unter Umständen voraus: Die freie Software Smartmontools nutzt die in vielen Festplatten verankerten Funktionen zur Selbstanalyse, um im Vorfeld zu warnen, falls eine Harddisk bald das Zeitliche segnet. Es gibt durchaus eine Reihe von zwar unsichtbaren, aber durchaus messbaren Zeichen, die schon früh einen Ausfall andeuten – etwa sich häufende Lesefehler. Zwar fallen diese Analysen nicht absolut zuverlässig aus, und auch nicht alle Fehler lassen sich vorhersagen, aber Smartmontools warnen immerhin vor rund zwei Drittel aller bevorstehenden Ausfälle.
Geben Festplatten plötzlich merkwürdige Geräusche von sich, schadet ein Check sowieso nicht. Durch regelmäßige Prüfungen mit Smartmontools ersparen Sie sich womöglich Stress und kommen den Folgen eines bevorstehenden Ausfalls durch den Einbau einer neuen Platte oder das Erneuern der Sicherheitskopien zuvor. Wir zeigen, wie Smartmontools funktioniert und welche Werte es analysiert.
Wie Smart ist Smart?
Bevor die Analyse beginnt, installieren Sie Smartmontools zunächst über den Paketmanager. Anwender von Ubuntu 8.04 erhalten die Version 5.37, Opensuse-11-Anhänger ziehen sich über YaST Version 5.38 auf den Rechner.
Was fangen Sie konkret mit Smartmontools an? Die Software dient als Frontend für Smart [1], eine in die Firmware nahezu aller aktuellen (S)ATA- und SCSI-Festplatten eingebaute Analysesoftware. Smartmontools untersucht die Platten mit Hilfe von Gesundheitschecks sowie diversen Selbsttests und bereitet die Ergebnisse lesbar auf. Wandern die gemessenen Werte aus dem Normbereich aus, liefert Smartmontools entsprechende Fehlermeldungen und signalisiert so einen potenziellen Ausfall des Geräts.
Die in die (S)ATA- und SCSI-Festplatten eingebauten Selbstdiagnosekräfte integrieren die Festplattenhersteller seit Mitte der 90er Jahre unter dem Namen Smart (Self-Monitoring, Analysis and Reporting Technology) direkt in ihre Geräte. Smart legt die gesammelten Daten in einem Bereich der Festplatte ab, der sich durch die übrigen Daten nicht überschreiben lässt. Allerdings gehen die Hersteller dabei nicht unbedingt nach einem einheitlichen Schema vor: Hardware-Anbieter messen mitunter, was sie für wichtig halten und stellen dabei zum Beispiel Temperatursensoren ungenau ein oder platzieren sie an der falschen Stelle. Google hat Smart über neun Monate und mit 100?000 Platten verschiedenster Hersteller ausführlich getestet [2]. Das Resultat: Die Trefferquote der Technik lag bei 64 Prozent – zwei Drittel aller Ausfälle kann sie also vorhersagen.
Konkret unterscheiden die Hersteller zwischen ausfallrelevanten und informierenden Rohdaten (Tabelle “Ausfallrelevante Smart-Attribute (Auswahl)”). Die gemessenen Werte (Value) zu den Eigenschaften (Attribute) von einzelnen Festplatten ordnen die Hersteller auf Skalen von 0 bis 100 oder 1 bis 253 ein – über die Feinheit bestimmen sie selbst. Auch wenn die absoluten Messwerte voneinander abweichen, ermöglicht dieser Schritt eine gewisse Vergleichbarkeit der Attribute unterschiedlicher Platten.
Ausfallrelevante Smart-Attribute (Auswahl)
| Bezeichnung | Fehler ist möglicher Indikator für |
|---|---|
| Seek Error Rate | Positionierungsproblem der Lese- und Schreibeinheit |
| Raw Read Error Rate | Problem mit der Plattenoberfläche (Lesefehler) |
| Hardware ECC Recovered | Problem mit der Plattenoberfläche (Magnetfelder der Bits überlappen) |
| Throughput Performance | Probleme mit der Laufwerksmechanik (Effizienz der Disk leidet) |
| Spin up Time | Probleme mit Motor oder Plattenlagern (Beschleunigung der Disk dauert zu lange) |
| Spin Retry Count | Probleme mit mechanischem Subsystem (mehrere Anläufe bis sich Disk dreht) |
| Reallocated Sector Count | Zu viele verbrauchte Reservesektoren |
| Current Pending Sector Count | Instabile Sektoren, die auf Remapping warten |
| HDA Temperature | Zu hohe Betriebstemperatur |
Bei neuen Festplatten liegen die Werte für die Attribute meist beim Maximum und sinken dann mit fortschreitendem Alter sukzessive in Richtung Null, aber auch der umgekehrte Fall kommt vor. Erreicht ein ausfallrelevanter Attributwert einen bestimmten Schwellwert (“Threshold”), bewertet Smart das als Problem.
Auch die so genannten Presets (Voreinstellungen) der Hersteller unterscheiden sich mitunter: Bezeichnet Attribut Nummer 9 bei einer Platte die “Seek Error Rate” (Anzahl der Suchfehler des Magnetkopfs), kann es sich bei einer anderen Disk um die bereits erwähnte “Spin up time” handeln. Fehlt die eigene Platte in der Datenbank, kann man sich mit der Typenbezeichnung an die Webseite von Smartmontools wenden.
Get smart
Die Software untersucht erfolgreich SCSI- und (S)ATA-Festplatten. Externe USB-Platten empfangen allerdings SCSI-Kommandos, obwohl es sich fast ausnahmslos um (S)ATA-Platten handelt – hier kann die Software nicht helfen. Mit eSATA-Laufwerken kooperiert Smartmontools hingegen problemlos. Zunächst können Sie überprüfen, was für eine Festplatte überhaupt in Ihrem Rechner steckt. Der Befehl, den Sie mit Root-Rechten eingeben, lautet auf neueren Systemen
# smartctl -i /dev/sda
Dabei sprechen Sie die erste IDE-, (S)ATA- oder SCSI-Platte mit /dev/sda an, die zweite mit /dev/sdb, und so weiter. Ältere Systeme adressieren IDE-Festplatten dagegen noch über /dev/hda (Kasten “Neues aus Festplattenhausen”). Bei SATA- Festplatten hängen Sie noch ein -d ata an den Befehl.
Neues aus Festplattenhausen
Distributionen mit Kerneln ab Version 2.6.17 adressieren Festplatten nur noch über das (S)ATA-Protokoll und die Bibliothek Libata. So können sie Festplatten über individuelle UUIDs ansprechen, was den Programmierern das Leben erleichtert, aber mitunter zu Verwirrungen beim Bootloader führt, wenn dieser noch mit den alten Bezeichnungen operiert.
Die Ausgabe des Befehls zeigt Abbildung 1. Sie verrät, welchen ATA-Standard die eigene Festplatte verwendet und ob sie in der Smartmontools-Datenbank steht und ob Smart aktiv ist. Beim getesteten Modell handelt es sich um eine Platte von Seagate (ST9120822AS) mit 120 GByte Kapazität und dem ATA-Standard 7. Sie unterstützt Smart (SMART capatibility), das auch aktiv ist (Enabled).

Abbildung 1: Der Befehl zeigt, ob die Smart-Funktionen für die Festplatte existieren und laufen und ob die geprüfte Platte in der Datenbank von Smartmontools steht.
Trifft der letzte Punkt nicht zu, schalten Sie Smart auf einfache Weise ein. Dazu geben Sie, wieder mit Root-Rechten, folgenden Befehl ein:
# smartctl -s on /dev/sda
Sofern sich die Festplatte in der Smartmontools-Datenbank findet, können Sie sich noch ihre Presets ansehen. Beispielsweise legt die Festplatte Maxtor 4D080H4 als Attribut 9 den Wert für “Power-on time in minutes” ab: Der zählt, wie viele Minuten eine Festplatte seit ihrem Start im Power-on-Modus verbracht hat. Stößt Smartmontools auf bekannte Festplatten, übernimmt es automatisch deren Presets. Die Eingabe von smartctl -P show listet die vorhandenen Voreinstellungen auch auf.
Gesundheit!
Als nächstes steht üblicherweise ein kurzer Gesundheitscheck auf dem Plan – initiiert durch den Befehl
# smartctl -Hc /dev/sda
Er befragt die Festplatte nach ihrem Gesundheitsstatus und zeigt zugleich im Abschnitt General SMART Values, über welche Fähigkeiten sie verfügt (Abbildung 2). Basierend auf den zuletzt vorgenommenen Tests gibt das Tool als Status ganz oben PASSED oder FAILED zurück. Im zweiten Fall ist die Platte bereits angezählt oder wird voraussichtlich innerhalb der nächsten 24 Stunden das Zeitliche segnen. In diesem Fall ist ein Backup der Daten sicherlich angebracht.

Abbildung 2: Gesundheit! Ein schneller Gesundheitscheck zeigt, ob es der Platte momentan gut geht. Der Test wertet die von Smart gesammelten Daten aus.
Diese beiden Parameter lassen sich auch recht gut per Skript auswerten. So können Sie bei jedem Systemstart einen Gesundheitscheck starten und im Falle einer FAILED-Meldung Alarm schlagen, wie es das simple Skript in Listing 1 tut.
#!/bin/bash smartctl -Hc /dev/sda | grep FAILED if [ $? -ne 0 ]; then echo "### FESTPLATTE OK! ###"; else echo "### FESTPLATTE KRANK, CHECK NÖTIG! ###"; fi
Ich glaub, es hakt…
Tritt der Ernstfall ein, können Sie nach dem Sichern der Daten weitere Nachforschungen anstellen, um herauszufinden, um welche Funktionen der Festplatte es schlecht steht:
# smartctl -A /dev/sda
Smartmontools präsentiert nun verschiedene Attribute der Festplatte, die es identifizieren kann (Abbildung 3). Verstehen Sie bei der Sichtung der verschiedenen Parameter nur Bahnhof, helfen die Tabelle “Ausfallrelevante Smart-Attribute (Auswahl)” sowie der deutsche [1] und englische [3] Wikipedia-Eintrag zu Smart. Die freie Enzyklopädie zeigt in detaillierten Tabellen, was die einzelnen Parameter bedeuten. Insbesondere der englischsprachige Eintrag listet viele bekannte Attribute und ihre Bedeutung auf und unterscheidet durch farbige Markierungen die ausfallrelevanten von den informierenden Parametern. Eine weitere Liste mit Attributen bietet auch die Webseite das Smartmontools-Projekts an [4].

Abbildung 3: Die Tabelle zeigt, ob sich die einzelnen Festplattenattribute noch im grünen Bereich befinden oder ob Handlungsbedarf besteht.
Unter ATTRIBUTE NAME steht der jeweilige Name des Attributs, unter VALUE der aktuelle Wert, den es augenblicklich besitzt. Die Spalte WORST zeigt rechts daneben den schlechtesten Wert an, den Smart für das Attribut bisher gemessen hat. Eine Spalte weiter (TRESH) stehen die Grenzwerte: Sie zeigen Ihnen, ab wann Smart den Zustand eines Attributs als bedenklich beurteilt.
Schauen Sie auf Abbildung 3: Das Attribut Seek_Error_Rate gehört zu den ausfallrelevanten Parametern. Unter VALUE und WORST stehen jeweils 073 und 060, der Grenzwert beträgt aber 030. In diesem Bereich gibt es also (noch) keine Probleme, der schlechteste gemessene Wert liegt bei 60.
Online, offline, kurz und lang
Auch die Spalte UPDATED enthält wissenswerte Informationen. Bei Werten, die Smart permanent protokolliert, steht dort Always. Diese misst Smart “online”, das heißt, während die Platte arbeitet, ohne Performance-Einbußen. Werte, neben denen Offline steht, zeichnet Smart nur auf, wenn die Platte gerade nicht in Betrieb ist.
Neben diesen Gesundheitschecks unterziehen Sie die Platte auch kurzen und längeren Tests, die direkt die mechanischen Teile der Hardware untersuchen und den Datendurchsatz messen. Wie lange diese Tests dauern, erfahren Sie, wenn Sie als Root smartctl -c /dev/sda eingeben: Die von Smartmontools kalkulierten Zeiten stehen am Ende der Ausgabe.
Um einen Kurztest zu initiieren, geben Sie smartctl -t short /dev/sda ein. Smart überprüft dann die Festplatte und notiert gefundene Fehler in einer Logdatei. Der Befehl für den langen Test lautet smartctl -t long /dev/sda, er zieht sich unter Umständen über mehrere Stunden hin. Das hält Sie aber nicht von der Arbeit ab, denn Smart testet ja ohne Performance-Einbußen. Um abschließend die Ergebnisse der Tests in Erfahrung zu bringen, geben Sie
# smartctl -l selftest /dev/sda
ein. Der Befehl führt detailliert sämtliche gefundenen Fehler auf (Abbildung 4), sofern es denn welche gibt.

-l selftest sorgt dafür, dass die Smartmontools das Fehlerlogbuch des letzten Selbsttests auswerten.” width=”300″ height=”140″ />
Abbildung 4: Die Option-l selftest sorgt dafür, dass die Smartmontools das Fehlerlogbuch des letzten Selbsttests auswerten.Fehlersuche
Die im Lauf der von Smart regelmäßig gestarteten Routinechecks gefundenen Fehler präsentiert der Befehl smartctl -l error /dev/sda. Er zeigt detailliert, welche Kommandos den Fehler verursacht haben und welche Register betroffen sind. In den meisten Fällen werden Ihnen diese Informationen wenig sagen; zudem handelt es sich hier meist um harmlose Fehler im Betrieb, die keine ausfallrelevanten Attribute betreffen. Der Befehl:
# smartctl -a /dev/sda | grep "Error"
listet in kompakter Form, wann die Smartmontools auf welchen Fehler gestoßen sind (Abbildung 5). Der Parameter -a für “all” listet alle verfügbaren Werte für ein Gerät auf, inklusive der Fehlerlogs. Über Grep filtern Sie die Error-Meldungen heraus.

Abbildung 5: Smart zeigt auch Fehler an, die nicht unbedingt kritisch für die Gesundheit der Festplatte sind.
Glossar
-
Attribute
-
Einige Funktionen bringen fast alle Festplatten mit und sie lassen sich messen, etwa die “Spin up time”: Sie zeigt an, wie lange es dauert, bis eine Disk mit voller Geschwindigkeit rotiert.
[1] Deutscher Wikipedia-Eintrag zu Smart: http://de.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology
[2] Google testet Smart: http://labs.google.com/papers/disk_failures.pdf
[3] Englischsprachiger Wiki-Eintrag zu Smart: http://en.wikipedia.org/wiki/Self-Monitoring,_Analysis,_and_Reporting_Technology
[4] Projektseite der Smartmontools: http://smartlinux.sourceforge.net/smart/attributes.php





