Diagnose von Plattenproblemen
Festplatten halten nicht ewig. Jede Festplatte wird irgendwann einmal ausfallen, was im schlimmsten Fall den Totalverlust sämtlicher darauf enthaltener Daten bedeutet.
DAS BEDEUTET:
Die Frage ist nicht, ob Ihre Festplatte jetzt im Moment noch einwandfrei funktioniert. Die Frage ist, was Sie tun werden, wenn Ihre Festplatte sich für immer verabschiedet (und die Chancen dafür sind relativ hoch).
Haben Sie ein Backup Ihrer persönlichen Daten, wie z.B. Fotos, Schriftverkehr, Source Code, sonstige Arbeitsergebnisse? Befindet sich das Backup auf CD-ROM, DVD oder einer externen Festplatte?
Wenn nicht, fertigen Sie noch heute ein Backup an. Bewahren Sie das Backup in einem anderen Raum auf; möglichst in einem anderen Gebäude. Kaufen Sie sich eine ausreichend große externe Festplatte, die ausschließlich für Backup-Zwecke reserviert ist.
Die häufigste Fehlerursache scheint mir ein Schreib-/Lesefehler eines Sektors oder mehrerer aufeinanderfolgender Sektoren zu sein. Mechanische Probleme, wie etwa dass sich der Schreib-/Lesekopf nicht mehr bewegt, oder dass die Platte überhaupt nicht mehr anläuft, sind dagegen eher selten.
Diese Schreib-/Lesefehler bleiben oft unbemerkt. Bei den heutigen Plattenkapazitäten ist es gut möglich, dass der defekte Sektor in einer selten genutzten Datei zu liegen kommt. Erst wenn man wieder auf die Datei zugreifen will, erfährt man von dem Problem. Leider verschlimmern sich solche Probleme aber im Laufe der Zeit. Erst ist es nur ein Sektor, dann mehrere. Irgendwann ist ein Sektor in der Directorystruktur betroffen, dann kann es passieren, dass man ganze Verzeichnisse verliert, weil das Betriebssystem die Verzeichnisse nicht mehr wiederfindet (obwohl die Dateien selbst noch intakt sind).
Deswegen sollte man seine Festplatten in gewissen Abständen überprüfen. Der einfachste Weg ist, den in jede moderne Festblatte eingebauten SMART (Self-Monitoring Analysis and Reporting Technology) Selbsttest auszuführen, oder wenigstens die SMART Statusinformationen abzufragen. Unter Linux wurden hierzu die "S.M.A.R.T. Monitoring Tools", die es übrigens auch in einer Windows Version gibt.
Bei manchen USB- oder FireWire Platten kann man leider nicht auf die SMART Statusinformationen zugreifen. Die entsprechenden Befehle werden nicht durch den USB- bzw. FireWire-Controller weitergereicht. In diesem Fall muss man die Festplatte aus dem Gehäuse ausbauen und direkt an einen PC anschließen.
S.M.A.R.T. Monitoring Tools installieren
Die S.M.A.R.T. Monitoring Tools stehen in einer Windows- und Linux-Version zur Verfügung. Für die Windows-Version gibt es einen Installer, die Linux-Version ist in praktisch jeder Distribution enthalten und kann z.B. unter Debian (auch Ubuntu oder Knoppix) mit
apt-get install smartmontools
installiert werden. Die SmartMonTools Homepage enthält zahlreiche weitere nützliche Informationen zum Thema.
Wie man auf einem Linux Server die S.M.A.R.T. Monitoring Tools so installiert, dass der Zustand der Platten periodisch überwacht wird und der Administrator eine Email bei Problemen bekommt, ist im Artikel "Festplatten mit SMART überwachen" beschrieben.
Die wichtigsten smartctl Kommandos
smartctl wird von der Linux-Konsole bzw. dem Windows DOS Fenster wie fogt aufgerufen:
# IDE Platte: smartctl -a /dev/hda # SATA Platte smartctl -a /dev/sda # SATA Platte an älterem PC smartctl -d ata -a /dev/sda # unter Windows: smartctl -a hda
Hier eine Liste der wichtigsten Optionen. Für weitere Informationen siehe die smartctl man page oder SmartMonTools Homepage.
Option | Beschreibung | Weitere Informationen |
---|---|---|
-h | Help | Online Hilfe |
-s on | SMART aktivieren/deaktivieren | SMART Funktionen aktivieren, sonst funktionieren die weiteren Kommandos nicht. |
-d ata | device type | Unter Linux werden SATA Platten wie SCSI Platten angesprochen. Falls smartctl die Platte nicht auf Anhieb erkennt, explizit den Typ angeben (ata, scsi, 3ware, N) |
-d megaraid,[id] | device type | Platte ist an einen RAID-Controller (hier: MegaRAID/LSI/Avago) angeschlossen |
-t short | Run Test | Kurzen (1 - 2 Minuten) Selbsttest ausführen. |
-t long | Run Test | Langen (viele Stunden) Selbsttest ausführen.
|
-C | Do test in captive mode | Zusatzoption für -t: alle Zugriffe auf die Festplatte werden für die Dauer des laufenden Tests gesperrt. |
-a | Alle SMART Informationen | Führt alle folgenden Statusabfragen auf einmal aus. |
-i, --info | Informationen über die Festplatte | === START OF INFORMATION SECTION === Model Family: SAMSUNG SpinPoint P120 series Device Model: SAMSUNG SP2504C Serial Number: xxxxxxxxxxxxxx Firmware Version: VT100-41 User Capacity: 250.059.350.016 bytes Device is: In smartctl database [for details use: -P show] ATA Version is: 7 ATA Standard is: ATA/ATAPI-7 T13 1532D revision 4a Local Time is: Sun Sep 09 11:50:06 2007 WN SMART support is: Available - device has SMART capability. Enabled status cached by OS, trying SMART RETURN STATUS cmd. SMART support is: Enabled Einige allgemeine Festplatteninformationen. Nützlich ist die Seriennummer, die man immer braucht, wenn man die Platte zum Hersteller schickt. |
-H | Health Status | === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED Der Health Status zeigt an, ob der Self-Test der Festplatte erfolgreich war oder fehlgeschlagen ist. Aber Achtung: Auch wenn hier "PASSED" steht, heißt das nicht unbedingt, dass die Festplatte einwandfrei ist. Sie kann durchaus nicht mehr lesbare Sektoren enthalten - wie dieses Exemplar hier. Falls der Self-Test "FAILED!" ergibt, dann sollte man schleunigst alle Daten retten und die Platte austauschen. |
-c | device SMART capabilities | General SMART Values: Offline data collection status: (0x02) Offline data collection activity was completed without error. Auto Offline Data Collection: Disabled. Self-test execution status: ( 121) The previous self-test completed having the read element of the test failed. Total time to complete Offline data collection: (4960) seconds. Offline data collection capabilities: (0x5b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. No Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 1) minutes. Extended self-test routine recommended polling time: ( 82) minutes. Diverse Angaben über die SMART Funktionen dieser Festplatte. Enthält auch die ungefähre Dauer der Selbsttests. |
-A | device SMART vendor-specific Attributes and values | SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 100 100 051 Pre-fail Always - 5 3 Spin_Up_Time 0x0007 100 100 025 Pre-fail Always - 6208 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 808 5 Reallocated_Sector_Ct 0x0033 098 098 010 Pre-fail Always - 25 7 Seek_Error_Rate 0x000f 253 253 051 Pre-fail Always - 0 8 Seek_Time_Performance 0x0025 253 253 015 Pre-fail Offline - 0 9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 3108 10 Spin_Retry_Count 0x0033 253 253 051 Pre-fail Always - 0 11 Calibration_Retry_Count 0x0012 253 253 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 390 187 Unknown_Attribute 0x0032 001 001 000 Old_age Always - 343 190 Temperature_Celsius 0x0022 124 100 000 Old_age Always - 38 194 Temperature_Celsius 0x0022 124 100 000 Old_age Always - 38 195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age Always - 16533269 196 Reallocated_Event_Count 0x0032 098 098 000 Old_age Always - 25 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 1 198 Offline_Uncorrectable 0x0030 253 253 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x000a 100 100 000 Old_age Always - 0 201 Soft_Read_Error_Rate 0x000a 100 100 000 Old_age Always - 0 202 TA_Increase_Count 0x0032 100 100 000 Old_age Always - 5 Diese Tabelle enthält zahlreiche wichtige Informationen zum aktuellen Zustand der Platte. Weiter unten im Text dazu mehr. |
-l error | device log | Error 3745 occurred at disk power-on lifetime: 3067 hours (127 days + 19 hours) When the command that caused the error occurred, the device was in an unknown state. After command completion occurred, registers were: ER ST SC SN CL CH DH -- -- -- -- -- -- -- 04 51 05 01 aa 00 a0 Error: ABRT Commands leading to the command that caused the error were: CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name -- -- -- -- -- -- -- -- ---------------- -------------------- a1 00 05 01 aa 00 a0 00 00:03:27.792 IDENTIFY PACKET DEVICE Dies kann auf eine beschädigte Festplatte hinweisen, muss aber nicht. Solche Fehler können auch durch Probleme mit der Stromversorgung, Stöße während des Schreib-/Lesevorgangs (z.B. bei Notebooks) verursacht werden. Vorsichtshalber sollte man jedoch einen Selbsttest starten. |
-l selftest | device log | SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Extended offline Completed: read failure 90% 2891 6344628 # 2 Short offline Completed: read failure 90% 2891 6344628 Jede SMART Festplatte kann Selbsttests ausführen. Dieser Abschnitt enthält die Ergebnisse der letzten Tests. In diesem Beispiel sind sowohl der kurze als auch der lange Selbsttest fehlgeschlagen. Die Festplatte ist defekt und ein Garantiefall. Zusätzlich wird noch der Zeitpunkt des Tests angegeben sowie die logische Blockadresse des fehlerhaften Blocks. |
-l selective | device log | SMART Selective Self-Test Log Data Structure Revision Number (0) should be 1 SMART Selective self-test log data structure revision number 0 Warning: ATA Specification requires selective self-test log data structure revision number = 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testing Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay. Falls man nur bestimmte Bereiche der Platte getestet hat, stehen hier die entsprechenden Resultate. |
Wichtige SMART Attribute
Man sollte sich zunächst die folgenden Einträge ansehen:
SMART Information | Bedeutung |
---|---|
SMART overall-health self-assessment test result | Kann "PASSED" oder "FAILED!" enthalten. Ein PASSED Ergebnis heißt jedoch keineswegs, dass die Festplatte in Ordnung ist. |
Reallocated_Sector_Ct | Die Anzahl der Sektoren mit Lesefehlern, die automatisch von der Festplatten-Controllersoftware durch Reserve-Sektoren ersetzt wurden. Sollte normalerweise Null sein. Wenn die Anzahl defekter Blöcke im Laufe der Zeit ansteigt, sollte man die Platte ersetzen. |
Current_Pending_Sector | Die Anzahl Sektoren mit Lesefehlern, die noch nicht ersetzt wurden. Wenn dieser Wert nicht Null ist, muss dieser Sektor explizit geschrieben oder die Platte neu formatiert werden. |
SMART Error Log | Dieser Abschnitt enthält Detailinformationen zu den letzten aufgetretenen Problemen. Einträge sind kein Beweis für ein schwerwiegendes Problem mit der Festplatte; wenn jedoch der Error Counter sehr hoch ist, ist die Platte wahrscheinlich defekt. |
SMART Self-test log | Enthält die Ergebnisse der letzten Selbsttest. Falls hier ein "FAILED" steht, ist die Platte defekt. Daten sichern und Festplatte an den Hersteller zurücksenden. |
Reallocated_Sector_Ct, Reallocated_Event_Count
Es ist durchaus normal, dass eine Festplatte defekte Sektoren hat. Die Steuersoftware der Festplatte kann Zugriffe auf solche defekten Sektoren auf einwandfreie Reservesektoren umlenken, so dass keinerlei Einschränkungen im Betrieb auftreten.
Aber man sollte folgende zwei Punkte im Auge behalten:
- Wenn die Anzahl defekter Sektoren im Laufe der Zeit ansteigt, dann verschlimmert sich das Problem offensichtlich. Irgendwann sind alle Reservesektoren allokiert; spätestens zu diesem Zeitpunkt ist die Platte unbrauchbar.
- Jeder defekte Sektor enthielt möglicherweise Daten, die nun nicht mehr verfügbar sind. Gehört der Sektor zu einer Datei, sind Teile der Datei nicht mehr lesbar. Handelt es sich um einen Block des Directorys (Verzeichnisstruktur), sind unter Umständen ganze Dateien, Verzeichnisse oder womöglich die gesamte Festplatte nicht mehr lesbar, obwohl die Dateien an sich noch vorhanden sind.
Current_Pending_Sector
Dies ist die Anzahl defekter Blöcke, die definitiv nicht mehr lesbar sind und für die die Controllersoftware ein Reassign geplant hat. Die Zuweisung eines Reserveblocks erfolgt jedoch nur bei einem Schreibvorgang.
SMART Selbsttest ausführen
Es gibt zwei Arten von Selbsttests, einen langen und einen kurzen (smartctl -t long und smartctl -t short). Beide Varianten kann man ohne Probleme auf aktiven Festplatten ausführen, da sie weder Daten überschreiben noch den Betrieb nennenswert stören. Der kurze Selbsttest benötigt im allgemeinen ein, zwei Minuten; der lange Selbsttest kann schon mal einige Stunden dauern.
Beide Tests sollte man in gewissen Abständen ausführen. In den Linux smartmontools gibt es dazu den smartd, der z.B. täglich einen kurzen und wöchentlich einen langen Selbsttest ausführt. Sollte es Probleme geben, erhält man automatisch eine Email.
Unter Windows gibt es zahlreiche Tools, die ähnliche Funktionen durchführen:
http://www.google.de/search?q=smart+disk+tools+windows
http://de.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology#S.M.A.R.T.-Programme_im_Vergleich
Was tun bei Problemen?
Die meisten Festplatten haben eine ziemlich lange Garantiezeit, im allgemeinen drei oder fünf Jahre. Wenn der SMART Selbsttest einen Fehler nachweist, ist die Platte ein Garantiefall. Daten retten, Platte an den Hersteller zurückschicken.
Auch bei sonstigen Fehlern, die keinen Garantieanspruch bedingen, sollte man nicht lange herumexperimentieren. Es lohnt sich nicht. Meine Zeit ist mir dafür zu schade. Zeigt eine Platte irgendwelche Unregelmäßigkeiten, gibt es für mich nur einen Weg: Daten runterkopieren, neue Platte einbauen. Und die defekte alte Platte bitte nicht bei Ebay vertickern... lieber in den Elektronikschrott.
Defekte Festplatte reparieren
Bei Lesefehlern kann man die Festplatte zwingen, einen der Reserveblöcke zuzuweisen, indem man Daten auf diesen Sektor schreibt. Die Datei, zu der dieser Sektor gehört, ist allerdings beschädigt.
Unter Linux verwendet man folgendes Kommando:
dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=[Blocknummer]
Unter Windows führt man eine Datenträgerprüfung durch: Rechtsklick auf das fragliche Volume, Eigenschaften, Extras, Fehlerüberprüfung, Jetzt prüfen, Option "Fehlerhafte Sektoren suchen/wiederherstellen" auswählen. Dies liest jeden einzelnen Block der Festplatte und schreibt ihn wieder zurück. Dieser Vorgang kann jedoch eine ganze Weile dauern.
Die Reallokierung wird auch durch eine Neuformatierung erzwungen. Unter Windows: nicht die Option "Schnellformatierung" auswählen; unter Linux: mke2fs -c -c.
Datenrettung
Die beste Methode ist, ein aktuelles Backup zu haben.
Das grundsätzliche Problem beim Kopieren von Daten von einer defekten Festplatte ist, dass irgendwo ja nicht lesbare Blöcke sind. Windows bricht dann gerne mit einem Lesefehler ab, so dass man an die weiteren Daten nicht mehr rankommt. Man kann natürlich etappenweise einzelne Directories kopieren, aber der Aufwand ist sehr viel höher.
Deswegen sollte man zunächst Sektor für Sektor die gesamte Festplatte kopieren. Dann kann man in aller Ruhe die Dateien kopieren, ohne befürchten zu müssen, dass durch Reparaturversuche noch mehr kaputtgeht.
Am besten funktioniert dies unter Linux; auch dann, wenn es sich um Windows Partitionen handelt.
Siehe auch die folgenden Artikel:
-
Rescue disk with ddrescue — How to rescue a broken disk drive using ddrescue.
-
Festplatten mit SMART überwachen — S.M.A.R.T. ist eine Technologie, mit der man den Zustand von Festplatten überwachen kann.
Unter Linux kann die Überwachung automatisch erfolgen. Die smartmontools enthalten für diesen Zweck den smartd: Er fragt periodisch den aktuellen Zustand aller Platten ab, führt Tests durch und benachrichtigt gegebenenfalls den Administrator per Email.
-
Defekte Festplatten finden — Festplatten halten nicht ewig. Jede Festplatte wird irgendwann einmal ausfallen, was im schlimmsten Fall den Totalverlust sämtlicher darauf enthaltener Daten bedeutet.