Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
hddtemp ist ein kleines Programm, das die Temperatur einer Festplatte über die in der Platte eingebauten S.M.A.R.T.-Sensoren auslesen kann. Mittels hddtemp können die gewonnenen Daten entweder im Syslog ausgegeben oder als Serverdienst im Hintergrund abgefragt werden.
Folgendes Paket muss installiert [1] werden:
hddtemp (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install hddtemp
sudo aptitude install hddtemp
Nach der Installation muss man hddtemp an die eigenen Bedürfnisse anpassen. Dazu führt man in einem Terminal [2] den folgenden Befehl aus:
sudo dpkg-reconfigure hddtemp
Anschließend bekommt man mehrere Fragen gestellt. Im Nachfolgenden wird die richtige Konfiguration für den Einsatz von hddtemp auf einem Desktop-Rechner geschildert. Andere Einsatzzwecke bedürfen evtl. einer anderen Konfiguration.
Soll hddtemp mit root-Rechten arbeiten?: Nein
Ausgabe in Syslog schreiben: 0
hddtemp als Dienst starten: Ja
Netzwerkschnittstelle an der hddtemp lauschen soll: 127.0.0.1
Port-Nummer: 7634
Danach wird der Dienst direkt gestartet. Nun werden standardmäßig die Temperaturen aller S.M.A.R.T.-fähigen Festplatten 1x pro Minute abgefragt. Leider führt jede S.M.A.R.T.-Abfrage dazu, dass die Platte wieder aufgeweckt wird, obwohl eigentlich keine Daten von den Magnetscheiben gelesen werden müssen. Einige Festplatten können ihren Lese/Schreibkopf parken und verbrauchen so weniger Strom. Zusätzlich ist bei vielen Festplatten nur eine gewisse Anzahl von Parkvorgängen vorgesehen, so dass die Festplatte evtl. früher als normal kaputt ist.
Als Lösung bietet sich an, die besagte Platte vom Monitoring auszuschließen. Hierzu ist die Konfigurationsdatei /etc/default/hddtemp zu editieren [3] und dieser Abschnitt so anzupassen, dass nur noch die gewünschte Platte von hddtemp abgefragt werden:
# List of devices you want to use with hddtemp. If none specified, # hddtemp will probe standard devices. DISKS="/dev/sda"
Mit diesem Beispiel wird nur noch die Festplatte /dev/sda von hddtemp abgefragt. Natürlich kann weiterhin manuell mit
sudo smartctl -A /dev/sda
den S.M.A.R.T.-Status der Platte abfragen.
Nachdem hddtemp konfiguriert wurde, wird der Dienst automatisch neu gestartet. Soll der Dienst manuell gestartet werden, kann man ihn auf der Kommandozeile steuern:
sudo /etc/init.d/hddtemp
Nun werden die verfügbaren Optionen wie start
, stop
usw. ausgegeben. Mehr Informationen zu diesem Thema findet man im Wiki unter Dienste und SysVinit.
Ist der Dienst konfiguriert und gestartet, kann man die Temperaturen abfragen:
sudo hddtemp /dev/sda
/dev/sda: SAMSUNG SP2014N: 42°C
Natürlich können auch weitere Programme und Dienste die Temperaturdaten anzeigen. Mehr dazu unter Lm sensors und inxi.
Hinter hddtemp steckt kein Festplattenkonzern oder eine große Firma. Die Entwickler des Programms besitzen daher nicht die Eckdaten sämtlicher Festplatten der Welt. So kann es daher vorkommen, dass Festplatten nicht erkannt werden. Allerdings kann man die Daten der Platten meist selber zur Datenbank hinzufügen. Sollte man beim Auslesen der Temperatur einer Festplatte also diese Meldung bekommen:
WARNING: Drive /dev/sda doesn't appear in the database of supported drives WARNING: But using a common value, it reports something. WARNING: Note that the temperature shown could be wrong. WARNING: See --help, --debug and --drivebase options. WARNING: And don't forget you can add your drive to hddtemp.db /dev/sda: ST3300622AS: 47°C or °F
so ist die betroffene Festplatte noch nicht in der Datenbank von hddtemp aufgenommen. Wie man sieht, erkennt hddtemp jedoch die Festplatte und die Temperatur. In diesem Fall kann man die Festplatte problemlos zur Datenbank hinzufügen. Dazu führt man hddtemp im debug
-Modus aus.
sudo hddtemp /dev/sda --debug
================= hddtemp 0.3-beta15 ================== Model: ST3300622AS field(1) = 187 field(3) = 0 field(4) = 125 field(5) = 0 field(7) = 1 field(9) = 107 field(10) = 0 field(12) = 131 field(187) = 0 field(189) = 0 field(190) = 47 field(194) = 47 field(195) = 150 field(197) = 0 field(198) = 0 field(199) = 1 field(200) = 0 field(202) = 0 If one of the field value seems to match the temperature, be sure to read the hddtemp man page before sending a report (section REPORT). Thanks.
Man erkennt also das Festplattenmodell "ST3300622AS" und dass die Temperatur von 47°C entweder zu Feld 190 oder 194 passt. Mit diesen Infos öffnet man anschließend die hddtemp-Datenbank /etc/hddtemp.db in einem Editor mit Rootrechten [3] und fügt die Platte als neue Zeile hinzu. Im Beispiel wäre dies also die mittlere Zeile:
######################################## ############# Seagate drives ######################################## ... "ST330621A" 194 C "Seagate ST330621A" "ST3300622AS" 194 C "Seagate ST3300622AS" "ST330630A" 194 C "Seagate Barracuda ST330630A" ...
Hier erkennt man auch die passende Feld-Nummer. Seagate scheint wohl hauptsächlich die Nummer 194 zu benutzen. Andere Festplattenhersteller oder Modelle benötigen sicherlich eine andere Feld-Nummer. Abschließend muss hddtemp neu gestartet werden (s.o.) und schon sollte die Festplatte korrekt ausgelesen werden.
Ist die Festplatte erfolgreich zur hddtemp-Datenbank hinzugefügt worden, sollte die Debug-Ausgabe an den Autor von hddtemp geschickt werden. Die Kontaktdaten finden sich auf der Homepage von hddtemp . Dieser kann dann die Daten in hddtemp aufnehmen und in Zukunft müssen Benutzer dieser Festplatte die Daten nicht mehr von Hand hinzufügen. Danke!
Diese Revision wurde am 28. März 2016 15:25 von aasche erstellt.