Comment j'ai échappée à la mort prématurée du disque dur de mon Dell Inspiron 6400n
Par idoric le samedi, octobre 27 2007, 15:46 - Lien permanent
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.
Commentaires
D'accord avec la conclusion, ce probleme n'est pas nouveau : http://www.dellcommunity.com/suppor... Faut croire que ca arrange certains que les HD claquent rapidement...
Très intéressant, mais serait-il possible d'avoir un complément: tu peux expliquer ta règle de trois? Je suis newbie et je capte pas ton calcul
Moi ça affiche: 193 Load_Cycle_Count 0x0012 089 089 000 Old_age Always - 112866
Quel chiffre je dois utiliser?
J'ai fait le calcul grosso modo suivant :
après quatre semaines, j'en étais déjà à 16624, soit 16624/4=4156 par semaines. Sachant qu'en moyenne un disque dur peut tenir 600000 chargements/déchargements de têtes, j'aurais tenu 600000/4156=144,369... semaines, soit encore 144/52=2,76... années, c'est-à-dire un peu plus de deux ans et demi.
Dans ton cas, c'est le nombre (et pas le chiffre, désolé, c'est le prof de maths qui parle ;)) 112866 qu'il te faut utiliser, mais il faut que tu retrouves depuis quand tu as l'ordi concerné. Sinon tu peux garder le même principe en notant l'augmentation en une heure de temps et extrapoler à partir de là.
À noter qu'à partir du moment où on a mis en place ce que j'explique dans mon billet, le nombre de chargements/déchargements n'est incrémenté de 1 qu'à chaque démarrage, il n'est donc jamais trop tard pour le sauvetage :)
@filoutube
Voilà un lien particulièrement intéressant, puisqu'il nous apprend que le problème n'est pas spécifique à Linux, mais concerne aussi Windows, je m'en doutais franchement mais je n'avais pour l'instant rien trouvé à ce sujet. Je vais donc pouvoir modifier le début de mon texte en conséquence et remplacer "distribution linux" par "système d'exploitation".
Quant à ta conclusion, ça me fait penser à ces bureaux d'études chez les fabricants de machines à laver qui officiellement testent la solidité du matériel, mais il y a toujours un ancien employé pour expliquer qu'en fait on vérifie que ça lâche après et le plus proche possible de la fin de garantie, ce qui malheureusement ne m'étonnerait absolument pas :(
Merci beaucoup! Moi je me suis jamais inquiété, ça fait un moi que je suis sous Ubuntu mais 4 ans que j'ai le portable.
Là je me ballade sur le net et le numéro ne change pas donc tout va bien pour moi? ou j'ai rien compris...
Ce qui m'affole c'est que le disque dur est appelé régulièrement, la diode s'allume, faut-il que j'applique le paramètre B 254?
Ou je n'ai tout simplement pas besoin de m'affoler? Autre petite remarque, je n'utilse plus que le secteur, ma batterie est morte depusi 2 ans.
Merci pour ta réponse précédente, c'était très enrichissant
Sur mon Inspiron 6400, j'ai fait mes tests en étant branché sur le secteur, et ça n'empêchait pas le compteur de s'affoler, donc le problème peut se poser aussi quand on est sur le secteur.
Maintenant le problème peut ne se poser qu'avec le mode batterie sur certains ordinateurs, car il a été reporté que le problème apparaît avec le mode_laptop sur certaines configs, et en général le portable est configuré pour être dans ce mode uniquement s'il est sur la batterie.
Pour la diode qui s'allume, ça peut être tellement de choses, dont tout un tas de trucs tout à fait normaux.
Sinon, tu as bien compris, le but est que le nombre concerné n'augmente pas à toute vitesse.
Juste trois mots: UN GRAND MERCI !!!
là je suis rassuré :)
Quelques petits trucs complémentaires.
1) J'ai continué à faire le tour des forums, et comme le sujet est essentiellement débattu par des linuxiens, certains finissent par croire que le problème est spécifique à certaines distributions Linux, pourtant j'ai trouvé de nouveaux témoignages d'utilisateurs de Windows uniquement, comme par exemple ici : http://forum.notebookreview.com/sho...
2) Certains arrivent à régler le problème en passant par le BIOS, j'ai essayé et je peux dire que ça ne marche pas avec l'Inspiron 6400n.
3) Je suis tombé à 4h30 d'autonomie (j'étais à plus de 5h), mais il vaut mieux ça que de griller mon disque dur avant l'heure.
Qqs commentaires/remarques, sachant que les vraies causes du problème sont difficiles à cerner.
En effet, le pilotage des arrêts/relance des têtes d'un DD est contrôlé par le firmware du disque, qui a des paramètres par défaut. Ensuite, le firmware en question peut répondre à des ordres provenant de tout un tas de sources potentielles (bios du contrôleur disque, bios du PC, logiciel de gestion d'énergie du constructeur, gestion de l'énergie de l'OS...)
Du coup, ce que je recommande dans ces cas là, c'est de remonter le problème dans l'ordre afin de s'assurer que rien ne vient positionner le paramètre de gestion des têtes à un niveau d'économie d'énergie trop agressif
1°) Regarder ce qu'on peut voir et faire sur ce paramètre en pilotant directement le firmware du disque avec l'outil du constructeur disque. Pour info, plutôt que de perdre 2 heures sur le site du constructeur disque pour télécharger l'outil adéquat, télécharger plutôt ceci une bonne fois pour toute: http://www.ultimatebootcd.com/
2°) Regarder au niveau du contrôleur disque si celui-ci dispose d'un bios intelligent (parfois intégré au bios de la CM)
3°) Regarder dans les paramètres du bios de la CM
4°) Si le fournisseur du matériel a mal configuré son équipement et ne permet pas de modifier ce réglage dans le bios, alors il ne reste plus, si l'équipement l'accepte, qu'à modifier le paramètre au niveau OS (comme le fait Idoric)
Sinon, si j'ai bien compris, ce qui explique qu'il y a surtout les utilisateurs de certaines distribution linux qui se plaignent, c'est que le mode de gestion d'énergie "Laptop en mode batterie" par défaut de ces distribs positionne au minimum le temps avant arrêt des têtes de lecture du disque, au point que, du fait du comportement de la gestion du cache écriture en RAM de l'OS, l'OS trouve le moyen de faire plusieurs arrêts de tête par écriture!
Quoi qu'il en soit, si tu as gardé l'image d'install de la distrib initiale fournie par Dell, ce serait intéressant de savoir comment les profils de gestion d'énergie avait été configurés par Dell et si ils avaient modifié ce paramètre. En effet, un fournisseur de portable se doit, qq soit l'Os qu'il installe, de fournir un outil et/ou des fichiers de paramètres d'économie d'énergie adapté au hardware qu'il intègre...
J'ai relu le thread sur linuxfr, ce qui confirme/clarifie deux points:
- il arrive bien que le paramètre au niveau du hard soit positionné par le constructeur à une valeur par défaut (cad utilisée sauf ordre contraire de l'OS) trop faible par rapport à la réalité des accès disque de l'utilisateur - ou plutôt de l'Os de l'utilisateur. Ce qui explique que le problème touche (partiellement) tous les OS -> si ce paramètre est modifiable par l'outil du constructeur ou avec le Bios, il n'est pas idiot de remonter sa valeur
- la configuration du mode "laptop" de certaines distrib dont ubuntu est absurde et dangereuse... A vouloir trop optimiser, on arrive à l'effet inverse! Après, repasser le paramètre à sa valeur max n'est pas une bonne idée non plus car: - l'arrêt des têtes permet la protection contre les chocs - avoir les têtes tout le temps allumé doit probablement réduire (aussi!) la durée de vie du disque! -> il s'agit de trouver un juste milieu raisonnable, en allant voir ce que font les autres ditribs plus "conservatrices" (j'aime bien l'expression du gars sur linuxfr qui recommande d'utiliser une distrib "responsable" :-) )
Merci Correon pour ces commentaires particulièrement constructifs, quand j'aurais le temps, je reprendrais la chaîne de responsabilité dans le bon ordre comme tu l'indiques.
Juste pour info, en dehors du journal linuxfr, d'autres threads où la discussion fait rage : http://forum.ubuntu-fr.org/viewtopi... http://forum.ubuntu-fr.org/viewtopi... http://www.generation-debian.org/fo... http://forum.debian-fr.org/viewtopi... https://www.redhat.com/archives/fed...
salut, la commande de diagnostic me retourne le résultat suivant: "193 Load_Cycle_Count 0x0032 042 042 000 Old_age Always - 116418" Mon portable a 1an et 8mois (ça fait 2 semaines que j'ai ubunutu d'installer dessus), donc si j'ai bien compris ce que tu disais, j'ai aucun soucis et donc aucune modif a faire??? FR3D0
Si ça fait deux semaines que tu as mis Ubuntu, vérifie où en est le compteur à un jour d'intervalle pour voir s'il subit une accélération foudroyante ou pas. Si ce n'est pas le cas, 116418 pour 1 an et 8 mois, ça fait 8 ans et demi d'espérance de vie.
Je suis passé sous Xubuntu et mon compteur grimpe toutes les 5 minutes, du coup, j'applique ta méthode à court terme et aucun soucis :) Je te remercie.
Par contre, je veux faire la manipulation à moyen terme, et je n'ai pas trouvé system services. J'ai fait tout de même la modification, et comment savoir si elle se lance automatiquement au démarrage au démarrage? comment on peut afficher le paramètre en mode console?
Bonne soirée
Pour démarrer/arrêter des services sous Xubuntu, on peut faire comme ça :
https://help.ubuntu.com/community/B...
Merci pour ta réponse, mais à force de fouiller xubuntu que je découvre, j'ai trouvé autre chose: Menu > Paramètres > Autostarted Applications Je me torturai à chercher dans système lol ;)
Bonne soirée :)