SMART Tests mit smartctl

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

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

  1. Hard Drive Self-tests (t10.org)
  2. Smartmontools Wiki (sourceforge.net)
  3. smartctl manual - Smartmontools (smartmontools.org)

Das könnte Sie auch interessieren

Analyse einer fehlerhaften Festplatte mit smartctl
Smartctl
Smartmontools mit MegaRAID Controller