SMART (Self-Monitoring, Analysis and Reporting Technology) är en inbyggd funktion i hårddiskar och SSD-enheter som kontinuerligt övervakar deras hälsa. Genom att analysera parametrar som temperatur, driftstimmar och antal defekta sektorer kan SMART ge tidiga varningssignaler om en enhet håller på att gå sönder. I Linux kan man med hjälp av paketet smartmontools snabbt kontrollera diskens status, köra självtester och sätta upp automatiserad övervakning. Denna artikel förklarar tekniken bakom SMART och visar hur du i praktiken kan kontrollera hårddiskars och SSD:ers hälsa i olika Linux-distributioner.

Vad är SMART?
SMART står för Self-Monitoring, Analysis and Reporting Technology. Det är en standardiserad teknik som finns inbyggd i nästan alla hårddiskar (HDD) och SSD-enheter.
Syftet är att övervaka diskens hälsa i realtid och varna innan fel leder till dataförlust. SMART gör detta genom att logga olika attribut (mätvärden) som visar hur disken mår.
Exempel på viktiga attribut:
- Reallocated Sector Count – Antal sektorer som markerats defekta och ersatts med reservsektorer. Ett ökande värde betyder att disken försämras.
- Current Pending Sector Count – Antal sektorer som är osäkra och väntar på omallokering. En stark varningssignal.
- Power-On Hours – Hur länge enheten har varit igång. Ger en bild av diskens ålder.
- Temperature – Diskens arbetstemperatur. Hög temperatur förkortar livslängden.
- Wear Leveling Count (SSD) – Mäter hur mycket av flashminnets livslängd som har förbrukats.
SMART fungerar genom att disken själv registrerar dessa värden och rapporterar dem till operativsystemet via ATA/SATA eller NVMe-protokoll. Systemadministratören kan sedan läsa ut informationen med verktyg som smartctl
.
Praktisk guide: Kontrollera diskar med SMART i Linux
1. Installera verktyget smartmontools
Debian/Ubuntu
sudo apt update
sudo apt install smartmontools
Red Hat / CentOS / Fedora
sudo dnf install smartmontools
(äldre system:)
sudo yum install smartmontools
Arch Linux / Manjaro
sudo pacman -S smartmontools
openSUSE
sudo zypper install smartmontools
2. Identifiera disken
Lista anslutna enheter:
lsblk
eller
sudo fdisk -l
Notera diskens beteckning, t.ex. /dev/sda
, /dev/sdb
, eller /dev/nvme0n1
.
3. Kontrollera SMART-stöd och status
Visa information om enheten
sudo smartctl -i /dev/sdX
Snabb hälsokontroll
sudo smartctl -H /dev/sdX
- PASSED → Disken rapporterar inga kritiska fel.
- FAILED → Disken är defekt, byt ut den.
4. Läs ut detaljerad SMART-data
sudo smartctl -A /dev/sdX
Här får du fram attribut som:
- Antal driftstimmar
- Temperatur
- Omallokerade sektorer
- Pending-sektorer
- SSD-slitagevärden
5. Kör SMART-självtester
SMART kan själv testa diskens hälsa genom interna tester.
Kort test (ca 2 minuter):
sudo smartctl -t short /dev/sdX
Se resultatet:
sudo smartctl -l selftest /dev/sdX
Långt test (kan ta flera timmar):
sudo smartctl -t long /dev/sdX
Se resultatet:
sudo smartctl -l selftest /dev/sdX
6. Tolkning av resultat
- Reallocated_Sector_Ct > 0 → Dålig disk, byt ut så snart som möjligt.
- Current_Pending_Sector > 0 → Risk för dataförlust, byt disk.
- Temperature > 55°C → För hög, kontrollera kylning.
- Power_On_Hours > 40.000 h → Disken är gammal, ökad risk för fel.
- PASSED men med varningar → SMART kan missa vissa fel, gör alltid backup.
7. Löpande övervakning med smartd
För servrar kan du köra smartd, en bakgrundstjänst som övervakar alla diskar och skickar varningar.
Aktivera tjänsten:
sudo systemctl enable smartd
sudo systemctl start smartd
Konfiguration:
/etc/smartd.conf
Här kan du ange e-postadress för automatiska varningar.
Slutsats
SMART är en inbyggd teknik för självdiagnostik i hårddiskar och SSD\:er. Med hjälp av smartmontools i Linux kan administratörer:
- Kontrollera diskars hälsa.
- Köra självtester.
- Upptäcka problem i tid.
- Få automatiska varningar via
smartd
.
Det är en viktig del i förebyggande underhåll. Men kom ihåg:
👉 SMART ersätter aldrig regelbundna säkerhetskopior.
Lite exempel
För ut denna log när jag skriver : smartctl /dev/sdc
ID | Size | Value | Description |
---|---|---|---|
0x000a | 2 | 2 | Device-to-host register FISes sent due to a COMRESET |
0x0001 | 2 | 0 | Command failed due to ICRC error |
0x0003 | 2 | 0 | R_ERR response for device-to-host data FIS |
0x0004 | 2 | 0 | R_ERR response for host-to-device data FIS |
0x0006 | 2 | 0 | R_ERR response for device-to-host non-data FIS |
0x0007 | 2 | 0 | R_ERR response for host-to-device non-data FIS |
SATA Phy Event Counters (GP Log 0x11)
Dessa värden loggas av SATA-fysiklagret (den elektriska/kommunikationsdelen av protokollet).
De visar olika felhändelser eller specialfall vid kommunikation mellan disk och värddator.
ID | Value | Beskrivning | Förklaring |
---|---|---|---|
0x000a | 2 | Device-to-host register FISes sent due to a COMRESET | Disken har skickat Register FIS (Frame Information Structure) till värden p.g.a. en COMRESET (en återställningssignal i SATA-länken). Två gånger har länken återställts. |
0x0001 | 0 | Command failed due to ICRC error | Inga kommandon har misslyckats på grund av ICRC (Interface Cyclic Redundancy Check) fel. Ett ICRC-fel innebär korrupt data mellan värd och disk. |
0x0003 | 0 | R_ERR response for device-to-host data FIS | Inga R_ERR (error responses) inträffade vid dataöverföring från enheten till värden. |
0x0004 | 0 | R_ERR response for host-to-device data FIS | Inga felrapporter från värden till enheten när data skickades åt det hållet. |
0x0006 | 0 | R_ERR response for device-to-host non-data FIS | Inga fel vid icke-dataöverföringar från disken (t.ex. kontroll/kommandoramar). |
0x0007 | 0 | R_ERR response for host-to-device non-data FIS | Inga fel vid icke-dataöverföringar från värden till disken. |
Tolkningar
- Värden på 0 = inga fel, vilket är bra.
- 0x000a = 2 betyder att SATA-länken har återställts två gånger.
Det behöver inte vara ett problem, men om värdet ökar ofta kan det tyda på: - Dåliga kablar eller kontakter
- Strömproblem
- Buggar i kontroller/drivrutiner
SMART (Self-Monitoring, Analysis and Reporting Technology) är inbyggd i HDD/SSD och övervakar hälsan via interna sensorer och räknare. Enheten lagrar attribut i firmware och rapporterar dem till värddatorn. Tester körs internt i disken och resultat loggas för felsökning.
- ATTRIBUTE / ID – Namn och numeriskt ID för mätvärdet.
- VALUE / WORST / THRESH – Normaliserade värden (ofta 100→0 eller 200→0). FAIL inträffar när VALUE ≤ THRESH enligt tillverkarens gräns.
- RAW_VALUE – Rå räknare (t.ex. antal sektorer, fel, grader °C).
- TYPE – Pre-fail (tidig varning) eller Old_age (slitage/ålder).
- STATUS (smartctl -H) – PASSED / FAILED – snabb sammanfattning.
- Testtyper – Short (snabb ytkontroll), Long/Extended (hela ytan), Conveyance (transportskador, främst HDD), Selective (delmängd).
- Loggar – Self-test log, Error log (senaste I/O-fel med LBA).
- Reallocated_Sector_Ct > 0 → reservsektorer har tagits i bruk (slitage/problem på medier).
- Current_Pending_Sector > 0 → osäkra sektorer som väntar på omallokering (hög risk).
- UDMA_CRC_Error_Count > 0 → ofta kabel/kontaktproblem (SATA).
- Temperature > ~55 °C → kylproblem, förkortad livslängd.
- SSD-specifikt – Wear_Leveling_Count/Media_Wearout (SATA), Percentage Used (NVMe).
- HDD (SATA/PATA/SAS) – Ja, stöds brett via
smartctl
(SAS ofta med HBA-pass-through). - SSD (SATA) – Ja, SMART-attribut för slitage, omallokering, temperatur m.m.
- NVMe-SSD – Ja, via NVMe SMART/Health-logg.
smartctl
ochnvme-cli
kan läsa dessa. - USB-kabinett/dockor – Beror på brygga. Kräver SAT-pass-through; prova
smartctl -d sat /dev/sdX
. Vissa adaptrar exponerar inte SMART alls. - Virtualisering – kräver enhets-/controller-pass-through för tillförlitliga värden.
# Identifiera enhet lsblk # t.ex. /dev/sda, /dev/sdb, /dev/nvme0n1 # HDD/SSD (SATA) sudo smartctl -iH -A /dev/sdX # info + hälsa + attribut sudo smartctl -t short /dev/sdX # kort test sudo smartctl -t long /dev/sdX # långt test sudo smartctl -l selftest /dev/sdX # testlogg # NVMe-SSD sudo smartctl -a /dev/nvme0 # SMART/Health från controllern sudo nvme smart-log /dev/nvme0 # alternativ via nvme-cli
- SMART är statistiskt/heuristiskt – plötsliga fel kan ske utan förvarning. Ha alltid backup.
- Tolkning varierar mellan tillverkare; jämför trender över tid snarare än enstaka värden.
- Kombinera med yttester (t.ex.
badblocks
) vid osäkerhet.