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
Sledování disku
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.
Rychlé zhodnocení stavu disku
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
Více informací k disku
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
Všechny údaje SMART k disku
Pro výpis všech informací k disku použijte
sudo smartctl -a /dev/sda
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).
Dokážou tyto údaje předpovědět selhání disku?
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
Testování disku
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
.