claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 01/2006

Laufwerke und Festplatten tunen

Blitzschnelle DVDs

von Kristian Kißling


Ruckelt die Film-DVD beim Abspielen, liegt die Lösung oft ganz nah. Mit hdparm beschleunigen Sie DVD-Laufwerke -- aber auch Festplatten und CD-ROMs.

Ihr Computer arbeitet recht schnell, das DVD-Laufwerk läuft in 50-facher Geschwindigkeit -- aber wenn Sie eine Film-DVD einlegen, ruckelt das Bild beim Abspielen. Wie kann das sein? Des Rätsels Lösung verbirgt sich hinter dem Begriff DMA, der für Direct Memory Access steht. Es handelt sich um eine Technik, die nicht nur bei fast alle neuen DVD-Laufwerken, sondern auch bei CD-ROM-Laufwerken und Festplatten zum Einsatz kommt.

Dabei wandern die Daten von einem Laufwerk oder einer Festplatte über einen so genannten DMA-Kanal direkt in den Hauptspeicher. Das belastet die CPU nicht, die Übertragung der Daten steuern so genannte DMA-Controller, die auf dem Mainboard sitzen -- zusätzlich müssen das BIOS und die Laufwerke selbst DMA unterstützen.

Einerseits erhöht DMA den Datendurchsatz -- es werden also mehr Daten in derselben Zeit übertragen -- andererseits entlastet diese Technik die CPU, weshalb Filme flüssiger laufen, das Kopieren von Daten schneller wird und weniger Probleme beim Schreiben auf DVDs auftreten: So optimieren Sie dank DMA den Datenaustausch mit Ihrer Festplatte und den Laufwerken.

Gerade aktuelle Linux-Versionen erkennen und aktivieren DMA gewöhnlich während der Installation, aber bei der Arbeit mit älteren und raren Laufwerken kommt es durch DMA mitunter zu Komplikationen. Bevor Sie erfahren, ob Ihre Laufwerke DMA-fähig sind, ob das Feature aktiv ist und wie Sie es aktivieren, ist eine Klärung der Begriffe "DMA", "UDMA Modus 0" und "ATA" hilfreich.

DaMAls...

DMA gibt es etwa seit 1989, als der amerikanische Festplattenhersteller Western Digital den ATA-Standard für die Schnittstelle zwischen Computern und Massenspeichern entwickelte. DMA war Teil der ATA-Spezifikation: Im so genannten DMA-single-2-Modus übertrugen Laufwerke damals 8,3 MByte an Daten pro Sekunde. In den folgenden Jahren wurde der ATA-Standard und mit ihm DMA weiter entwickelt: Der ATA4-Standard von 1997 beinhaltete erstmals das so genannte Ultra DMA (UDMA), das im Modus 0 circa 16,7 MByte/s übertrug und abwärtskompatibel zu DMA war. Der Nachfolger -- UDMA Modus 2 -- brachte es schon auf 33,3 MByte/s. Als Versionsnummer setzt man für die UDMA-Standards heute gewöhnlich die Datenübertragungsrate ein: Der aktuelle UDMA133-Standard erreicht also eine Übertragungsrate von 133 MByte/s -- allerdings nur theoretisch. In der Praxis liegen die Übertragungsraten mitunter sehr weit unter dem erreichbaren Datendurchsatz.

Häufig erkennt Linux Massenspeicher automatisch und aktiviert dann den DMA-Modus. Das geschieht entweder über das BIOS oder beim Booten. Allerdings führt die Aktivierung von DMA unter Umständen dazu, dass der Computer regelmäßig abstürzt, Laufwerke nicht erkennt oder das System im laufenden Betrieb einfriert. Schuld an diesem oft willkürlich wirkenden Krankheitsbild sind beispielsweise die Flachbandkabel, die Laufwerke, Festplatten und Mainboard miteinander verbinden: Idealerweise sollten sie 45 cm lang sein, in der Praxis sind sie mitunter wesentlich länger.

Einen Gang zulegen

Wollen Sie wissen, ob Ihr DVD-Laufwerk oder Ihre Festplatte auch DMA unterstützen und ob es bereits aktiv ist, hilft hdparm [1]. Das Programm steuern Sie mit Root-Rechten über die Kommandozeile, es gibt Auskunft über den DMA-Status Ihrer Massenspeicher und schaltet auf Wunsch DMA an oder aus.

Zunächst müssen Sie wissen, wie die Laufwerke und Festplatten heißen. Legen Sie dazu eine beliebige CD oder DVD in Ihr Laufwerk ein, drücken Sie [Alt-F2], geben Sie konsole ein und tippen Sie su root. Nach der Eingabe des Root-Passworts rufen Sie mount auf. Der Befehl listet die eingebundenen Laufwerke und Festplatten mit ihren Kürzeln auf (Abbildung 1), interessant ist die Zeile:

/dev/hdb on /media/cdrom0

Abb. 1: Führen Sie den Befehl "mount" im Root-Modus aus, erfahren Sie die Namen der eingebundenen Laufwerke und Festplatten.

Ihr DVD-Laufwerk heißt in diesem Beispiel hdb und wird in das Verzeichnis /media als cdrom0 eingebunden. Diese Angaben benötigt hdparm, um genauere Informationen zum DMA-Status des Laufwerks zu sammeln. Geben Sie nun hdparm -d /dev/hdb ein, folgt eine Ausgabe wie

/dev/hdb
 using_dma = 0(off)

Ist DMA aktiviert -- using_dma = 1 (on) -- klappt ja alles wunderbar: Wiederholen Sie den Befehl in diesem Fall einfach für weitere Massenspeicher. Ist DMA ausgeschaltet, prüfen Sie zunächst, ob Ihr Laufwerk überhaupt DMA unterstützt: Es gibt alte Laufwerke, die nicht DMA-fähig sind. Die Ausgabe des Befehls hdparm -i /dev/hdb informiert Sie darüber, welche DMA-Modi Ihr Laufwerk beherrscht (Abbildung 2). Die Zeile lautet:

UDMA modes: udma0 udma1 *udma2

Abb. 2: Die DMA-Fähigkeit testen: "hdparm -i" zeigt Ihnen in der Zeile "UDMA modes", welche DMA-Modi Ihr Laufwerk unterstützt.

Nehmen Sie an dieser Stelle gleich auch einen Performance-Test vor, der Ihnen zeigt, wie schnell die aktuelle Datenübertragung ist: Der Befehl hdparm -Tt /dev/hdb liefert -- wie Abbildung 3 zeigt -- zwei Ergebnisse: Der obere Wert misst den Datendurchsatz bei einem Lesezugriff auf den "Linux Buffer Cache", der untere Wert zeigt Ihnen, wie hoch die Übertragungsrate beim Lesen von Ihrem DVD-Laufwerk ist. Idealerweise sollten Sie diesen Test vornehmen, wenn der Computer nicht anderweitig arbeitet und ihn auch zwei- bis dreimal wiederholen. Nun schreiten Sie zur Tat: Mit hdparm -d1 /dev/hdb aktivieren Sie den DMA-Modus Ihres Laufwerks -- der anschließende Performance-Test zeigt, dass dank DMA die Datenübertragungsrate um mehr als 100% gestiegen ist.

Abb. 3: Performance-Gewinne: Vor der Aktivierung von DMA überträgt das DVD-Laufwerk 3,57 MByte/s, nachher um die 9 MByte/s: eine Steigerung von über 100%.

Um zu ermitteln, ob die ganze Angelegenheit stabil ist, spielen Sie zum Beispiel etwas Musik oder einen Film von DVD ab oder kopieren eine große Datei vom DVD-Laufwerk auf die Festplatte. Stürzt der Rechner ab, verzichten Sie besser auf eine Nutzung von DMA oder wählen einen anderen DMA-Modus. Um das Feature bei jedem Neustart automatisch zu aktivieren, schalten Sie es als Suse-Linux-Nutzer via YaST an oder fügen den hdparm-Befehl in eines der Linux-Start-Skripte ein.

  1. Rufen Sie als Mandriva-Linux-Nutzer Kate im Root-Modus auf, indem Sie [Alt-F2] drücken und kdesu kate eingeben.
  1. Öffnen Sie die Datei /etc/rc.d/rc.local.
  1. Fügen Sie manuell den Befehl hdparm -d1 /dev/hdb ein, dann wird beim nächsten Start automatisch DMA für das Laufwerk hdb aktiviert.

Unter Suse Linux heißt die entsprechende Datei übrigens boot.local, einfacher schaltet man DMA aber über YaST an und aus. Rufen Sie YaST auf, wechseln Sie zum Reiter Hardware und wählen Sie den Eintrag IDE DMA-Modus. Nun erscheinen DMA-Informationen zu Ihren angeschlossenen Massenspeichern (Abbildung 4). Über ein Drop-down-Menü im unteren Bereich wählen Sie einen DMA-Modus aus: Stürzt Ihr Rechner häufig ab, probieren Sie es einmal mit einer anderen DMA-Version -- wählen Sie zum Beispiel UltraDMA/33 statt UltraDMA/66.

Abb. 4: Suse-Linux-Benutzer haben es gut: Via YaST aktivieren und deaktivieren Sie bequem den DMA-Modus für Laufwerke und Festplatten.

DMA abschalten

Stürzt Ihr Linux gern mal ab oder bleibt im laufenden Betrieb häufig hängen, deaktivieren Sie DMA testweise: Haben Sie eine schnelle CPU, sollte das Abspielen von Musik oder Filmen auch ohne DMA relativ reibungslos funktionieren -- eine optimale Lösung ist das sicher nicht. Das Abschalten von DMA muss bei Suse Linux doppelt geschehen, denn dort aktiviert nicht nur das BIOS DMA, sondern auch noch einmal das Betriebssystem.

Zunächst schalten Sie DMA über den Boot Manager ab. Für Suse Linux rufen Sie dazu mit [Alt-F2] ein Schnellstartfenster auf, geben kdesu kate ein und öffnen im Verzeichnis /boot/grub/ die Datei menu.lst. In der finden Sie die Angaben, die auch beim Booten zur Auswahl stehen. Suchen Sie den Abschnitt, über dem title SUSE LINUX steht, bewegen Sie den Cursor an das Ende der Zeile darunter, die mit kernel beginnt. Tippen Sie nun ein Leerzeichen ide=nodma ein, damit Suse Linux nach dem Neustart den DMA-Modus zunächst deaktiviert, und speichern Sie die Datei ab. Anschließend schalten Sie DMA zusätzlich über YaST ab, da unter Suse Linux auch das Betriebssystem DMA aktiviert.

Für Mandriva Linux tragen Sie in die Datei /etc/lilo.conf im Abschnitt label="linux" hinter die Zeile, die mit append beginnt, den Ausdruck ide=nodma ein -- Mandriva Linux aktiviert DMA nur beim Booten.

Im Test hängte sich der Rechner nach dem Aktivieren von DMA auf. Die Lösung liegt in solchen Fällen darin, den Rechner mit Hilfe eines aktuellen Knoppix zu starten, eine Konsole aufzurufen und die entsprechende Linux-Partition -- mit Root-Rechten -- über einen Mount-Befehl einzubinden.

  1. Booten Sie Knoppix, drücken Sie [Alt-F2] und geben Sie konsole ein.
  1. Tippen Sie su root, um in den Root-Modus zu gelangen.
  1. Wechseln Sie mit cd / in das Root-Verzeichnis.
  1. Legen Sie mit mkdir Zielmedium ein Verzeichnis mit dem Namen Zielmedium an -- natürlich können Sie das Verzeichnis auch anders nennen.
  1. Nun binden Sie über mount -t auto /dev/hda2 /Zielmedium Ihr Laufwerk ein, wobei Sie für hda2 den korrekten Buchstaben für die Partition angeben, auf der Suse Linux oder Mandriva Linux installiert ist.
  1. Dann wechseln Sie mit cd Zielmedium/etc/rc.d in das Verzeichnis, in dem die Datei liegt, die beim Mounten automatisch DMA aktiviert.
  1. Über den Befehl mv boot.idedma boot.idedma.alt benennen Sie die Datei temporär um, damit Linux sie beim nächsten Booten ignoriert. Geschieht das Aktivieren von DMA bei Ihnen über die Dateien rc.local oder boot.local, verfahren Sie mit diesen Dateien auf die oben beschrieben Weise.
  1. Starten Sie Linux neu, melden Sie sich wieder mit Root-Rechten an und ändern Sie den Namen der Datei mit mv boot.idedma.alt boot.idedma zurück.
  1. Abschließend deaktivieren Sie über YaST DMA -- beim nächsten Booten ist das Problem behoben.

Risiken und Nebenwirkungen

Für Profis, die genau wissen, was sie tun, bietet hdparm noch zusätzliche Optionen: Wegen der Instabilität von DMA setzen die Entwickler von Suse Linux und Mandriva Linux die Voreinstellungen beim automatischen Anschalten des Features sehr konservativ. Durch den Einsatz verschiedener hdparm-Optionen erzielt man manchmal noch deutliche Performance-Gewinne -- allerdings sollten Linux-Einsteiger eher die Finger von diesen Spielereien lassen. Mitunter stehen die angerichteten Schäden in keinem Verhältnis zum möglichen Performance-Gewinn. Die weiteren Optionen stehen in den Handbuchseiten zu hdparm, die Sie über man hdparm aufrufen -- viele Einträge sind mit Warnhinweisen wie Dangerous oder massive filesystem corruption versehen, die man besser ernst nimmt.

Welche Performance-Optionen für Ihr Laufwerk überhaupt existieren und ob diese aktiv oder inaktiv sind, zeigt der Befehl hdparm /dev/hdb (Abbildung 5). Angenommen, Sie haben eine Festplatte, die UDMA66 beherrscht, die aber nur mit UDMA33 läuft, dann ändern Sie mit hdparm -X udma4 /dev/hdb den DMA-Modus, wobei Sie hdb durch Ihre Laufwerksbezeichnung ersetzen. Da nun aber diese Befehle ernsthafte Schäden am Dateisystem der Festplatte verursachen können, ist es ratsam, zumindest vor solchen Experimenten die Daten zu sichern. Weitere Tuning-Hinweise für Profis finden Sie im Internet [2]. (kki)

Abb. 5: Das komplette Tuning: Der Befehl "hdparm" zeigt -- wenn man ihn ohne Optionen eingibt -- verschiedene einstellbare Parameter für Massenspeicher.
Infos:
[1] Die Sourceforge-Web-Seite von hdparm: http://sourceforge.net/projects/hdparm/
[2] Profitipps im Linux-Magazin: http://www.linux-magazin.de/Artikel/ausgabe/2004/03/hdparm/hdparm.html

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2012 Linux New Media AG | Last modified: 2007-04-05 11:24

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]