SMART (en akronym för självövervakning, analys och rapporteringsteknik) finns i moderna hårddiskar och det möjliggör en enhet för att upptäcka och rapportera om olika förhållanden som kan indikera övergående misslyckande. Smartmontools är ett gratis programvarupaket, tillgängligt för flera plattformar, som kan använda SMART-attributen på en hårddisk för att fråga sig om dess tillstånd. Med smartmontools kommer en tekniskt kunnig administratör / användare att varnas och förberedas på ett tillräckligt sätt för hårddiskfel och kan göra säkerhetskopior innan hårddisken blir kritisk.

Installation

På Debian- eller Ubuntu-system är smartmontools tillgängliga via standardbehållarna.

 sudo apt-get installera smartmontools 

På Fedora:

 sudo yum installera smartmontools 

Installera smartmontools-paketet levererar två program till ditt system: smartctl, som ska användas interaktivt och smartd, som, som namnet antyder, är ett daemonprogram som är utformat för att köra i bakgrunden.

Smartctl

Smartctl kräver root behörigheter att köra och så måste drivas av root-användaren eller en användare med sudo-privilegier. Smartctl övervakar en hel hårddisk (inte partitioner), alltså när den körs, bör den ges den nödvändiga hårddisken som det sista argumentet. För den här artikeln använder vi "/ dev / sda" som hårddiskenhetsfilen. Var noga med att ersätta det med hårddiskens fil.

För att få information om en enhet, använd alternativet -i .

 sudo smartctl -i / dev / sda 

Ovanstående bild visar lite information om enheten, och vi kan se, från de markerade linjerna, att SMART-support är både tillgängligt och aktiverat för enheten. Excellent. Om SMART-stöd är tillgängligt men inte aktiverat kan det aktiveras med följande kommando:

 sudo smartctl-s på / dev / sda 

För att kontrollera enhetens hälsa, använd alternativet -H :

 sudo smartctl -H / dev / sda 

Om utmatningen för ovanstående inte är passad, har hårddisken misslyckats eller det förutsäger att den kommer framåt. Säkerhetskopiera dina data omedelbart.

För att se drivrutins SMART-funktioner, använd -c omkopplaren:

 sudo smartctl-c / dev / sda 

Från ovanstående skärmdump stödjer enheten självtester, och tiden för korta och förlängda självtest beräknas till 2 minuter respektive 95 minuter. För att köra det korta testet, använd -t short knappen och därmed det -t long alternativet för det förlängda testet (och grundligare).

 sudo smartctl -t kort / dev / sda 

Testet körs i bakgrunden, så att du kan utföra andra uppgifter medan den körs. För att kontrollera resultaten av testet, kör följande kommando:

 sudo smartctl -l selftest / dev / sda 

Detta visar resultaten från de senaste tjugo självtesterna och ger ingen indikation på ett aktuellt körprov. Kör ett utökat test också.

 sudo smartctl -t long / dev / sda 

Om något test misslyckas, säkerhetskopiera dina data omedelbart.

Smartd

Medan smartctl är ett bra verktyg måste det köras regelbundet och ofta. Smartd är en demon som är utformad för att köra i bakgrunden och kräver regelbundet SMART-diagnostik från valda hårddiskar. På så sätt, omedelbart när ett fel är mottaget eller ett test misslyckas, kan administratören meddelas för lämplig åtgärd.

Konfigurationsfilen ligger normalt på "/etc/smartd.conf." Öppna den här filen och kolla efter en rad som börjar med "DEVICESCAN" och kommentera den genom att lägga till "#" i början. Ange sedan de frekvensomriktare som ska övervakas genom att lägga till följande för varje enhet:

 / dev / sda -a -o på -S på -s (S /../.././ 02 | L /../../ 6/03) -m root -M exec / usr / share / smartmontools / smartd-runner 

Ovanstående alternativ indikerar följande situationer:

  • /dev/sda : hårddiskenhetsfilen
  • -a : Detta möjliggör några vanliga alternativ. Du vill nästan säkert använda den.
  • -d sat : På mitt system gissar smartctl att jag har en seriell ATA-enhet. smartd å andra sidan gör det inte. Om du var tvungen att lägga till en -d TYPE parameter till smartctl-kommandona, så måste du säkert göra detsamma här. Om du inte gjorde det, försök att lämna det först. Du kan lägga till det senare om smartd inte startar.
  • -o on : Aktiverar SMART Automatisk offline-testning
  • -S on : Aktiverar SMART autosave
  • -s (S/../.././02|L/../../6/03) : Kör båda korta (S /../.././ 02) och långa (L /. ./../6/03) självtest vid schemalagda tider. Detta prov indikerar ett kort test klockan 2:00 varje dag och ett långt test varje lördag klockan 3:00
  • -m root : Skicka ett mail till den angivna adressen (root here). Kan separeras med kommatecken. Observera att detta kräver en fungerande e-post som är inställd på systemet
  • -M exec /usr/share/smartmontools/smartd-runner : Detta ändrar beteendet för -m flaggan. På Debian- och Ubuntu-system utför smartdrivare andra åtgärder utöver alternativet mail (-m).

Mer information finns på smartd.conf-mansidorna.

Efter att ha konfigurerat smartd måste vi se till att den startar på systemstarten. För att göra detta, öppna konfigurationsfilen "/ etc / default / smartmontools" och uncomment linjen #start_smartd=yes (ta bort #). Du kan sedan starta smartd genom att springa:

 sudo /etc/init.d/smartmontools starta 

Diagnostiken skulle loggas till syslog, men fel kommer att utlösa en e-postmeddelande. För att testa att e-posten fungerar, lägg till -M testet till raden i "/etc/smartd.conf" och starta om.

 sudo /etc/init.d/smartmontools omstart 

Detta skulle skicka en testmeddelande.

Slutsats

Det är förvånansvärt svårt att uppskatta livslängden på hårddiskar (en mycket bra artikel finns tillgänglig på detta). Använda SMART-funktionerna på din hårddisk, med smartmontools, kan ge viktiga timmar för en dataöverföring innan enheten upplever katastrofalt fel. Medan det verkligen inte finns någon ersättning för en bra säkerhetsplan kan smartmontools hjälpa till att varna en systemägare / admin till eventuellt fel.