hdparm
Der Shell-Befehl hdparm dient zum Lesen und Setzen von Parametern für ATA-Datenspeicher unter Linux. Mit hdparm können unter anderem die Einstellungen für Direct Memory Access, Tagged Command Queuing sowie der ATAPI-Transfermodus geändert werden. In vielen Fällen kann damit bei EIDE-Festplatten sowie CD-ROM- und DVD-Laufwerken die Geschwindigkeit deutlich erhöht werden, aber hdparm-Befehle können auch zu Datenverlust und sogar zu Beschädigung von Festplatten und Controllern führen.
hdparm hat keine grafische Benutzeroberfläche.
Konfiguration
Um beim Bootvorgang die richtigen Einstellungen automatisch zu starten, wird der vollständige hdparm-Befehl in eines der Linux-Startskripte eingebaut.
Linux-Distribution | Konfigurationsdatei |
---|---|
Mandriva | /etc/rc.d/rc.local |
Debian | /etc/rcS.d/bootmisc.sh |
SUSE Linux | /etc/init.d/boot.local |
Unter SUSE Linux besteht auch die Möglichkeit, DMA über YAST einzurichten (Menü "Hardware > IDE DMA Modus").
Verwendung
Anzeige der aktivierten Eigenschaften der ersten Festplatte.
# hdparm /dev/hda /dev/hda: multcount = 16 (on) IO_support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 1 (on) keepsettings = 0 (off) readonly = 0 (off) readahead = 256 (on) geometry = 65535/16/63, sectors = 240121728, start = 0
Anzeige der von der ersten Festplatte unterstützten Modi. Der beste UDMA-Modus findet sich z. B. in der entsprechenden Zeile ganz rechts (hier "udma2").
# hdparm -i /dev/hda /dev/hda: Model=Maxtor 6Y120L0, FwRev=YAR41BW0, SerialNo=Y31P1XGE Config={ Fixed } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57 BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=16 CurCHS=4047/16/255, CurSects=16511760, LBA=yes, LBAsects=240121728 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 AdvancedPM=yes: disabled (255) WriteCache=enabled Drive conforms to: (null): * signifies the current active mode
Anzeige der Grösse der ersten Festplatte.
# hdparm -I /dev/hda | grep size device size with M = 1024*1024: 117246 MBytes device size with M = 1000*1000: 122942 MBytes (122 GB)
Anzeige von Modellname und Seriennummer der ersten Festplatte.
# hdparm -I /dev/hda | grep Number Model Number: Maxtor 6Y120L0 Serial Number: Y31P1XGE
Test der Performance der ersten Fesplatte. Der obere Wert misst dabei den Datendurchsatz bei einem Lesezugriff auf den "Linux Buffer Cache". Der uasschlaggebende Wert darunter zeigt die Übertragungsrate beim Lesen von der Festplatte oder dem Laufwerk. Idealerweise wird der Test durchgeführt, wenn der Rechner nicht anderweitig arbeitet. Zur Erzielung eines verlässlichen Werts muss der Test ausserdem mehrfach wiederholt werden.
# hdparm -Tt /dev/hda /dev/hda: Timing cached reads: 1392 MB in 2.00 seconds = 695.96 MB/sec Timing buffered disk reads: 156 MB in 3.01 seconds = 51.86 MB/sec
Aktivierung von DMA für die erste Festplatte. Die Option "-d1" aktiviert DMA und wählt gewöhnlich den besten verfügbaren Wert. Um das zusätzlich sicherzustellen, wird der Modus manuell auch über die Option "-X69" festgelegt. Die Zahl ergibt sich wie folgt: der bestmögliche UDMA-Modus für die aktuelle Festplatte (hier 2) wird mit der Zahl 64 addiert. Ähnliche Additionen werden auch benötigt, um DMA und PIO einzustellen (siehe "man hdparm"). Zum Testen der Stabilität der so veränderten Werte kann etwas Musik oder ein Film abgespielt werden - stürzt dabei der Rechner ab, sollte besser ein weniger schneller DMA-Modus gewählt oder die Funktion ganz abgeschaltet werden.
# hdparm -d1 -X66 /dev/hda