24.10.2008/Kire

Der schnelle Festplattentod

In Ubuntu 8.04 hat sich leider ein Fehler eingeschlichen, der manche Notebook-Festplatten viel zu schnell in den “Parkmodus” schickt und sie dadurch beschleunigt altern lässt. In diesem Modus sind die Schreib-/Leseköpfe speziell geschützt und können bei Erschütterungen die Speicheroberfläche nicht beschädigen – was insbesondere bei Notebooks, die herumgetragen werden, sehr sinnvoll ist. Durch den Fehler werden die Köpfe aber bereits nach wenigen Sekunden Inaktivität geparkt und müssen oft bereits unmittelbar darauf wieder für Zugriffe hervorgeholt werden. Die rund ca. 600’000 zugesicherten Zyklen können dadurch schon nach wenigen Jahren erreicht sein. Bei mir hat es ein System in einem halben Jahr bereits auf über 250’000 geschafft. Und auch ein zweites Gerät ist betroffen. Grund genug, die Schose etwas genauer zu betrachten.

Zuerst gilt es herauszukriegen, ob ein System überhaupt betroffen ist. Dazu muss (z. B. per Synaptic) das Software-Paket smartmontools installiert werden. Die nötigen Informationen liefert dann der folgende Befehl (sda steht für die erste Festplatte, sdb für eine allfällige zweite, etc.):

sudo smartctl -A /dev/sda

smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   062    0
  2 Throughput_Performance  0x0005   105   105   040    4564
  3 Spin_Up_Time            0x0007   127   127   033    2
  4 Start_Stop_Count        0x0012   100   100   000    363
  5 Reallocated_Sector_Ct   0x0033   100   100   005    0
  7 Seek_Error_Rate         0x000b   100   100   067    0
  8 Seek_Time_Performance   0x0005   122   122   040    39
  9 Power_On_Hours          0x0012   098   098   000    1155
 10 Spin_Retry_Count        0x0013   100   100   060    0
 12 Power_Cycle_Count       0x0032   100   100   000    357
191 G-Sense_Error_Rate      0x000a   100   100   000    0
192 Power-Off_Retract_Count 0x0032   100   100   000    4
193 Load_Cycle_Count        0x0012   074   074   000    261987
194 Temperature_Celsius     0x0002   157   157   000    35 (Lifetime Min/Max 20/45)
196 Reallocated_Event_Count 0x0032   100   100   000    0
197 Current_Pending_Sector  0x0022   100   100   000    0
198 Offline_Uncorrectable   0x0008   100   100   000    0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    0
223 Load_Retry_Count        0x000a   100   100   000    0

Unter Load_Cycle_Count kann in der Spalte RAW_VALUE die Anzahl Zyklen abgelesen und mit den Power_On_Hours verglichen werden. Hier wären es also über 225 pro Stunde. Soviele dürften es nicht mal pro Tag sein.

Unter Ubuntu 8.10 lässt sich das Problem recht einfach lindern:

sudo gedit /etc/default/acpi-support

Und darin den Parameter ENABLE_LAPTOP_MODE auf true stellen. Nach einem Neustart des Rechners wird nun das Parken der Köpfe im Betrieb am Stromnetz verhindert. Falls das Notebook auch oft stationär nur von der Batterie mit Energie versorgt wird, kann manuell mit

sudo hdparm -B 254 /dev/sda

das Parken unterbunden werden. Da die Einstellung bei jedem Reboot oder Anschliessen ans Stromnetz verloren geht, habe ich den Befehl bei mir gleich in ein Skript gepackt und dieses in die Programm-Startleiste eingetragen.

Unter Ubuntu 8.04 ist die Sache etwas komplizierter. Im Wiki auf ubuntu.com gibt es eine Anleitung, wie es gehen soll. Dies habe ich jedoch nicht ausprobiert. Die Zeit scheint mir in ein Upgrade besser investiert. Zur Überbrückung hilft auch hier obiges Skript.