Cette semaine, je suis tombé sur ce post particulièrement alarmant : Canonical aurait des actions de fabricants de disques durs!

Pour qu'un disque dur consomme moins d'énergie, on décharge ses têtes de lecture : on les déplace hors de la surface du disque, afin de ne plus avoir à alimenter le système de positionnement de ces têtes. L'usure mécanique est inévitable, et on considère généralement qu'après 600 000 chargements/déchargements, le disque dur ne doit plus être loin de passer l'arme à gauche. Il semblerait qu'avec certaines combinaisons matériels/systèmes d'exploitation (Windows, Linux... cf. les commentaires 1 et 4), la fréquence de chargements/déchargements est tellement rapide qu'elle réduit l'espérance de vie du disque dur ! J'ai donc voulu vérifier ce qu'il en était pour mes propres ordinateurs, et je donne ici la procédure pour kubuntu, mais le principe est le même pour toutes les distributions Linux.

1) Le diagnostic

Il faut s'assurer que le paquet smartmontools est installé, on peut passer par Adept, ou faire sudo aptitude install smartmontools en ligne de commande.

Ensuite il faut lancer la commande sudo smartctl -d ata -a /dev/sda si sda est le disque à tester (cela peut aussi être sdb, sdc, etc... ou hda, hdb, etc...).

Dans le résultat, la ligne qui nous intéresse est celle-ci :
193 Load_Cycle_Count 0x0032 195 195 000 Old_age Always - 16624
Cela fait à peu près 1 mois que j'ai mon portable, une simple règle de trois m'indique que si j'avais continué sur ce rythme, le disque dur serait mort en moins de 3 ans ! Pour mon fixe et mon ancien portable, les valeurs obtenues sont beaucoup plus conformes à ce qu'on peut attendre.

Si jamais cette ligne ne s'y trouve pas, il est plus que probable que SMART n'est pas activé sur votre disque dur, il faut alors lancer au préalable la commande smartctl -s on /dev/hdb (c'est ce que j'ai dû faire sur mon fixe). Attention, sur certains vieux disques durs, SMART renvoie n'importe-quoi, mais en général les indications sont tellement aberrantes qu'on s'en rend immédiatement compte.

2) Une solution à court terme

Dans la très grande majorité des cas, il suffit de taper la commande sudo hdparm -B 254 /dev/sda (255 fonctionne aussi mais désactive totalement l'économie d'énergie). On peut ensuite vérifier son effet à l'aide de la commande smartctl précédente.

3) Une solution à moyen terme

Le problème de la solution décrite ci-dessus est qu'il faudrait le refaire à chaque démarrage de l'ordinateur. Il suffit d'ajouter (en tant qu'administrateur root) à la fin du fichier /etc/hdparm.conf les lignes suivantes :

/dev/sda {
apm = 254
}

Pour éditer en ligne de commande, on peut faire sudo nano /etc/hdparm.conf.

Ensuite, il faut aller dans Menu K/Paramètres du système/Advanced/System Services, et demander à ce que hdparm soit lancé au démarrage.

4) Et maintenant ?

Je n'ai pas encore eu le temps de déterminer les conséquences sur l'autonomie de mon portable, mais il doit être possible de régler le problème sans rien sacrifier à l'autonomie d'après ce commentaire.

Depuis que j'ai eu mon portable, j'ai mis à jour mon système kubuntu de la version Feisty à la version Gutsy, je ne peux donc déterminer si les intégrateurs de chez Dell avait personnalisé la configuration du système pour éviter ce problème, mais comme tout le monde va finir par basculer vers Gutsy... il faudra que j'envoie un message à Dell à ce sujet.

Également, je suivrais cette affaire pour savoir ce qui sera fait pour régler ce problème, bien sûr il est possible de contourner le problème de manière logicielle et il serait de bon ton que les équipes de (k)ubuntu prennent le problème au sérieux, mais l'origine fondamentale du problème reste quand même matérielle : le matériel ne devrait pas attendre que le logiciel règle ses conneries.