SMART Tests mit smartctl
Jede moderne Festplatte bietet die Möglichkeit durch SMART Attribute den aktuellen Zustand der Festplatte zu überwachen. Diese Werte geben Auskunft über verschiedene Kenngrößen der Festplatte und können Informationen über die verbleibende Lebensdauer oder eventuell aufgetretene Fehler geben. Zusätzlich können über SMART verschiedene Tests ausgeführt werden um Probleme an der Hardware der Festplatte festzustellen. In diesem Artikel wird beschrieben wie solche Tests mithilfe von smartctl (Smartmontools) unter Linux durchgeführt werden können.
Installation Smartmontools
Die Smartmontools können unter Ubuntu über die Paketquellen installiert werden:
sudo apt-get install smartmontools
Um zu überprüfen ob die Festplatte SMART unterstützt und auch es aktiviert ist kann folgender Befehl verwendet werden (hier im Beispiel für die Festplatte /dev/sdc):
sudo smartctl -i /dev/sdc
Beispielausgabe:
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.5.0-39-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family: Western Digital RE4 Serial ATA
Device Model: WDC WD5003ABYX-01WERA1
Serial Number: WD-WMAYP5453158
LU WWN Device Id: 5 0014ee 00385d526
Firmware Version: 01.01S02
User Capacity: 500,107,862,016 bytes [500 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Mon Sep 2 14:06:57 2013 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Wichtig sind die letzten beiden Zeilen, diese zeigen an ob SMART-Support verfügbar und aktiviert ist.
Verfügbare Tests
SMART bietet laut Spezifikation zwei verschiedene Arten von Tests für ATA und SCSI Devices an.[1] Jeder dieser Tests kann in 2 Modi durchgeführt werden:
- Foreground Mode
- Background Mode
Im Background Mode ist die Priorität des Tests geringer, das bedeutet das weiterhin normale Instruktionen von der Festplatte verarbeitet werden. Falls die Festplatte ausgelastet ist wird der Test pausiert und bei geringerer Last wieder fortgesetzt, so kommt es zu keiner Unterbrechung des Bestriebs.
Im Foreground Mode werden alle Kommandos an die Festplatte während des Tests mit dem Status "CHECK CONDITION" beantwortet, daher ist dieser Modus nur zu empfehlen wenn die Festplatte nicht verwendet wird. Grundsätzlich ist der Background Mode zu bevorzugen.
ATA/SCSI Tests
Short Test
Das Ziel des Short Tests ist die schnelle Identifikation einer defekten Festplatte. Daher ist für den Short Test eine maximale Laufzeit von 2 Min definiert. Der Test kann in 3 verschiedene Segmente eingeteilt werden, die verschiedene Bereiche der Festplatte überprüfen. Folgende Bereiche werden getestet:
- Elektrische Eigenschaften: Der Controller testet seine eigene Elektronik, da diese stark Herstellerspezifisch ist kann nicht genau gesagt werden was getestet wird. Denkbar wäre z.B. Test des internen RAMs, Test der Read/Write Schaltungen oder auch Test der Kopfelektronik.
- Mechanische Eigenschaften: Dabei werden die Servos und die Positionsmechanik getestet, der genaue Ablauf ist ebenfalls Herstellerspezifisch.
- Read/Verify: Es wird ein bestimmter Bereich der Festplatte gelesen und die Daten verifiziert, die Größe und Position des Bereichs der gelesen wird ist ebenfalls Herstellerspezifisch.
Long Test
Der Long Test wurde für den abschließenden Test in der Fertigung konzipiert und ist bis auf 2 Unterschiede gleich zum Short Test. Einerseits gibt es keine Zeitbeschränkung und im Read/Verify Segment wird die gesamte Festplatte überprüft und nicht nur ein Teil. Der Long Test kann z.B. dazu verwendet werden um die Ergebnisse des Short Tests zu bestätigen.
ATA spezifische Tests
Alle hier angeführten Tests sind nur für ATA Festplatten verfügbar.
Conveyance Test
Dieser Test kann durchgeführt werden um Schäden beim Transport der Festplatte festzustellen, die Laufzeit beträgt wenige Minuten.
Select Test
Bei Select Tests wird die angegebene Range an LBAs überprüft. Die zu scannenden LBAs können in folgenden Formaten angegeben werden:
sudo smartctl -t select,10-20 /dev/sdc #LBA 10 bis LBA 20 (inkl.)
sudo smartctl -t select,10+11 /dev/sdc #LBA 10 bis LBA 20 (inkl.)
Es ist auch möglich mehrere Bereiche (bis zu 5) zu scannen:
sudo smartctl -t select,0-10 -t select,5-15 -t select,10-20 /dev/sdc
Testdurchführung mit smartctl
Vor der Testdurchführung kann eine ungefähre Zeitangabe zur Dauer der verschiedenen Tests mit folgendem Kommando angezeigt werden:
sudo smartctl -c /dev/sdc
Beispielausgabe:
[...]
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 83) minutes.
Conveyance self-test routine
recommended polling time: ( 5) minutes.
[...]
Folgender Befehl startet den gewünschten Test (im Background Mode):
sudo smartctl -t <short|long|conveyance|select> /dev/sdc
Es ist auch möglich einen "offline" Test[2] auszuführen. Dadurch wird allerdings nur der Standard Selbsttest (Short Test) durchgeführt.
Beispielausgabe:
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.5.0-39-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Mon Sep 2 15:32:30 2013
Use smartctl -X to abort test.
Um die Tests im Foreground Mode durchzuführen muss "-C" zum Befehl hinzugefügt werden.
sudo smartctl -t <short|long|conveyance|select> -C /dev/sdc
Anzeigen der Testergebnisse
Grundsätzlich sind die Testergebnisse in der Ausgabe des folgenden Kommandos enthalten:
sudo smartctl -a /dev/sdc
Beispiel:
[...]
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 2089 -
# 2 Extended offline Completed without error 00% 2087 -
# 3 Short offline Completed without error 00% 2084 -
SMART 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 nur die Testergebnisse angezeigt werden sollen kann auch folgender Befehl verwendet werden:
sudo smartctl -l selftest /dev/sdc
Beispielausgabe:
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.5.0-39-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 2089 -
# 2 Extended offline Completed without error 00% 2087 -
# 3 Short offline Completed without error 00% 2084 -
Die Manpage zu smartctl liefert ausführliche Erklärungen, um die Testergebnisse der SMART Tests richtig interpretieren zu können. Der relevante Absatz als Auszug:[3]
- [...]
- "selftest - [ATA] prints the SMART self-test log. The disk maintains a self-test log showing the results of the self tests,"
- "which can be run using the '-t' option described below. For each of the most recent twenty-one self-tests,"
- "the log shows the type of test (short or extended, off-line or captive) and the final status of the test."
- "If the test did not complete successfully, then the percentage of the test remaining is shown."
- "The time at which the test took place, measured in hours of disk lifetime, is also printed."
- "[Note: this time stamp wraps after 2^16 hours, or 2730 days and 16 hours, or about 7.5 years.]"
- "If any errors were detected, the Logical Block Address (LBA) of the first error is printed in decimal notation."
- Once these updates are made available we will post those updates here."
- "[...]
Im Wikipedia Artikel zu SMART finden Sie ebenso eine Liste mit bekannten SMART Attributen inklusive einer kurzen Beschreibung.
Einzelnachweise
- ↑ Hard Drive Self-tests (t10.org)
- ↑ Smartmontools Wiki (sourceforge.net)
- ↑ smartctl manual - Smartmontools (smartmontools.org)