Zum Inhalt springen

Hdparm: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „line>“ durch „line copy>“
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
Hdparm zeigt und setzt Parameter von Laufwerken, die am (E)IDE,- SATA und SAS Bus angeschlossen sind.
'''hdparm''' zeigt und setzt Parameter von Laufwerken, die am (E)IDE,- SATA und SAS Bus angeschlossen sind
* Hintergründlich nutzen diese den ATA/ATAPI Befehlssatz.
* ATA/ATAPI Befehlssatz
* Deshalb ist es nur bei wenigen IDE zu USB Bridge Adaptern möglich, die dahinter liegende Festplatte anzusprechen.
 
* Um Adapter/Laufwerke zu finden, welche die nötige "ATA command pass through"-Funktionalität bieten, kann man sich an dieser [http://sourceforge.net/apps/trac/smartmontools/wiki/Supported_USB-Devices Liste] orientieren.
Deshalb ist es nur bei wenigen IDE zu USB Bridge Adaptern möglich, die dahinter liegende Festplatte anzusprechen
Festplatten, SSDs und CD/DVD/Blue-Ray-Laufwerke sind typische Geräte, die angesprochen werden können.<br /> Das Paket {{Deb|hdparm}} kann normal über die Paketverwaltung installiert werden.
* Um Adapter/Laufwerke zu finden, welche die nötige "ATA command pass through"-Funktionalität bieten, kann man sich an dieser [https://sourceforge.net/apps/trac/smartmontools/wiki/Supported_USB-Devices Liste] orientieren Festplatten, SSDs und CD/DVD/Blue-Ray-Laufwerke sind typische Geräte, die angesprochen werden können
* Hdparm muss mit Rootrechten ausgeführt werden.<br /> Im Gegensatz zum Pendant {{Deb|blktool}} (Skript-freundlicher) kann hdparm eine ganze Menge mehr (außer SCSI), lässt sich konfigurieren und bringt ein eigenes Initskript mit.<br /> Weitere ähnliche Werkzeuge finden sich in den Paketen {{Deb|sdparm}} und {{Deb|sg3-utils}}.
 
{{Hinweis|Wenn der Chipsatz nur mit dem libata Treiber unterstützt wird, lassen sich viele Funktionen, wie DMA, nicht mehr abrufen und beeinflussen.
; Hdparm muss mit Rootrechten ausgeführt werden
* Das betrifft nicht nur hdparm, sondern ist generell so.
Im Gegensatz zum Pendant [[blktool]] (Skript-freundlicher) kann hdparm eine ganze Menge mehr (außer SCSI)
* Zu erkennen daran, dass selbst IDE Laufwerke nicht mehr als hdX, sondern als SCSI Gerät, also sdX erkannt werden.
* lässt sich konfigurieren
* SATA läuft unabhängig davon immer mit DMA.}}
* bringt ein eigenes Initskript mit
{{Warnung|Hdparm ist grundsätzlich ein Werkzeug für fortgeschrittene Nutzer.
 
Ähnliche Werkzeuge
* [[sdparm]]
* [[sg3-utils]]
 
; Hinweis
<blockquote>
Wenn der Chipsatz nur mit dem libata Treiber unterstützt wird, lassen sich viele Funktionen, wie DMA, nicht mehr abrufen und beeinflussen
* Das betrifft nicht nur hdparm, sondern ist generell so
* Zu erkennen daran, dass selbst IDE Laufwerke nicht mehr als hdX, sondern als SCSI Gerät, also sdX erkannt werden
* SATA läuft unabhängig davon immer mit DMA.
</blockquote>
 
; Warnung
<blockquote>
Hdparm ist ein Werkzeug für fortgeschrittene Nutzer
* Bei allen Beispielen muss darauf geachtet werden, dass Device-Namen auf das eigene System angepasst und die Hinweise der Manpage beachtet werden.}}
* Bei allen Beispielen muss darauf geachtet werden, dass Device-Namen auf das eigene System angepasst und die Hinweise der Manpage beachtet werden.}}
</blockquote>


; Hardwareparameter
; Hardwareparameter
Zeile 19: Zeile 35:
* Ruhemodus
* Ruhemodus
* Energieverwaltung
* Energieverwaltung
* akustische Verwaltung  
* akustische Verwaltung
* DMA-Einstellungen
* DMA-Einstellungen


== Installation ==
== Installation ==
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo apt install hdparm
sudo apt install hdparm
</syntaxhighlight>
</syntaxhighlight>


== Aufruf ==
== Aufruf ==
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo hdparm [Optionen] [Gerät ...]
sudo hdparm [Optionen] [Gerät ...]
</syntaxhighlight>
</syntaxhighlight>


Zeile 37: Zeile 53:
! Unix !! GNU !! Parameter !! Beschreibung
! Unix !! GNU !! Parameter !! Beschreibung
|-
|-
| || || ||  
| || || ||
|-
|-
|}
|}
Zeile 44: Zeile 60:
!Option !! Beschreibung
!Option !! Beschreibung
|-
|-
| -a || Abrufen / Festlegen der Sektoranzahl für das Vorauslesen des Dateisystems (Software).
| -a || Abrufen / Festlegen der Sektoranzahl für das Vorauslesen des Dateisystems (Software)
Wird verwendet, um die Leistung beim sequentiellen Lesen von großen Dateien zu verbessern, indem zusätzliche Blöcke vorab abgerufen werden.
Wird verwendet, um die Leistung beim sequentiellen Lesen von großen Dateien zu verbessern, indem zusätzliche Blöcke vorab abgerufen werden
|-
|-
| -A || Aktivieren (-A1) und deaktivieren (-A0) der Read-Lookahead-Funktion (verbessert die Lese-Performance) eines Datenträgers.
| -A || Aktivieren (-A1) und deaktivieren (-A0) der Read-Lookahead-Funktion (verbessert die Lese-Performance) eines Datenträgers
Ist normalerweise standardmäßig aktiviert.
Ist normalerweise standardmäßig aktiviert
|-
|-
| -B || Advanced Power Management, wenn das Laufwerk dies unterstützt.
| -B || Advanced Power Management, wenn das Laufwerk dies unterstützt


Ein niedriger Wert bedeutet aggressives Power Management und ein hoher Wert bedeutet bessere Leistung.
Ein niedriger Wert bedeutet aggressives Power Management und ein hoher Wert bedeutet bessere Leistung


Mögliche Einstellungen reichen von den Werten 1 bis 127 (die ein Herunterfahren ermöglichen) und den Werten 128 bis 254 (die kein Herunterfahren zulassen).
Mögliche Einstellungen reichen von den Werten 1 bis 127 (die ein Herunterfahren ermöglichen) und den Werten 128 bis 254 (die kein Herunterfahren zulassen)


Der höchste Grad an Power Management wird mit einer Einstellung von 1 und die höchste Leistung mit einer Einstellung von 254 erreicht.
Der höchste Grad an Power Management wird mit einer Einstellung von 1 und die höchste Leistung mit einer Einstellung von 254 erreicht


Wert 255 deaktiviert das Advanced Power Management auf dem Datenträger (wird nicht alle Datenträgern unterstützt, jedoch von den meisten).
Wert 255 deaktiviert das Advanced Power Management auf dem Datenträger (wird nicht alle Datenträgern unterstützt, jedoch von den meisten)
|-
|-
| -I || Ausgabe aller verfügbaren Informationen zu einem Datenträger
| -I || Ausgabe aller verfügbaren Informationen zu einem Datenträger
|-
|-
| -K || Setzen der Flag "keep_features_over_reset".
| -K || Setzen der Flag "keep_features_over_reset"


Durch diese Einstellung kann das Laufwerk die Einstellungen für die Optionen -APSWXZ über einen Soft-Reset beibehalten während die Fehlerbehebungssequenz durchgeführt wird.
Durch diese Einstellung kann das Laufwerk die Einstellungen für die Optionen -APSWXZ über einen Soft-Reset beibehalten während die Fehlerbehebungssequenz durchgeführt wird


Nicht alle Laufwerke unterstützen diese Funktion.
Nicht alle Laufwerke unterstützen diese Funktion
|-
|-
| -M || Abrufen und Festlegen der AAM-Einstellung (Automatic Acoustic Management). Die meisten modernen Festplattenlaufwerke können die Kopfbewegungen beschleunigen, um das Geräusch zu reduzieren.
| -M || Abrufen und Festlegen der AAM-Einstellung (Automatic Acoustic Management). Die meisten modernen Festplattenlaufwerke können die Kopfbewegungen beschleunigen, um das Geräusch zu reduzieren


Werte liegen zwischen 0 und 254.
Werte liegen zwischen 0 und 254
128 ist die leiseste (und daher langsamste) Einstellung und 254 die schnellste (und lauteste).
128 ist die leiseste (und daher langsamste) Einstellung und 254 die schnellste (und lauteste)


Einige Laufwerke haben nur zwei Stufen (leise / schnell), während andere unterschiedliche Stufen zwischen 128 und 254 haben können.
Einige Laufwerke haben nur zwei Stufen (leise / schnell), während andere unterschiedliche Stufen zwischen 128 und 254 haben können


Im Moment unterstützen die meisten Laufwerke nur 3 Optionen zwischen leise und schnell. Mit den Werten 0, 128 und 254.
Im Moment unterstützen die meisten Laufwerke nur 3 Optionen zwischen leise und schnell. Mit den Werten 0, 128 und 254
|-
|-
| -S || Festplatte in den Standby-Modus (Energiesparmodus) versetzen und einstellen des Standby-Zeitlimit (Spindown), wie lange (ohne Festplattenaktivität) gewartet werden muss, bevor der Spindelmotor ausgeschaltet wird, um Strom zu sparen.
| -S || Festplatte in den Standby-Modus (Energiesparmodus) versetzen und einstellen des Standby-Zeitlimit (Spindown), wie lange (ohne Festplattenaktivität) gewartet werden muss, bevor der Spindelmotor ausgeschaltet wird, um Strom zu sparen


Ist dieser ausgeschltet, kann es bis zu 30 Sekunden dauern, bis das Laufwerk auf einen nachfolgenden Festplattenzugriff reagiert.
Ist dieser ausgeschltet, kann es bis zu 30 Sekunden dauern, bis das Laufwerk auf einen nachfolgenden Festplattenzugriff reagiert


Die meisten Laufwerke sind aber schneller.
Die meisten Laufwerke sind aber schneller


Die Kodierung der Standby-Zeitlimits ist sehr speziell.
Die Kodierung der Standby-Zeitlimits ist sehr speziell


Null bedeutet "Standby-Zeitlimit ist deaktiviert": Das Gerät wechselt nicht automatisch in den Standby-Modus.
Null bedeutet "Standby-Zeitlimit ist deaktiviert": Das Gerät wechselt nicht automatisch in den Standby-Modus


Werte von 1 bis 240 geben ein Vielfaches von 5 Sekunden an (1x5s bis 240x5s).
Werte von 1 bis 240 geben ein Vielfaches von 5 Sekunden an (1x5s bis 240x5s)


Werte von 241 bis 251 geben 11 Einheiten in 30-Minuten-Schritten an (241 = 30min bis 251 = 5,5h).
Werte von 241 bis 251 geben 11 Einheiten in 30-Minuten-Schritten an (241 = 30min bis 251 = 5,5h)


Wert 252 bedeutet 21 Minuten Standby-Zeitlimit.
Wert 252 bedeutet 21 Minuten Standby-Zeitlimit


Wert 253 legt eine vom Hersteller definiertes Standby-Zeitlimit zwischen 8 und 12 Stunden fest.
Wert 253 legt eine vom Hersteller definiertes Standby-Zeitlimit zwischen 8 und 12 Stunden fest


Wert 254 reserviert.
Wert 254 reserviert


Wert 255 wird als 21 Minuten plus 15 Sekunden interpretiert.
Wert 255 wird als 21 Minuten plus 15 Sekunden interpretiert
|}
|}


Zeile 106: Zeile 122:


=== Exit-Status ===
=== Exit-Status ===
== Anwendung ==
<syntaxhighlight lang="bash" highlight="1" line>
</syntaxhighlight>
== Anwendung ==
=== Alle Informationen anzeigen ===
# '''hdparm -I /dev/sdb'''
/dev/sdb:
 
ATA device, with non-removable media
        Model Number:      Hitachi HDS722020ALA330               
        Serial Number:      JK1160YAGMUVRT
        Firmware Revision:  JKAOA3MA
        Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6; Revision: ATA8-AST T13 Project D1697 Revision 0b
Standards:
        Used: unknown (minor revision code 0x0029)
        Supported: 8 7 6 5
        Likely used: 8
Configuration:
        Logical        max    current
        cylinders      16383  16383
        heads          16      16
        sectors/track  63      63
        --
        CHS current addressable sectors:    16514064
        LBA    user addressable sectors:  268435455
        LBA48  user addressable sectors:  3907029168
        Logical/Physical Sector size:          512 bytes
        device size with M = 1024*1024:    1907729 MBytes
        device size with M = 1000*1000:    2000398 MBytes (2000 GB)
        cache/buffer size  = 29999 KBytes (type=DualPortCache)
        Form Factor: 3.5 inch
        Nominal Media Rotation Rate: 7200
Capabilities:
        LBA, IORDY(can be disabled)
        Queue depth: 32
        Standby timer values: spec'd by Standard, no device specific minimum
        R/W multiple sector transfer: Max = 16  Current = 0
        Advanced power management level: disabled
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
              Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
              Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
            *    SMART feature set
                Security Mode feature set
            *    Power Management feature set
                Write cache
            *    Look-ahead
            *    Host Protected Area feature set
            *    WRITE_BUFFER command
            *    READ_BUFFER command
            *    DOWNLOAD_MICROCODE
                Advanced Power Management feature set
                Power-Up In Standby feature set
            *    SET_FEATURES required to spinup after power up
                SET_MAX security extension
            *    48-bit Address feature set
            *    Device Configuration Overlay feature set
            *    Mandatory FLUSH_CACHE
            *    FLUSH_CACHE_EXT
            *    SMART error logging
            *    SMART self-test
                Media Card Pass-Through
            *    General Purpose Logging feature set
            *    WRITE_{DMA|MULTIPLE}_FUA_EXT
            *    64-bit World wide name
            *    URG for READ_STREAM[_DMA]_EXT
            *    URG for WRITE_STREAM[_DMA]_EXT
            *    WRITE_UNCORRECTABLE_EXT command
            *    Segmented DOWNLOAD_MICROCODE
            *    Gen1 signaling speed (1.5Gb/s)
            *    Gen2 signaling speed (3.0Gb/s)
            *    Native Command Queueing (NCQ)
            *    Host-initiated interface power management
            *    Phy event counters
            *    NCQ priority information
                Non-Zero buffer offsets in DMA Setup FIS
            *    DMA Setup Auto-Activate optimization
                Device-initiated interface power management
                In-order data delivery
            *    Software settings preservation
            *    SMART Command Transport (SCT) feature set
            *    SCT Write Same (AC2)
            *    SCT Error Recovery Control (AC3)
            *    SCT Features Control (AC4)
            *    SCT Data Tables (AC5)
Security:
        Master password revision code = 65534
                supported
        not    enabled
        not    locked
        not    frozen
        not    expired: security count
        not    supported: enhanced erase
        500min for SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5000cca221c90422
        NAA            : 5
        IEEE OUI        : 000cca
        Unique ID      : 221c90422
Checksum: correct
=== Bestimmte Information anzeigen ===
# hdparm -I /dev/sdb | grep "cache"
        cache/buffer size  = 29999 KBytes (type=DualPortCache)
        Write cache
* Datenträger sdb hat eine "cache size" von 29,999 MB.
=== Advanced Power Management einstellen ===
# '''hdparm -B 254 /dev/sda'''
/dev/sda:
  setting Advanced Power Management level to 0xfe (254)
  APM_level      = 254
* Datenträger sda ist auf höchst mögliche Leistung eingestellt => beste Performance, aber höchster Stromverbrauch.
=== Standby-Modus (Spindown) ===
* Hier auf ein Standby-Zeitlimit von 2min.
# '''hdparm -S 24 /dev/sda'''
/dev/sda:
  setting standby to 24 (2 minutes)
=== hdparm-Einstellungen nach einem Software-Reset beibehalten ===
* Hier Aktivierung bei Datenträger sda.
# '''hdparm -K 1 /dev/sda'''
/dev/sda:
  setting drive keep features to 1 (on)
=== Read-Lookahead-Funktion ===
* Hier Aktivierung beim Datenträger sda.
# '''hdparm -A 1 /dev/sda'''
/dev/sda:
  setting drive read-lookahead to 1 (on)
  look-ahead    =  1 (on)
=== Akkustik ===
==== Akkustiklevel anzeigen ====
# hdparm -M /dev/sda
/dev/sda:
  acoustic      = 254 (128=quiet ... 254=fast)
* Akkustiklevel des Datenträgers sda ist auf "fast" eingestellt => schnell, aber laut.
==== Akkustiklevel einstellen ====
* Hier auf "quiet" => geringere Performance.
# '''hdparm -M 128 /dev/sda'''
/dev/sda:
  setting acoustic management to 128
  acoustic      = 128 (128=quiet ... 254=fast)
=== Lesegeschwindigkeit messen ===
==== Mit Cache ====
# '''hdparm -Tt /dev/sda'''
/dev/sda:
  Timing cached reads:  6962 MB in  2.00 seconds = 3482.67 MB/sec
  Timing buffered disk reads: 358 MB in  3.01 seconds = 119.12 MB/sec
==== Ohne Cache ====
# hdparm -Tt --direct /dev/sda
/dev/sda:
  Timing O_DIRECT cached reads:  498 MB in  2.00 seconds = 248.49 MB/sec
  Timing O_DIRECT disk reads: 360 MB in  3.01 seconds = 119.60 MB/sec
=== Problembehebung ===
== Konfiguration ==
=== Dateien ===
{| class="wikitable options"
|-
! Datei !! Beschreibung
|-
| ||
|-
| ||
|}
Fast alle Einstellungen, die mit hdparm verändert werden, bleiben nur bis zum nächsten Systemstart erhalten. Um dem entgegenzuwirken, gibt es unter '''/etc/hdparm.conf''' eine Konfigurationsdatei, die günstiger Weise schon mit selbsterklärenden Beispielen und Beschreibungen gefüllt ist.
Eines muss noch erwähnt werden. Durch die neuen libata Treiber spielt es keine Rolle mehr, an welchem IDE Kanal ein Laufwerk Master oder Slave ist - die Device-Nodes unter '''/dev''' werden beim Start per Zufall nummeriert.
Will man aber für bestimmte Laufwerke bestimmte Einstellungen setzen, bietet es sich an, die automatisch von udev generierten Symbolischen Links unter '''/dev/disk/''' zu verwenden.
Demnach kann ein Block zum Beispiel so aussehen:
/dev/disk/by-id/ata-Hitachi_HDT725050VLA380_VFJ401R41S702K {
        apm = 128
        acoustic_management = 128
        spindown_time = 240
}
Sollten Probleme auftreten, weil hdparm zu früh gestartet wird, kann man probieren, das Init-Skript mit einer höheren Startnummer zu versehen.
Beispiel:
{{RootShell|mv /etc/rcS.d/S07hdparm /etc/rcS.d/S38hdparm}}
''Anmerkung: Nach dem Resume von einem Suspend-to-ram/to-disk wird die hdparm.conf leider übergangen und die getätigten Einstellungen überschrieben. Zur Abhilfe muss man sich entweder an der Datei '''/etc/default/hdparm''' oder an entsprechenden pm-util Skripten vergreifen bzw.&nbsp;eigene erstellen, wie hier vorgeschlagen: {{DebianforumDiskussion|138254}}''




Zeile 319: Zeile 130:
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}


==== Dokumentation ====
=== Dokumentation ===


; Man-Page  
; Man-Page
# https://man7.org/linux/man-pages/man8/hdparm.8.html
# https://man7.org/linux/man-pages/man8/hdparm.8.html
; Info-Pages
; Info-Pages


==== Links ====
=== Links ===
===== Projekt =====
==== Projekt ====


===== Weblinks =====
==== Weblinks ====
# [https://de.wikipedia.org/wiki/Hdparm https://de.wikipedia.org/wiki/Hdparm]
# [https://de.wikipedia.org/wiki/Hdparm https://de.wikipedia.org/wiki/Hdparm]
# [https://linuxwiki.de/hdparm https://linuxwiki.de/hdparm]
# [https://linuxwiki.de/hdparm https://linuxwiki.de/hdparm]
# [https://wiki.ubuntuusers.de/Festplatten-Geschwindigkeitstest/ https://wiki.ubuntuusers.de/Festplatten-Geschwindigkeitstest/]
# [https://wiki.ubuntuusers.de/Festplatten-Geschwindigkeitstest/ https://wiki.ubuntuusers.de/Festplatten-Geschwindigkeitstest/]
# [https://askubuntu.com/questions/87035/how-to-check-hard-disk-performance https://askubuntu.com/questions/87035/how-to-check-hard-disk-performance]
# [https://askubuntu.com/questions/87035/how-to-check-hard-disk-performance https://askubuntu.com/questions/87035/how-to-check-hard-disk-performance]
# http://sourceforge.net/projects/hdparm
# https://sourceforge.net/projects/hdparm
# http://de.wikipedia.org/wiki/Hdparm
# https://de.wikipedia.org/wiki/Hdparm
# http://debiananwenderhandbuch.de/hdparm%20Festplattenparameter.html
# https://debiananwenderhandbuch.de/hdparm%20Festplattenparameter.html
# http://wiki.ubuntuusers.de/Archiv/DMA
# https://wiki.ubuntuusers.de/Archiv/DMA
# http://linuxwiki.de/hdparm
# https://linuxwiki.de/hdparm
# http://de.wikipedia.org/wiki/ATA/ATAPI
# https://de.wikipedia.org/wiki/ATA/ATAPI
# http://de.wikipedia.org/wiki/Host_Protected_Area
# https://de.wikipedia.org/wiki/Host_Protected_Area
# http://www.heise.de/ct/artikel/Baerendienst-289866.html
# https://www.heise.de/ct/artikel/Baerendienst-289866.html
# http://wiki.ubuntuusers.de/SSD/Secure-Erase
# https://wiki.ubuntuusers.de/SSD/Secure-Erase
# https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
# https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
# http://www.serialata.org
# https://www.serialata.org


{{DEFAULTSORT:new}}
{{DEFAULTSORT:hdparm}}
{{DISPLAYTITLE:new}}
{{DISPLAYTITLE:hdparm}}
 
[[Kategorie:new]]
 
</noinclude>
 
= TMP =
== Leistungsoptimierungen  ==
 
Insbesondere bei älterer Hardware kann es vorkommen, dass sich das System träge anfühlt, Kopiervorgänge ewig dauern oder Videos beim Abspielen ruckeln. Da die Festplatte oft das langsamste Element in einem PC ist, sollte man hier mit der Suche ansetzen.
 
=== Durchsatztest  ===
 
{{Hinweis|Um hier wirklich akkurate und realistische Ergebnisse zu erhalten, sollte man sicherstellen, dass zum Zeitpunkt der jeweiligen Tests keine anderen Anwendungen intensiv genau das betreffende Laufwerk oder die CPU belasten (z.&nbsp;B.&nbsp;im Hintergrund arbeitende Indizierungsdienste, Backups, automatische Updates usw.). Das kann man sehr praktisch mit {{Deb|iotop}}, {{Deb|atop}}, {{Deb|htop}}, ''top'' oder anderen Tools feststellen.}}
Hierfür dienen die hdparm-Schalter „-t“ und „-T“.
 
;-T
:Testet die Performance des System Caches. Hierbei wird ohne Festplattenzugriff direkt aus dem Linux Puffer Cache gelesen und somit der Durchsatz des Prozessors, Caches und Arbeitsspeichers bestimmt. Der Aufruf sollte 2 oder mehrmals wiederholt werden, um einen stabilen Wert zu erhalten. Auch wenn es keinen Einfluss hat, muss trotzdem ein ''device'' angegeben werden.
:Beispielsweise auf einem modernen System mit Mehrkern-CPU und DDR3 Ram könnte die Ausgabe so aus sehen:
:{{RootShell|hdparm -T /dev/sda}}
 
:<pre>/dev/sda:
:Timing cached reads: 6678 MB in 2.00 seconds = 3345.76 MB/sec</pre>
:Auf einem älteren Pentium 4 mit DDR1 Speicher:
:{{RootShell|hdparm -T /dev/hda}}
 
:<pre>/dev/hda:
:Timing cached reads: 540 MB in 2.01 seconds = 269.23 MB/sec</pre>
 
;-t
:Dieser Test liest direkt über den System Cache vom angegebenen Laufwerk. Hierbei ist zu beachten, dass dies die reine Netto-Datenrate zwischen Laufwerk und Chipsatz und dem vorhandenen Kernel Modul ist. Deshalb sollte der Test wie bei „-T“ mehrmals wiederholt werden, wobei möglichst darauf geachtet werden sollte, dass keine weiteren Festplattenzugriffe stattfinden, die das Ergebnis verfälschen würden.
;--direct
:Dieser Schalter, in Verbindung mit „-t“, übergeht selbst den System Cache und liest so direkt vom Laufwerk. Der Wert gibt so den reinen Durchsatz, welchen Laufwerk, Chipsatz und Treiber bieten.
 
{{Hinweis|Erst ab hdparm Version 5.7 und Debian Sarge vorhanden.}}
 
;--offset
:Hier kann ein Versatz in GiB angegeben werden, ab dem "hdparm -t" die Messung vor nimmt. Mit dem Hintergrund, dass mechanische Laufwerke (z.&nbsp;B.&nbsp;Festplatten) am Anfang, also im äußersten Bereich der Platter, schneller sind, als im Inneren. Das Verhalten kann mit diesem Schalter nachvollzogen werden. Bei Flash-Speichern gibt es womöglich keine Variationen.
:''Anmerkung: Der Offset sollte maximal ca. 10% unter der Laufwerkskapazität liegen.''
 
{{Hinweis|Erst ab hdparm Version 9.29 und Debian Squeeze vorhanden.}}
 
Beispiele an einer 500 GB SATA Festplatte:
{{RootShell|hdparm  -t /dev/sdc}}
<pre>/dev/sdc:
Timing buffered disk reads: 230 MB in  3.00 seconds =  76.55 MB/sec</pre>
Ein normaler Test.
{{RootShell|hdparm  --direct -t /dev/sdc}}
<pre>/dev/sdc:
Timing O_DIRECT disk reads: 232 MB in  3.02 seconds =  76.86 MB/sec</pre>
Mit --direct gibt es quasi keinen Unterschied auf diesem System.
{{RootShell|hdparm --direct --offset 250 -t /dev/sdc}}  
<pre>/dev/sdc:
Timing O_DIRECT disk reads (offset 250 GB): 196 MB in  3.02 seconds =  64.83 MB/sec</pre>
Bei 250 GiB, also der halben Kapazität, geht der Durchsatz schon deutlich zurück.
{{RootShell|hdparm  --direct --offset 460 -t /dev/sdc}}
<pre>/dev/sdc:
Timing O_DIRECT disk reads (offset 460 GB): 116 MB in  3.03 seconds =  38.34 MB/sec</pre>
Kurz vor Ende ist er auf dem Minimum. Das ist bei allen Festplatten ähnlich, ungefähr ein Unterschied von 50% zum äußersten Bereich.
 
''Anmerkung: Die grafische Darstellung der Schreib- und Leserate sowie der Zugriffzeiten über den gesamten Bereich können seit Squeeze mit palimpsest aus dem Paket {{Deb|gnome-disk-utility}} durchgeführt werden.''
 
=== Optimierungen  ===
Die Wirkung und Unterstützung unterscheidet sich bei den Herstellern und Modellen. Die Schalter mit ihrer Funktion:
 
*'''-a''' Stellt die Sektorenzahl für den FS-Readahead ein.
*'''-A''' schaltet die  „read-lookahead“-Funktion einer IDE-Festplatte ein oder aus. Normalerweise ist diese Funktion bereits aktiviert.
*'''-c''' zeigt den Status oder aktiviert den  (E)IDE-32-Bit-I/O-Support. Die Parameter hier für sind: 0, um den Support zu deaktivieren, und 1, um den Support zu aktivieren. Der Wert 3 aktiviert den 32-Bit-Support mit einer speziellen Sync-Sequenz, die von einigen Chipsets benötigt wird. Diese Option funktioniert mit fast allen Chipsets, bringt jedoch etwas mehr Overhead mit sich. Wird kein Parameter angegeben, so wird die aktuelle Einstellung angezeigt. Wirkt sich nur auf die Verbindung zwischen Chipsatz und PCI Bus aus.
*'''-d''' zeigt, ob für das genannte Gerät der DMA-Modus benutzt wird, oder aktiviert/deaktiviert den Modus. Das Flag „using_dma“ funktioniert nur mit wenigen Kombinationen aus Festplatte und Controllern. Beispielsweise wird beim Intel Triton Chipset der Bus-Master-DMA-Modus in Verbindung mit vielen Festplatten unterstützt. Wenn möglich, sollte die Option -X34 zusammen mit -d1 benutzt werden, um sicherzustellen, dass das Laufwerk selbst den Multiword DMA Modus 2 unterstützt.
*'''-E''' setzt die CD/DVD Geschwindigkeit. Wird normalerweise nicht benötigt und manchmal ignoriert.
*'''-f''' synchronisiert und speichert den Cache-Puffer der Festplatte beim Beenden des Programms. Dieser Vorgang wird auch bei den Optionen -t und -T durchgeführt. Gleiches wird mit dem Konsolenbefehl "sync" bewirkt.
*'''-F''' schreibt, wenn unterstützt, den Schreibcache des Laufwerks.
*'''-g''' zeigt die Festplattengeometrie, also Angaben zu Zylinder, Köpfe, (Sektoren), die Größe (in Sektoren) des Laufwerkes und den Offset (in Sektoren) des Devices vom Anfang der Festplatte.
*'''-k''' liest oder setzt das Flag ''"keep_settings_over_reset"'' für das Laufwerk. Wenn diese Option gesetzt ist, werden die Optionen -dmu über einen (Soft-) Reset hinaus gespeichert.
*'''-K''' setzt das Flag ''"keep_features_over_reset"''. Das Setzen dieser Option rettet die Einstellungen -APSWXZ über einen (Soft-) Reset hinaus. Diese Option wird nicht von allen Laufwerken unterstützt.
*'''-m''' Gibt an, wie viele Sektoren mit einem I/O Interrupt gleichzeitig geholt werden. Als Wert 0, 2 oder ein vielfaches davon.
*'''-M''' stellt das Automatic Acoustic Management (AAM) ein. Steuert die Geschwindigkeit der Kopfbewegungen, was die Geräuschentwicklung und die Performance beim Suchen beeinflusst. Theoretisch von 1 ...255. Viele unterstützen nur drei Zustände, die oft auf 0 = aus; 128 = leise und 254 = laut fallen.
*'''-p''' versucht, das IDE-Interface-Chipset auf den gewünschten PIO-Modus zu setzen oder den bestmöglichen PIO-Modus einzustellen.
*'''-q''' unterdrückt die Ausgabe von Meldungen für die folgenden Optionen. Dies kann eingesetzt werden, wenn  hdparm aus einer Datei beim Systemstart heraus aufgerufen wird. Diese Option hat keine Auswirkungen auf die Optionen -i,  -v, -t oder  -T.
*'''-r''' liest oder setzt das ''„Read-Only-Flag“''. Damit ist kein Schreiben auf das Laufwerk mehr möglich.
*'''-u''' liest oder setzt das ''„interrupt-unmask“''-Flag. Dies kann auf vielen Systemen die Reaktionszeit des Systems verbessern, ist aber mit Vorsicht einzusetzen, da nicht alle Chipsets diese Funktion richtig umsetzen können. Ein Wert von 1 aktiviert diese Funktion.
*'''-W''' aktiviert oder deaktiviert bei einem IDE-Laufwerk die Funktion ''"write-caching"'' Erhöht die Schreibleistung, riskiert bei plötzlichem Stromausfall aber Datenverlust (da der Festplattencache nicht geschrieben werden kann). Dies ist Standardmäßig aktiviert.
*'''-X''' setzt den IDE-Übertragungsmodus bei neueren (E)IDE/ATA2-Laufwerken. Diese Option wird meistens zusammen mit -d1 benutzt, um den DMA-Modus von/zu einem Laufwerk mit Chipsets, die dies unterstützen (beispielsweise Intel 430FX Triton), zu aktivieren. Dort können dann auch mit -X34  „Multiword-DMA-mode2“-Übertragungen aktiviert werden. Die Option -X66 aktiviert UltraDMA-Mode2-Übertragungen. Nützlich, um z.&nbsp;B.&nbsp;Übertragungsfehler (CRC Fehler) zu vermeiden und einem schrittweisen, automatischen herabsetzen durch ein schlechtes Kabel zuvor zu kommen.
 
== Energieverwaltung  ==
Für die Energieverwaltung lassen sich folgende Schalter verwenden.
 
*'''-B''' setzt den APM Parameter, wenn es unterstützt wird. Die Implementierungen der Hersteller sind sehr verschieden, jedoch ist folgende Einteilung üblich: 1 ... 127 beinhaltet ein Spin-Down; 128 ... 254 nicht. Die aggressivste Einstellung ist 1, die schwächste 254. 255 schaltet APM aus, wenn möglich. Eine wichtige Einstellung, um die Lebensdauer bestimmter Festplatten zu verlängern; u.a. hier diskutiert: {{DebianforumDiskussion|101050}}
*'''-C''' zeigt den aktuellen  „Power-Mode-Status“ einer IDE-Festplatte an. Dieser kann folgende Werte annehmen: „unknown“ - Das Laufwerk unterstützt dieses Kommando nicht; „active“/„idle“ - Normalbetrieb; „standby“ - Low Power Modus, die Festplatte dreht sich nicht oder „schläft“ sogar komplett. Die Optionen -S, -y, -Y und -Z können zur Veränderung der IDE-Power-Modes verwendet werden.
*'''--idle-immediate''' versucht einen geringeren Energiemodus zu erreichen. Die Spindel läuft weiter.
*'''--idle-unload''' versucht die Köpfe zu parken. Die Spindel läuft weiter. Beide Optionen erst ab hdparm Version 9.3.
*'''-S''' setzt die Standby-Zeit des Gerätes. Nach der eingestellten Zeit fährt die Festplatte in den Ruhezustand (entspricht -y). Ein Wert von 0 schaltet diese Funktion aus, maximal bis 255. Die Einteilung ist nicht linear, man muss etwas probieren um auf die gewünschte Zeit zu kommen.
*'''-y''' setzt das Laufwerk sofort in den Standby Modus, die Spindel stoppt dabei. Bei Zugriffen wacht es automatisch wieder auf.
*'''-Y''' setzt das Laufwerk in den Sleep Modus, welcher am wenigsten Energie benötigt. Die Spindel stoppt auch hier. Normalerweise wird es bei Zugriffen automatisch aufgeweckt. Die benötigte Startzeit ist etwas länger als im Standby Modus.
*'''-Z''' deaktiviert die automatische Energiespar-Funktion einiger älterer Seagate Festplatten um ungünstige Spin-Downs zu verhindern.


[[Kategorie:Linux/Storage/Hardware]]
[[Kategorie:Linux/Storage/Hardware]]
[[Kategorie:Linux/Befehl]]
[[Kategorie:Linux/Befehl]]


{{DEFAULTSORT:hdparm}}
</noinclude>
{{DISPLAYTITLE:hdparm}}

Aktuelle Version vom 11. Mai 2025, 13:39 Uhr

hdparm - anzeigen, testen und setzen von Hardwareparametern für ATA-Festplattenlaufwerke

Beschreibung

hdparm zeigt und setzt Parameter von Laufwerken, die am (E)IDE,- SATA und SAS Bus angeschlossen sind

  • ATA/ATAPI Befehlssatz

Deshalb ist es nur bei wenigen IDE zu USB Bridge Adaptern möglich, die dahinter liegende Festplatte anzusprechen

  • Um Adapter/Laufwerke zu finden, welche die nötige "ATA command pass through"-Funktionalität bieten, kann man sich an dieser Liste orientieren Festplatten, SSDs und CD/DVD/Blue-Ray-Laufwerke sind typische Geräte, die angesprochen werden können
Hdparm muss mit Rootrechten ausgeführt werden

Im Gegensatz zum Pendant blktool (Skript-freundlicher) kann hdparm eine ganze Menge mehr (außer SCSI)

  • lässt sich konfigurieren
  • bringt ein eigenes Initskript mit

Ähnliche Werkzeuge

Hinweis

Wenn der Chipsatz nur mit dem libata Treiber unterstützt wird, lassen sich viele Funktionen, wie DMA, nicht mehr abrufen und beeinflussen

  • Das betrifft nicht nur hdparm, sondern ist generell so
  • Zu erkennen daran, dass selbst IDE Laufwerke nicht mehr als hdX, sondern als SCSI Gerät, also sdX erkannt werden
  • SATA läuft unabhängig davon immer mit DMA.
Warnung

Hdparm ist ein Werkzeug für fortgeschrittene Nutzer

  • Bei allen Beispielen muss darauf geachtet werden, dass Device-Namen auf das eigene System angepasst und die Hinweise der Manpage beachtet werden.}}
Hardwareparameter
  • Laufwerks-Caches
  • Ruhemodus
  • Energieverwaltung
  • akustische Verwaltung
  • DMA-Einstellungen

Installation

sudo apt install hdparm

Aufruf

sudo hdparm [Optionen] [Gerät ...]

Optionen

Unix GNU Parameter Beschreibung
Option Beschreibung
-a Abrufen / Festlegen der Sektoranzahl für das Vorauslesen des Dateisystems (Software)

Wird verwendet, um die Leistung beim sequentiellen Lesen von großen Dateien zu verbessern, indem zusätzliche Blöcke vorab abgerufen werden

-A Aktivieren (-A1) und deaktivieren (-A0) der Read-Lookahead-Funktion (verbessert die Lese-Performance) eines Datenträgers

Ist normalerweise standardmäßig aktiviert

-B Advanced Power Management, wenn das Laufwerk dies unterstützt

Ein niedriger Wert bedeutet aggressives Power Management und ein hoher Wert bedeutet bessere Leistung

Mögliche Einstellungen reichen von den Werten 1 bis 127 (die ein Herunterfahren ermöglichen) und den Werten 128 bis 254 (die kein Herunterfahren zulassen)

Der höchste Grad an Power Management wird mit einer Einstellung von 1 und die höchste Leistung mit einer Einstellung von 254 erreicht

Wert 255 deaktiviert das Advanced Power Management auf dem Datenträger (wird nicht alle Datenträgern unterstützt, jedoch von den meisten)

-I Ausgabe aller verfügbaren Informationen zu einem Datenträger
-K Setzen der Flag "keep_features_over_reset"

Durch diese Einstellung kann das Laufwerk die Einstellungen für die Optionen -APSWXZ über einen Soft-Reset beibehalten während die Fehlerbehebungssequenz durchgeführt wird

Nicht alle Laufwerke unterstützen diese Funktion

-M Abrufen und Festlegen der AAM-Einstellung (Automatic Acoustic Management). Die meisten modernen Festplattenlaufwerke können die Kopfbewegungen beschleunigen, um das Geräusch zu reduzieren

Werte liegen zwischen 0 und 254 128 ist die leiseste (und daher langsamste) Einstellung und 254 die schnellste (und lauteste)

Einige Laufwerke haben nur zwei Stufen (leise / schnell), während andere unterschiedliche Stufen zwischen 128 und 254 haben können

Im Moment unterstützen die meisten Laufwerke nur 3 Optionen zwischen leise und schnell. Mit den Werten 0, 128 und 254

-S Festplatte in den Standby-Modus (Energiesparmodus) versetzen und einstellen des Standby-Zeitlimit (Spindown), wie lange (ohne Festplattenaktivität) gewartet werden muss, bevor der Spindelmotor ausgeschaltet wird, um Strom zu sparen

Ist dieser ausgeschltet, kann es bis zu 30 Sekunden dauern, bis das Laufwerk auf einen nachfolgenden Festplattenzugriff reagiert

Die meisten Laufwerke sind aber schneller

Die Kodierung der Standby-Zeitlimits ist sehr speziell

Null bedeutet "Standby-Zeitlimit ist deaktiviert": Das Gerät wechselt nicht automatisch in den Standby-Modus

Werte von 1 bis 240 geben ein Vielfaches von 5 Sekunden an (1x5s bis 240x5s)

Werte von 241 bis 251 geben 11 Einheiten in 30-Minuten-Schritten an (241 = 30min bis 251 = 5,5h)

Wert 252 bedeutet 21 Minuten Standby-Zeitlimit

Wert 253 legt eine vom Hersteller definiertes Standby-Zeitlimit zwischen 8 und 12 Stunden fest

Wert 254 reserviert

Wert 255 wird als 21 Minuten plus 15 Sekunden interpretiert


Parameter

Umgebungsvariablen

Exit-Status

Anhang

Siehe auch

Dokumentation

Man-Page
  1. https://man7.org/linux/man-pages/man8/hdparm.8.html
Info-Pages

Links

Projekt

Weblinks

  1. https://de.wikipedia.org/wiki/Hdparm
  2. https://linuxwiki.de/hdparm
  3. https://wiki.ubuntuusers.de/Festplatten-Geschwindigkeitstest/
  4. https://askubuntu.com/questions/87035/how-to-check-hard-disk-performance
  5. https://sourceforge.net/projects/hdparm
  6. https://de.wikipedia.org/wiki/Hdparm
  7. https://debiananwenderhandbuch.de/hdparm%20Festplattenparameter.html
  8. https://wiki.ubuntuusers.de/Archiv/DMA
  9. https://linuxwiki.de/hdparm
  10. https://de.wikipedia.org/wiki/ATA/ATAPI
  11. https://de.wikipedia.org/wiki/Host_Protected_Area
  12. https://www.heise.de/ct/artikel/Baerendienst-289866.html
  13. https://wiki.ubuntuusers.de/SSD/Secure-Erase
  14. https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
  15. https://www.serialata.org