Zum Inhalt springen

Hdparm: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 110: Zeile 110:
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
</syntaxhighlight>
</syntaxhighlight>
== Anwendung ==
=== Alle Informationen anzeigen ===
=== Alle Informationen anzeigen ===
  # '''hdparm -I /dev/sdb'''
  # '''hdparm -I /dev/sdb'''

Version vom 10. März 2025, 12:26 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.

  • Hintergründlich nutzen diese den 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.
Das Paket Vorlage:Deb kann normal über die Paketverwaltung installiert werden.

  • Hdparm muss mit Rootrechten ausgeführt werden.
    Im Gegensatz zum Pendant Vorlage:Deb (Skript-freundlicher) kann hdparm eine ganze Menge mehr (außer SCSI), lässt sich konfigurieren und bringt ein eigenes Initskript mit.
    Weitere ähnliche Werkzeuge finden sich in den Paketen Vorlage:Deb und Vorlage:Deb.

Vorlage:Hinweis Vorlage:Warnung

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

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

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: Vorlage:RootShell

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. eigene erstellen, wie hier vorgeschlagen: Vorlage:DebianforumDiskussion



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. http://sourceforge.net/projects/hdparm
  6. http://de.wikipedia.org/wiki/Hdparm
  7. http://debiananwenderhandbuch.de/hdparm%20Festplattenparameter.html
  8. http://wiki.ubuntuusers.de/Archiv/DMA
  9. http://linuxwiki.de/hdparm
  10. http://de.wikipedia.org/wiki/ATA/ATAPI
  11. http://de.wikipedia.org/wiki/Host_Protected_Area
  12. http://www.heise.de/ct/artikel/Baerendienst-289866.html
  13. http://wiki.ubuntuusers.de/SSD/Secure-Erase
  14. https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
  15. http://www.serialata.org