smartmontools

smartmontools

smartmontools je sada nástrojů na kontrolu a sledování stavu disků pomocí technologie S.M.A.R.T.

Instalace

Spuštění

Program se spouští z terminálu pomocí příkazu (například)

sudo smartctl -a /dev/sda

pokud chci výpis dat z disku /dev/sda.

Jak to funguje

Firmware sleduje během provozu disku různé parametry, pomocí nichž se dá usuzovat na stav a případnou pravděpodobnost selhání disku. Tyto parametry a jejich interpretace se bohužel mezi různými výrobci liší, ale určité obecné trendy je možné vyčíst.

Použijte parametr -H (health - zdraví)

sudo smartctl -H /dev/sda

Pokud vidíte ve výpise PASSED, je disk v pořádku. Pokud FAILED, pravděpodobnost totálního selhání je velmi vysoká.

arrange@arrange-desktop:~$ sudo smartctl -H /dev/sda
smartctl 5.40 2010-03-16 r3077 [i686-pc-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Použijte parametr -A (attributes - ukazatele)

sudo smartctl -A /dev/sda

Zkontrolujte sloupec WHEN_FAILED. Pokud obsahuje pouze pomlčky (-), jsou všechny ukazatele v normě.

Dále zkontrolujte ukazatel Reallocated_Sector_Ct (počet poškozených sektorů). Pokud se hodnota ve sloupci VALUE blíží hodnotě THRESH, mějte se na pozoru - disk není úplně v pořádku.

Problematické hodnoty u Raw_Read_Error_Rate (chyby při čtení) a Seek_Error_Rate (chyby při hledání sektoru na disku) nejsou fatální, ale ztěžují operačnímu systému nahrávání dat do paměti, a tím ho zpomalují, případně u neopravitelných (rozsáhlejších) chyb může dojít k lokálnímu poškození dat.

arrange@arrange-desktop:~$ sudo smartctl -A /dev/sda
smartctl 5.40 2010-03-16 r3077 [i686-pc-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
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     0x002f   200   200   051    Pre-fail  Always       -       831
  3 Spin_Up_Time            0x0027   157   156   021    Pre-fail  Always       -       3116
  4 Start_Stop_Count        0x0032   099   099   000    Old_age   Always       -       1093
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   092   092   000    Old_age   Always       -       5918
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       1090
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       15
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       1093
194 Temperature_Celsius     0x0022   104   094   000    Old_age   Always       -       39
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       1
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       1

Pro výpis všech informací k disku použijte

sudo smartctl -a /dev/sda

Příklad výstupu a vysvětlivky

smartctl 5.40 2010-07-12 r3124 [i686-pc-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.9 family
Device Model:     ST3802110A
Serial Number:    4LR6HEUP
Firmware Version: 3.BAJ
User Capacity:    80 026 361 856 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   7
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Fri Aug 19 20:50:03 2011 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Na začátku se kromě obecných informací k disku dozvíme, jestli

  • firmware podporuje SMART (SMART support is: Available)
  • jestli je zapnutý (Enabled).

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82)	Offline data collection activity
					was completed without error.
					Auto Offline Data Collection: Enabled.
Self-test execution status:      (  25)	The self-test routine was aborted by
					the host.
Total time to complete Offline
data collection: 		 ( 430) 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: 	 (  27) minutes.

* SMART overall-health self-assessment test result celková interpretace hodnot indexů:

  • PASSED - disk nevykazuje větší množství chyb
  • FAILED - hodnoty u jednoho nebo více indexů jdou za limit doporučovaný výrobcem - hrozí celkové selhání disku
  • Offline data collection status - některé disky umožňují automatickou kontrolu disku „na pozadí“ (offline); enabled - zapnuto
  • Self-test execution status - výsledek posledního testu disku prováděného pomocí SMART
  • … polling time - předpokládané časy jednotlivých testů

SMART Attributes Data Structure revision number: 10
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   115   069   006    Pre-fail  Always       -       92132405
  3 Spin_Up_Time            0x0003   095   094   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   099   099   020    Old_age   Always       -       1315
  5 Reallocated_Sector_Ct   0x0033   098   098   036    Pre-fail  Always       -       87
  7 Seek_Error_Rate         0x000f   079   060   030    Pre-fail  Always       -       89291126
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       3016
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   099   099   020    Old_age   Always       -       1409
187 Reported_Uncorrect      0x0032   001   001   000    Old_age   Always       -       30199
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   056   056   045    Old_age   Always       -       44 (0 7 44 38)
194 Temperature_Celsius     0x0022   044   044   000    Old_age   Always       -       44 (0 19 0 0)
195 Hardware_ECC_Recovered  0x001a   044   044   000    Old_age   Always       -       167736146
197 Current_Pending_Sector  0x0012   001   001   000    Old_age   Always       -       4294967295
198 Offline_Uncorrectable   0x0010   001   001   000    Old_age   Offline      -       4294967295
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       30
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 Data_Address_Mark_Errs  0x0032   099   252   000    Old_age   Always       -       1
  • ID a ATTRIBUTE_NAME - číslo a název ukazetele. Podrobnosti viz třeba zde. Nejdůležitějším ukazatelem je asi Reallocated_Sector_Ct - počet přemapovaných, a tedy vadných sektorů.
  • VALUE - tzv. normalizovaná (aktuální) hodnota, tedy hodnota přepočítaná vnitřním algoritmem SMARTu na hodnotu mezi 0-255 (někdy 0-200 apod.). Čím vyšší je tato hodnota, tím lépe. Pokud se dostane pod hodnotu ve sloupci THRESH, systém hlásí brzké selhání disku.
  • WORST - nejnižší (a tedy nejhorší) hodnota, jaké kdy tento ukazatel v historii dosáhl
  • THRESH (threshold - práh) - hraniční hodnota, pod níž systém hlásí brzké selhání disku
  • TYPE - typ ukazatele
    • Pre-fail - ukazatel indikující špatný stav disku
    • old_age - indikující stáří disku
  • UPDATED - kdy dochází k aktualizaci hodnoty ukazatele
    • always - při běžné činnosti disku
    • offline - při běhu testu na pozadí
  • WHEN_FAILED - kdy došlo k tomu, že hodnota ukazatele se dostala pod určený práh
    • - - nikdy
    • in_the_past - někdy v minulosti, aktuálně je v pořádku
    • failing_now - akutní nebezpečí
  • RAW_VALUE - nenormalizovaná hodnota ukazatele. Zde je nutné si uvědomit, že tato hodnota je pouze orientační a nemá dostatečnou vypovídající hodnotu, protože ji každý výrobce implementuje jinak. Může např. hodnotu vytvořit jako spojení více bytů, jež mají každý jiný význam v rámci ukazatele, a pak může být „syrová“ hodnota nesmyslně vysoká (viz v příkladu Current_Pending_Sector).

Studie Googlu, která je statistickým shrnutím shromážděných údajů z více než 100 000 pevných disků, mj. zjistila, že

  • disky s nenulovou hodnotou u Reallocated_Sector_Ct mají 14x větší pravděpodobnost selhání než ostatní; podobné je to i u ostatních chybových parametrů
  • 36% disků, které selhaly, byly podle ukazatelů SMART naprosto v pořádku (nulové hodnoty u chybových parametrů)
  • vysoká zátěž disku se negativně projevuje (rozuměj zvyšuje pravděpodobnost selhání) jen v prvním půlroce používání
  • vyšší teplota (myšleno kolem 45 stupňů) nemá na životnost zásadní vliv

Pomocí příkazu smartctl je rovněž možné spustit různé testy disku, všechny lze použít při normální činnosti (je možné pokračovat v práci s počítačem).

sudo smartctl -t nazev_testu /dev/sda

Testy, ktere lze použít (doplňte místo nazev_testu):

  • offline - spustí offline test, kontrola povrchu disku
  • short - kontroluje se jen určitá část disku, někdy i buffer a mechanické části disku
  • long - kontrola celého disku
  • conveyance - rychlý test na možná poškození při přepravě disku (kontrola nového disku)

Výsledky testu je možné zkontrolovat pomocí (kromě offline - ten pouze aktualizuje hodnoty u ukazatelů)

sudo smartctl -l selftest /dev/sda

Tipy a triky

Místo konzolového nástroje je možné použít grafický diskový nástroj, který interpretuje hodnoty SMART i provádí testy.

badblocks umožňuje vyhledávat poškozené bloky nezávisle na SMART. Přemapované bloky už ale nenajde.

Pokud chcete zálohovat data z poškozeného disku, a kvůli většímu poškození se to nedaří, zkuste ddrescue.

Odstranění

Odeberte balík smartmontools.

Odkazy

  • Poslední úprava: 2019/02/25 18:21
  • autor: 127.0.0.1