Komplett handledning om hdparm i Linux: prestanda, kraft och säkerhet

Senaste uppdateringen: 21/02/2026
Författare: Isaac
  • Med Hdparm kan du visa och justera parametrar för IDE- och SATA-diskar, vilket förbättrar prestanda, strömförbrukning och brus vid försiktighet.
  • Alternativen -tT, -m, -A, -d, -X och -c används för att mäta och optimera diskåtkomsthastighet och överföringslägen.
  • Parametrarna -B, -S, -yy och -Y styr energihantering, spindown-cykler och viloläge, vilket påverkar diskens livslängd.
  • Vissa säkerhets-, cachnings- och SSD-rensningskommandon är mycket kraftfulla och bör testas innan de görs persistenta i /etc/hdparm.conf.

hdparm-handledning på Linux

Om du använder Linux dagligen och är orolig för prestandan hos din hårddisk eller SSD, Förr eller senare kommer du att stöta på verktyget hdparm.Det är ett veteranverktyg, extremt kraftfullt och, om det används klokt, mycket användbart för att maximera prestanda, minska brus, justera energiförbrukningen eller till och med utföra känsliga operationer som säker radering på vissa hårddiskar.

Även om det kan verka lite imponerande vid första anblicken, hdparm är i huvudsak ett kommando som kommunicerar direkt med hårdvaran på hårddisken.Detta ger dig tillgång till en mängd intern information och möjlighet att ändra avancerade parametrar. Det är dock ingen leksak; vissa alternativ kan, om de missbrukas, skada filsystemet eller göra disken oåtkomlig. Den här guiden visar dig vad den gör, hur du använder den säkert och vilka alternativ som verkligen är användbara för vardagliga uppgifter.

Vad är hdparm och vad används det till i Linux?

hdparm-kommandot i Linux

Kommandot hdparm är ett kommandoradsverktyg för att hantera och justera IDE- och SATA-diskar. (och delvis moderna SSD-diskar) i GNU/Linux, och även i vissa versioner av Windows. Den fungerar på en mycket låg nivå, kommunicerar med disken via styrenheten, och låter dig modifiera saker som:

  • Överföringslägen (PIO, DMA, UDMA).
  • Läs/skriv-cache och läs framåt.
  • Energihantering (APM, vilotider, standby, sömn).
  • Akustisk hantering för att minska brus i mekaniska skivor.
  • Säkerhetsparametrar såsom lås, skrivskydd eller säker radering.

I de flesta distributioner, hdparm är förinstallerat som standardOm du inte har det kan du enkelt lägga till det:

sudo apt install hdparm

Tänk alltid på att Många hdparm-alternativ kräver administratörsbehörighetGrundsyntaxen är enkel:

hdparm  /dev/sdX

där / Dev / sdX kommer att vara din skiva (till exempel / Dev / sda o /dev/nvme0n1 i modernare system, även om hdparm är mer inriktad mot SATA/IDE).

Innan du börjar röra vid något är det en bra idé Läs den officiella manualen med `man hdparm` Och var uppmärksam på varningarna. Programmet självt markerar vissa alternativ som farliga eftersom de kan krascha systemet eller orsaka omfattande datakorruption om de används felaktigt.

Kontrollera vilken hårddisk du har och se dess grundläggande information

Innan du ändrar inställningarna är det viktigt att veta Vilken disk jobbar du med exakt och hur är den kopplad?För att lista diskar och deras enhetssökvägar kan du till exempel använda:

sudo fdisk -l

Där ser du rutter som / Dev / sda, / Dev / sdb, etc. På äldre system med IDE skulle du se något liknande /dev/hdaDen sökvägen är den du kommer att använda med hdparm i resten av kommandona.

När du har identifierat enheten kan du få en snabb översikt över dess nuvarande konfiguration med:

sudo hdparm /dev/sda

Det här kommandot visar parametrar som multicount, IO_support, readahead, DMA, geometri och andra värden som ger dig en snabb överblick över diskens skick.

Om du vill ha mer information finns det två nivåer av extra information:

  • Grundläggande startup-identifiering (modell, firmware, överföringslägen etc.):
    sudo hdparm -i /dev/sda
    
  • Utökad och mycket detaljerad identifiering direkt från disken:
    sudo hdparm -I /dev/sda
    

Vid utgången av hdparm -I Du kommer att se information som antal sektorer, PIO- och DMA-lägen som stöds, aktiva Ultra DMA-lägen, stöd för Active Power Management (APM), skrivcache, om akustisk hantering stöds, säkerhetskommandon etc. Detta är grunden för att förstå Vad kan aktiveras utan att uppfinna värden som din disk inte stöder?.

Mät diskprestanda med hdparm

En av de mest populära användningsområdena för detta verktyg är mät snabbt diskens läshastighetDetta görs vanligtvis med hjälp av kombinationen -tT:

sudo hdparm -tT /dev/sda

Den typiska utdata har två viktiga rader med tider och MB/s:

  • Tidpunkt för cachade läsningar: mäter läshastighet med hjälp av systemets cache (RAM-minne), det är inte den "riktiga" diskhastigheten, men den är användbar för att upptäcka ovanliga flaskhalsar.
  • Tidsbaserade buffrade diskläsningarmäter den direkta läsningen från disken, vilket är användbar data för att jämföra enheter.

Det rekommenderas Kör detta test flera gånger och beräkna ett mentalt medelvärde.eftersom systemet kan utföra andra uppgifter i bakgrunden. Vissa användare föredrar också att inaktivera vissa buffertar med hjälp av alternativet -direkt för att se diskens mer "råa" beteende, till exempel:

sudo hdparm -t --direct /dev/sda
sudo hdparm -t --direct --offset 500 /dev/sda

I det här sista exemplet, en offset för att testa ett specifikt område på disken, användbart om du misstänker att vissa områden är långsammare eller mer slitna.

  Så här tar du bort genvägspilen från Windows-ikoner

Tänk på att detta HDPARM-test primärt mäter sekventiella avläsningarFör mer komplexa arbetsbelastningssimuleringar (slumpmässiga läsningar, många I/O-köer etc.) är det mer meningsfullt att använda verktyg som fio, ioping eller iostat, vilket vi kommer att diskutera kortfattat senare.

Optimera läsningar: flera sektorer och läsning i förväg

En sak som många användare drar nytta av i hdparm är dess förmåga att Läs flera sektorer samtidigt för att förbättra prestandanVid utgången av hdparm -i /dev/sda En rad som liknar följande visas:

R/W multiple sector transfer: Max = 16   Current = ?

Det maximumet indikerar Hur många sektorer kan din hårddisk läsa samtidigt?Om du vill utnyttja det maximalt använder du:

sudo hdparm -m16 /dev/sda

Håller alltid med justera -m-värdet till det maximala som anges av själva disken. (MaxMultSect) och hitta inte på ett större tal. Upprepa prestandatestet efter att ha ändrat det:

sudo hdparm -tT /dev/sda

En annan intressant parameter är läs-i-förvägvilket gör att disken kan läsa fler sektorer i förväg än vad som begärts, vilket förbättrar långa sekventiella läsningar:

sudo hdparm -A1 /dev/sda        # Activar read-ahead
sudo hdparm -a256 /dev/sda      # Ajustar tamaño de read-ahead a 256 sectores

Med båda inställningarna (multisektor och avläsning i förväg) kan du uppnå märkbara bandbreddsförbättringar i mekaniska diskarkontrollerar alltid mellan ändringarna om MB/s faktiskt ökar eller tvärtom om systemet blir instabilt.

Kontroll av PIO-, DMA- och UDMA-lägen

En av de stora styrkorna med hdparm är att det tillåter konfigurera hur data överförs mellan disk och minneI moderna system är allt oftast ganska väl konfigurerat från fabrik, men särskilt med äldre hårdvara eller ovanliga styrenheter är det bra att veta vad som händer.

För att se om din disk använder DMA (direct memory access) kan du köra:

sudo hdparm -d /dev/sda

Och för att aktivera det, om det är inaktiverat och kompatibelt:

sudo hdparm -d1 /dev/sda

Du ser den specifika typen av aktiv Ultra DMA i hdparm -I /dev/sda i UDMA-sektionen, till exempel:

UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6

Posten markerad med en asterisk är UDMA-läge som aktiveras vid startOm disken och kontrollenheten stöder det kan du tvinga fram ett specifikt läge med:

sudo hdparm -Xudma6 /dev/sda

Det är också möjligt att justera PIO-lägen (äldre och långsammare) med:

sudo hdparm -p4 /dev/sda

och ändra 16 till 32 bitars åtkomst med:

sudo hdparm -c1 /dev/sda       # Activar 32 bits
sudo hdparm -c3 /dev/sda       # Otro modo 32 bits dependiendo de la controladora

Tänk på att det är knepigt att leka med -d, -p, -co -X, eftersom Ett inkompatibelt läge kan krascha systemet eller orsaka I/O-felDen gyllene regeln är: gör en ändring i taget, testa stabiliteten, mät prestandan och om något luktar skumt, gå tillbaka.

Strömhantering med APM (-B) och standby (-S)

Ett av de områden där HDPARM lyser är inom hantera diskförbrukning och beteende vid inaktivitetDetta är särskilt viktigt för bärbara datorer, NAS-enheter för hemmabruk eller servrar med säkerhetskopieringsdiskar som inte alltid används.

Alternativet -B styr funktionen Advanced Power Management (APM)förutsatt att disken stöder det. Möjliga värden är:

  • 1-127aggressiv strömhantering, möjliggör avstängning vid spindown.
  • 128-254medelhög/hög förbrukning, vanligtvis utan automatisk centrifugering.
  • 254: prioriterar I/O-prestanda.
  • 255: inaktiverar APM helt (alla diskar stöder det inte).

Ett typiskt exempel på hur man kan förlänga livslängden på en bärbar dators hårddisk genom att förhindra att den ständigt startar och stannar är:

sudo hdparm -B 180 /dev/sda

Det finns verkliga exempel där man, genom att justera värden mellan 180 och 200Problemet med överdrivna belastnings-/urladdningscykler för skrivhuvudetvilket drastiskt förkortar skivans livslängd. Mycket låga värden som 1 eller 2 kan vara dödliga på lång sikt på grund av antalet parkeringscykler.

För att övervaka hur många cykler din disk har gått igenom kan du använda smartmontools och kommandot smartctl:

sudo apt-get install smartmontools
sudo smartctl -a /dev/sda | egrep -i "id|load"

I fältet RAW_VALUE Du ser laddnings-/urladdningscykelräknaren. Tillverkare brukar nämna intervall på cirka 300.000 till 600.000 cykler innan problemen börjar, så att justera hdparm -B korrekt gör skillnad.

Å andra sidan, alternativet -S Den definierar den tid det tar för disken att gå in i standby-läge efter en period av inaktivitet. Kodningen är speciell:

  • 0: inaktiverar automatisk timeout.
  • 1-240varje enhet motsvarar 5 sekunder (från 5 till 20 minuter).
  • 241-25130-minutersintervaller (från 30 min till 5,5 timmar).
  • 252: 21 minuter.
  • 253: värde definierat av tillverkaren (mellan 8 och 12 timmar).
  • 255: 21 minuter och 15 sekunder.

Praktiska exempel på användning skulle vara:

sudo hdparm -S 200 /dev/sda

vilket skulle motsvara en standby-tid på drygt 16 minuter, eller:

sudo hdparm -S 24 /dev/sda

vilket orsakar skivan Den stängs av efter 120 sekunders inaktivitet. (24 × 5 sekunder). För bärbara datorer som syftar till att maximera batteritiden på bekostnad av något högre latens vid återanvändning av disken, värden som 241 o 242 De rekommenderas också.

  Konfigurera grundläggande WSUS på ett lokalt nätverk steg för steg

Tänk på att det kostar att stänga av gyrot: Varje påslagnings-/avstängningscykel räknas som en livscykelOm du stänger av hårddisken hundratals gånger om dagen i flera år kan du uttömma den marginalen. Som en allmän regel måste du hitta en balans mellan strömförbrukning, värme, buller och antal cykler.

Energilägen: aktiv, standby och viloläge

Förutom att schemalägga driftstopp tillåter hdparm konsultera och tvinga fram specifika energitillståndFör att se albumets aktuella status:

sudo hdparm -C /dev/sda

Svaret anger vanligtvis om disken är i aktiv/inaktiv, standby eller viloläge.

Om du manuellt vill sätta den i lätt viloläge (standbyläge), med vridarmen avstängd men redo att återgå snabbt, kan du använda:

sudo hdparm -y /dev/sda

Om du istället använder:

sudo hdparm -Y /dev/sda

skivan går in i djup sömnDen stängs av helt och kräver en program- eller maskinvaruåterställning för att vakna igen. Linux IDE/SATA-drivrutinen hanterar vanligtvis detta vid behov, men den bör användas med försiktighet.

För servrar med flera diskar kan du kontrollera statusen för alla samtidigt med hjälp av skaltillägg som detta:

sudo hdparm -C /dev/sd

Eller, om du vill skicka dem i viloläge selektivt:

sudo hdparm -Y /dev/sd{b,g,f,e,d}

I vissa fall kan det vara räckligt med att kontrollera statusen vakna upp till skivanMed andra ord, om man kör `hdparm -C` utförs en åtkomst som tar disken ur vänteläge. Om du vill övervaka detta kan du titta på /var/log/syslog och sök efter meddelanden som vakna upp ur sömnen.

Minska bruset från mekaniska hårddiskar med akustiskt läge

Om du har en gammal dator eller bärbar dator med en mekanisk hårddisk har du förmodligen hört talas om... konstant ljud från det roterande huvudetDu kan hitta tips på hårddiskunderhåll i LinuxVissa enheter erbjuder en parameter på avancerad akustisk hantering som hdparm kan justera med alternativet -M.

Först kan du kontrollera om disken stöder det här läget med:

sudo hdparm -I /dev/sda | grep -i acoustic

Om information om det dyker upp kan du förmodligen leka med värden som:

sudo hdparm -M 128 /dev/sda   # Reducir ruido a costa de algo de rendimiento
sudo hdparm -M 254 /dev/sda   # Priorizar velocidad, más ruido

Många handledningar rekommenderar att man noterar det rekommenderade värdet som visas i utdata från föregående kommando och, om man vill behålla det fast, tillämpar:

sudo hdparm -M <VALOR_RECOMENDADO> /dev/sda

Om du efter omstart ser att inställningen har gått förlorad kan du lägg till motsvarande kommando i startskripten (vi kommer att se detta nedan) så att systemet tillämpar det vid varje start.

Kom ihåg det här tricket Fungerar bara för mekaniska hårddiskarSSD-diskar har inga rörliga delar, så de genererar inte den här typen av ljud eller reagerar på akustiskt läge.

Skriv cache och andra användbara parametrar

Hdparm tillåter också aktivera eller inaktivera diskskrivningscachelagringDetta kan förbättra skrivprestandan avsevärt, men det medför också en risk för dataförlust vid strömavbrott.

För att visa eller ändra skrivcachen, använd alternativet -W:

sudo hdparm -W /dev/sda    # Ver estado
sudo hdparm -W1 /dev/sda   # Activar caché de escritura
sudo hdparm -W0 /dev/sda   # Desactivar caché de escritura

Det finns scenarier (till exempel vid dataåterställning eller specifika tester) där Du kanske vill inaktivera cachen. För att få mer realistiska avläsningar eller undvika inkonsekvenser. För normal användning på stationära datorer eller servers är det nästan alltid bäst att låta det vara aktiverat om systemet har en stabil strömförsörjning (eller UPS).

En annan inställning som ibland kan förväxlas är -s för standby-läge i vissa äldre manualerStandardalternativet för hdparm i vänteläge är dock -S. Se alltid till att kontrollera med hdparm --help Vad gör varje parameter i din version? Det finns ju alternativ markerade som föråldrade och andra som bara gäller för klassiska IDE-enheter.

Säker radering och känsliga SSD-operationer

Med ankomsten av SSD-diskar har hdparm införlivat stöd för ATA-säkerhetskommandon, inklusive säker raderingDetta tillåter teoretiskt sett att enheten lämnas i ett fabriksliknande tillstånd, vilket tar bort all lågnivådata.

Ett typiskt arbetsflöde innebär att man först ställer in ett tillfälligt lösenord och sedan utför raderingen. Ett mycket förenklat exempel skulle vara:

sudo hdparm --user-master u --security-erase 123456 /dev/sdb

där 123456 Detta skulle vara det klartextlösenord du definierar vid den tidpunkten. Detta kommando skickar ordern till styrenheten att radera alla block på SSD:n.

Här är det Det är viktigt att påpeka att det finns problematiska enheter. där användningen av dessa kommandon kan lämna disken i ett oåtkomligt eller "brick"-tillstånd, särskilt om de redan var "frysta" av BIOS/UEFI för att förhindra hotmanipulation.

  Det bästa sättet att inaktivera Autospara till OneDrive i Home Windows 10

Om du ser i hdparm -I /dev/sda att skivan visas som frystesDet finns knep som sätt utrustningen i paus och återuppta driften att avfrosta enheten, men det är fortfarande en känslig fråga. Om din tillverkare erbjuder ett officiellt verktyg (som vissa verktyg från Samsung, Crucial, etc.) är det vanligtvis säkrare att använda det för att Uppdatera din SSD-firmware på Linux Att spela direkt med hdparm är att föredra, särskilt om du inte vill riskera att skada en dyr SSD.

För mer måttliga "rengörings"-uppgifter finns det även skript som torkare.sh vilket, i kombination med korrekt TRIM-stöd, hjälper till att ta bort block som markerats som lediga och bibehålla SSD-prestanda, men återigen måste du vidta extra försiktighetsåtgärder och göra säkerhetskopior innan du gör något annat.

Kompletterande verktyg: fio, iostat och ioping

Även om hdparm har ett eget prestandatest, vill du i många fall utvärdera diskbeteende under mer realistiska belastningarFör det finns det flera mycket användbara verktyg som kompletterar vad hdparm erbjuder.

med Fio Du kan simulera olika läs-/skrivmönster (sekventiella, slumpmässiga, en blandning av båda, olika blockstorlekar, ködjup, etc.). Typisk användning innebär att skapa en arbetsfil, till exempel:


rw=randread
size=256m
directory=/var/www/html

och kör det med:

fio test.fio

Vid utgången är du mest intresserad av den del där det visas den totala lästa datan, den genomsnittliga bandbredden (bw) och IOPSDetta ger dig en närmare bild av hur disken beter sig när den hanterar en webbplats, en databas eller någon produktionstjänst.

Verktyget iostat Det kommer in i bilden när du vill övervaka diskanvändning i realtidNär du kör:

iostat

Du får se CPU-statistik, följt av en tabell med fält som:

  • tps: överföringar per sekund.
  • kB_läsning/s, kB_wrtn/s: kilobyte lästa och skrivna per sekund.
  • kB_läs, kB_wrtn: totalt lästa och skrivna.

Du kan begära regelbundna prover med något i stil med:

iostat -d 2 3

för att erhålla tre iterationer separerade med två sekunder, enbart fokuserade på diskenheter.

Slutligen, Jag går. Det ger dig ett slags "ping" från I/O-undersystemet: läs-/skrivfördröjningar och IOPSI Ubuntu finns den i arkiven, och dess grundläggande användning kan vara:

ioping -c 10 -s 1M -D /tmp

vilket returnerar latensen för 10 operationer med 1 MB-block, såväl som den resulterande MB/s. Dess mest intressanta alternativ är:

  • -c antalantal förfrågningar.
  • -s storlekstorleken på varje operation.
  • -L: sekventiella tester.
  • -C: tester med cache.
  • -D: direktåtkomst till disken.

Genom att kombinera hdparm, fio, iostat och ioping kan du få en ganska omfattande bild av status och prestanda för din lagringoch säkerhetskopiera alla begäranden om hårdvaruuppgraderingar du behöver göra med data.

Gör hdparm-ändringar permanenta

Något som förvirrar många är att Inställningar gjorda med hdparm går vanligtvis förlorade efter omstart.Detta är avsiktligt, just för att undvika att permanent skada systemet om du har provat något som inte fungerar korrekt.

När du är klar över vilka parametrar du vill behålla fasta (till exempel -A1 -d1 -p4 -c1 -m16 -Xudma6 på en specifik skiva) har du flera alternativ:

  • Debian, Ubuntu och derivator: använd filen /etc/hdparm.confdär du kan definiera sektioner per enhet med de alternativ du vill använda vid uppstart.
  • Andra systemlägg till hdparm-anrop till startskript, till exempel i /etc/rc.local (om din distribution fortfarande respekterar det), skriv:
    hdparm -A1 -d1 -p4 -c1 -m16 -Xudma6 /dev/sda
    

Kom alltid ihåg att innan du gör permanenta ändringar bör du ha testat dem noggrant: Omstarter, verklig arbetsbelastning, prestandatester och framför allt avsaknaden av fel i systemloggenDet är inte en bra idé att lämna en parameter som ökar i hastighet med 5 % men genererar slumpmässiga I/O-fel.

Hdparm är, kort sagt, en schweizisk armékniv för diskar i Linux: Den används för att pressa ut varenda MB/s ur din hårddisk, finjustera strömförbrukningen i bärbara datorer, tämja ljudet från gamla mekaniska hårddiskar eller komma åt avancerade funktioner i SSD-diskar.När det används korrekt kan du anpassa ditt lagringsbeteende till ditt arbetsflöde. Om det används felaktigt kan det leda till ett trasigt system och oåterställbara data, så det är värt att gå försiktigt fram, göra säkerhetskopior och dokumentera varje ändring du gör.

Uppdatera SSD-firmware på Linux
Relaterad artikel:
Så här uppdaterar du din SSD-firmware på Linux steg för steg