Par contre on peut remarquer que la température du disque monte de 10°C pour certains modèles de l'ordinateur comme les Toshiba Satellites ( source?).
Il y a eu d'importantes discussions (cf section “Voir aussi” en bas de page) concernant certaines distributions Linux, y compris Ubuntu, au sujet de la défaillance des disques durs des ordinateurs portables. Dans certaines conditions, le disque dur se place de manière très – trop… – régulière en mode « tête parquée » (plusieurs fois par minute), ce qui conduit à une usure prématurée de la mécanique du disque. La durée de vie s'en trouve parfois réduite à moins d'un an.
Ce sont certaines combinaisons de tous ces paramètres qui conduisent parfois à une mauvaise gestion du parcage de la tête du disque. Sont concernés :
Pour votre information, surtout les débutants :
Nous allons voir par la suite comment détecter ce problème et y remédier de différentes manières.
Certains sites font état de rumeurs concernant ce problème. Vu l'activité engendrée par cette affaire sur de nombreux sites, dont le site launchpad on peut être sûr que ce n'est pas seulement une rumeur, mais un risque matériel et aussi un risque fort de perdre vos données personnelles si vous ne vous occupez pas de ce problème dans les semaines qui suivent.
Ce n'est pas parce que vous n'êtes pas concernés par votre configuration matérielle que ce problème n'existe pas. Les circonstances exactes de ce défaut de fonctionnement ne sont pour l'instant pas précisément connues. Afin de cerner le problème, il serait intéressant d'écrire des scripts de supervision des valeurs considérées et de les insérer sur un site communautaire en base de données avec la configuration matérielle et logicielle. Il est fort probable qu'on voit apparaitre des petits logiciels de supervision sous forme d'applet gnome directement accessibles sur le bureau gnome ; cela vous donnera la possibilité de voir l'évolution graphiquement et de configurer simplement le fonctionnement de l'ACPI de votre ordinateur.
La détection du problème repose sur la lecture d'informations inscrites dans une zone mémoire non volatile embarquée sur le disque dur. Ces informations sont gérées de manière autonome par le disque qui répond aux spécifications du standard SMART. C'est la commande smartctl du paquet smartmontools qui permet d'extraire ces informations.
Afin de lire ces informations, commencez par installer le paquet smartmontools.
Ensuite, vérifiez si vous pouvez accéder aux informations SMART sur notre disque dur :
sudo smartctl -a /dev/sda # ou sdb, si vous avez un disque dur de type SATA (récent) sudo smartctl -a /dev/hda # ou hdb, si vous avez un disque dur de type PATA (plus ancien)
Il est possible de trouver de manière automatique l'emplacement du périphérique contenant la partition racine de la manière suivante :
device=$(mount | sed -n '/\/ /s/[0-9].*//p') sudo smartctl -a $device
Si ces dernières commandes semblent ne pas fonctionner, sachez que les principales sources d'erreur lors d'une telle manipulation sont :
Il est donc possible de simplement copier coller la ligne suivante dans un terminal pour obtenir le résultat :
sudo smartctl -a $(mount | sed -n '/\/ /s/[0-9].*//p') | grep 'Cycle\|Power'
voici un exemple de ce qu'on peut apercevoir quand on lance cette commande :
sudo smartctl -a $(mount | sed -n '/\/ /s/[0-9].*//p') | grep 'Cycle\|Power' 9 Power_On_Hours 0x0012 100 100 000 Old_age Always - 345 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 249 193 Load_Cycle_Count 0x0012 094 094 000 Old_age Always - 62251
dans ce cas :
Cause des erreurs de lecture :
Dans certains cas, il se peut que la commande précédente vous retourne quelques informations sans qu'il y ait trace des variables “techniques” de votre disque. Si vous apercevez ceci (et uniquement dans ce cas)
SMART support is: Available - device has SMART capability. SMART support is: Disabled
Vous pouvez lancer la commande suivante pour activer l'enregistrement des paramètres (non persistant en cas de redémarrage):
sudo smartctl -a $(mount | sed -n '/\/ /s/[0-9].*//p') -s on
Vous pouvez maintenant reprendre ce tutoriel en tapant
sudo smartctl -a $(mount | sed -n '/\/ /s/[0-9].*//p') | grep 'Cycle\|Power'
Si les commandes précédentes ont bien fonctionné, vous devriez obtenir, dans votre terminal, toute une série d'informations. La valeur qui nous intéresse en particulier est intitulée Load_Cycle_Count (LCC = nombre de parcages). Si pour un ordinateur fixe, cette valeur devrait être en théorie assez proche du nombre d'extinctions, donnée par le Power_Cycle_Count, il n'en va pas de même pour un portable. Le rapport entre ces deux valeurs pour le disque dur d'un portable dépend de la fréquence des arrêts et des redémarrages de l'ordinateur (c'est à dire de la durée des sessions). Il est bien sûr plus important pour un ordinateur fonctionnant 24h/24 ou presque… et ce n'est pas un problème en soi.
Les données de type “Old_age” indiquent l'usure normale liée au vieillissement du disque dur… c'est le cas par exemple du nombre de démarrages/arrêts du pc (Start_Stop_Count). Ce sont des indications de durée de vie validées par le contructeur. Elles ne signifient pas toujours grand chose : un disque peut lacher avant d'être “vieux” ou tenir encore pas mal de temps en étant “agé”. Ce ne sont que des données indicatives qui permettent d'évaluer s'il faut prévoir de remplacer le disque.
Les données de type “Pre_fail” sont des indications pouvant laisser suspecter une usure anormale ou une panne… au-delà de certaines valeurs. Elles indiquent des problèmes sur le fonctionnement normal du disque. C'est le cas par exemple du nombre de secteurs réalloués (Reallocated_Sector_Ct). Ce sont les valeurs “Pre_fail” qui déclenchent des alertes smart.
Ceci étant dit, la colonne “type” indiquant seulement le type de données, les mentions “Pre_fail” et “Old_age” apparaissent dans cette colonne même sur un disque dur neuf. Une alerte est signifiée par la mention “FAILING_NOW” . Enfin, beaucoup de disques lâchent sans que smart ne relève quoi que ce soit, par contre un disque où smart détecte des problèmes ne dure en général pas longtemps.
Si le diagnostic de votre disque dur montre que vous êtes touché par le problème, PAS DE PANIQUE, nous allons maintenant régler le problème pour ralentir la fréquence du parcage des têtes (et donc la réduction des LCC).
La manière la plus simple de régler le problème est de changer la valeur d'un paramètre.
Cette solution a été proposée sur http://bugs.debian.org/. Elle permet de changer les paramètres de gestion de l'alimentation du disque dur, ce qui évite le parcage intempestif de la tête de lecture.
Nous allons donc modifier un paramètre du module hdparm grâce à cette ligne de commande.
sudo hdparm -B 254 /dev/hda
ou
sudo hdparm -B 254 /dev/sda
faites attention à cette différence.
sudo hdparm -B /dev/sda
Pour en vérifier le bon fonctionnement, tapez à différents intervalles de temps, cette ligne de commande.
sudo smartctl -a $(mount | sed -n '/\/ /s/[0-9].*//p') | grep 'Cycle\|Power'
Le nombre au bout de la ligne Load_Cycle_Count ne devrait plus bouger. (Ce nombre est fixe lorsque j'utilise mon ordinateur)
Source : launchpad
Créez le fichier 99-hdd-spin-fix.sh ( ne pas modifier le nom de fichier ) et mettez-y :
#!/bin/sh hdparm -B 254 /dev/hda
Enfin, copiez le fichier créé dans les 3 emplacements suivants:
sudo install 99-hdd-spin-fix.sh /etc/acpi/start.d/ sudo install 99-hdd-spin-fix.sh /etc/acpi/suspend.d/ sudo install 99-hdd-spin-fix.sh /etc/acpi/resume.d/
cmd='hdparm -B 254 /dev/sda';sudo $cmd && echo -e '#!/bin/sh\n'"$cmd" > /tmp/hdfix && sudo install /tmp/hdfix /etc/pm/power.d/99-hdparm.sh && sudo install /tmp/hdfix /etc/pm/sleep.d/99-hdparm.sh
Pour supprimer les effets de cette méthode :
sudo rm /etc/pm/power.d/99-hdparm.sh /etc/pm/sleep.d/99-hdparm.sh
Cette méthode fonctionne, sauf lors d'une mise en veille. Préférez la nouvelle méthode qui prend en compte ce cas également.
sudo hdparm -B 254 /dev/sda && echo -e '#!/bin/sh\nhdparm -B 254 /dev/sda' > /tmp/99-hdd-spin-fix.sh && for i in start suspend resume; do sudo install /tmp/99-hdd-spin-fix.sh /etc/acpi/$i.d; done
Pour supprimer les effets de cette ancienne méthode :
sudo rm /etc/acpi/*.d/99-hdd-spin-fix.sh
Une autre manière pour résoudre ce problème est d'utiliser les outils que nous avons à disposition pour régler les fonctions de gestion d'énergie des disques dur. Un paquet est spécialement conçu dans ce but, il s'agit du laptop-mode-tools. Par défaut, le laptop-mode est relativement agressif, mais les réglages sont entièrement paramétrables pour obtenir le résultat que vous souhaitez.
Dans ce fichier vous pourrez gérer le délais d'inactivité avant le parcage des têtes du dique dur, mais également beaucoup d'autres paramètres.
Pour améliorer encore la durée de vie du disque, il est aussi possible d'aller plus loin. En effet, par défaut, un système linux accède très fréquemment au HDD (les systèmes de fichiers journalisés, les logs des différents process et du système, etc.). Il convient donc de s'assurer que le système limitera le nombre d'accès au disque pour ne pas le réveiller inutilement.
Tout d'abord, installons le paquet laptop-mode-tools.
Pour qu'il soit activé, modifions le fichier /etc/default/acpi-support. La ligne
ENABLE_LAPTOP_MODE=false
doit être changée en
ENABLE_LAPTOP_MODE=true
Pour vérifier (au prochain redémarrage) que le laptop-mode est actif, exécutons
cat /proc/sys/vm/laptop_mode
Si la valeur retournée est 0, laptop-mode ne fonctionne pas. Si la valeur est différente de 0, alors laptop-mode est en fonction. (faire le test avec le pc sur batterie!)
Pour démarrer le laptop-mode sans redémarrer le PC :
sudo /etc/init.d/laptop-mode start
Avant de commencer à modifier le fichier, il est bon d'en faire une sauvegarde :
cd /etc/laptop-mode/ sudo cp laptop-mode.conf laptop-mode.conf.`date +%Y%m%d-%H%M%S`
Le fichier /etc/laptop-mode/laptop-mode.conf contient toute la configuration de laptop-mode. Il est relativement clair et est séparé en différentes sections distinctes. Pour l'éditer :
gksudo gedit /etc/laptop-mode/laptop-mode.conf
Jetons d'abord un coup d'oeil aux valeurs suivantes:
ENABLE_LAPTOP_MODE_ON_BATTERY=1 ENABLE_LAPTOP_MODE_ON_AC=0 #ou 1 (lire ci-dessous) ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED=0 #ou 1 (lire ci-dessous)
Comme leurs noms l'indique, ces variables permettent d'activer (ou non) le laptop-mode quand l'ordinateur fonctionne respectivement sur batterie, sur secteur ou quand le couvercle est fermé. Un 1 signifie l'activation de cette option, un 0 signifie sa désactivation.
LM_BATT_MAX_LOST_WORK_SECONDS=1200 LM_AC_MAX_LOST_WORK_SECONDS=360
Ces deux dernières valeurs permettent de déterminer à quel moment au minimum un redémarrage du disque doit avoir lieu, sur batterie et sur secteur respectivement. La valeur est à indiquer en secondes. Avec une valeur à 1200 en mode batterie (comme indiqué au dessus) le disque redémarrera au bout de 20 minutes d'inactivité (même si rien ne l'y oblige) de manière à écrire les petites modifications qui ont été mémorisées mais pas encore appliquées.
CONTROL_HD_IDLE_TIMEOUT=1
Il est très important que cette valeur soit activée (égale à 1). Ce paramètre autorise le laptop-mode à gérer la fréquence de parcage des têtes.
LM_AC_HD_IDLE_TIMEOUT_SECONDS=20 #durée d'inactivité (en secondes) avant parcage des têtes sur secteur avec le laptop-mode actif LM_BATT_HD_IDLE_TIMEOUT_SECONDS=60 #durée d'inactivité (en secondes) avant parcage des têtes sur batterie avec le laptop-mode actif NOLM_HD_IDLE_TIMEOUT_SECONDS=1200 #durée d'inactivité (en secondes) avant parcage des têtes lorsque laptop-mode se désactive
C'est avec ces valeurs qu'il faut jouer si vous voulez simplement désactiver le parcage des têtes. Mettez tout à 1200 (soit 20 minutes d'inactivité avant l'arrêt du HDD) si vous voulez vous assurer que le disque ne s'arrêtera quasiment jamais ; ça n'est évidemment pas bon pour la gestion d'énergie, mais il s'agit parfois de la seule solution efficace. Testez différentes valeurs et choisissez-en une qui convient à votre machine!
CONTROL_HD_WRITECACHE=1 #permet d'autoriser la gestion du cache du HDD par LM NOLM_AC_HD_WRITECACHE=1 #force l'utilisation du cache du HDD lorsque LM se désactive et que le pc est sur secteur NOLM_BATT_HD_WRITECACHE=0 #stoppe l'utilisation du cache du HDD lorsque LM se désactive et que le pc est sur batterie LM_HD_WRITECACHE=1 #force l'utilisation du cache du HDD lorsque LM est actif, cela limite le réveil du hdd en travaillant dans son cache plutôt que directement en dur
Pour limiter les accès au HDD du système de fichier (pour un système de fichier ext3) :
Le système ext3 accède, par défaut, au disque dur toutes les 5 secondes pour mettre à jour certaines données de journalisation dont on peut, la plupart du temps, se passer (certains rares logiciels comme MUTT par exemple ont toutefois besoin de cette journalisation pour fonctionner). Pour désactiver cette journalisation trop régulière qui réveillera votre disque à longueur de temps, il faut monter les partitions ext3 avec l'option noatime. Ceci peut être fait en activant l'option :
CONTROL_NOATIME=1
Si tout cela ne change rien (ou pas assez), vous pouvez aussi modifier les options du power-management, dont la fameuse option hdparm :
# # Should laptop mode tools control the hard drive power management settings? # CONTROL_HD_POWERMGMT=1 # # Power management for HD (hdparm -B values) # BATT_HD_POWERMGMT=0 # testez des valeur entre 120 et 190 ici LM_AC_HD_POWERMGMT=255 # mettez 254 ici pour avoir un nombre de parquage minimal tout en laissant la gestion d'énergie activée NOLM_AC_HD_POWERMGMT=255 # vous pouvez mettre 254 ici aussi
Syslog gère la création et le remplissage des fichiers /var/log. Par défaut, linux logge énormément de choses, ce qui provoque aussi des accès disque permanents, qui empêchent votre HDD de rester arrêté longtemps. Pour régler le problème, laptop-mode propose un outil qui va reconfigurer syslog.
Utilisez le script
sudo lm-syslog-setup
Cela va créer 3 nouveau fichiers de configuration de syslog placés dans /etc:
syslog-on-battery.conf , syslog-on-ac-with-lm.conf, et syslog-on-ac-without-lm.conf
qui sont normalement automatiquement configurés correctement.
Il faut ensuite paramétrer laptop-mode pour utiliser et activer ces 3 fichiers selon que l'on soit sur batterie ou sur secteur. pour cela, retour dans /etc/laptop-mode/laptop-mode.conf.
On vérifie que CONTROL_SYSLOG_CONF=1
.
Certains démons peuvent également acceder au HDD de manière régulière. Laptop-mode-tools contient un script capable de détecter ces processus, de les lister et de créer une configuration qui les coupe et les redémarre automatiquement selon que l'on soit sur batterie ou sur secteur. Pour le lancer :
sudo lm-profiler
Le script va lire l'activité de votre pc pendant 10 minutes et vous proposera ensuite tout une liste de modifications qu'il préconise. Certaine modifications seront de forte recommandations (qu'il vaut mieux accepter) d'autre ne seront que de simple possibilités (à vous de choisir). Une fois les choix validés, ce script rajoutera des scripts supplémentaires dans /etc/laptop-mode/start ou stop qui arrêteront et démarreront ces daemons automatiquement.
La création de certains de ces script est assez longue (plus de 3 ou 4 minutes pour certains), donc assurez vous de ne pas arrêter lm-profiler avant qu'il ait réellement fini tout son travail de configuration.
Houch, mon disque dur est monté a 65°C au repos alors qu'il ne doit pas depasser les 55° d'apres les constructeurs. comment se fait-i-il qêue pour le meme nombre de parcage, ça ne depasse pas les 50 sous windows? On ne peux pas faire en sorte que sous linux, des que le disque n'est plus solicité, il met sa tete pres de la piste de parquage (alimentation de la bobine minimal) au lieu de le laisser sur en position la plis eloignée que la position parquée (conso maxi, perte effet joule maxi). avant de le parquer?
maintenant il existe des clés usb dont la capacitée va jusqu'a 64Gio, donc on peut installer ubuntu sur ces medias, et avec les peripheries flash, on n'a plus de problemes mecaniques que sont les parcages.
À la lecture de ce qui a été récemment posté sur launchpad par Canonical, peut-être devrions-nous changer entièrement cette doc?non, il y a des cas ou les valeurs remontées par SMART sont fausses, dans ce cas, il faut les ignorer ou changer le pilote SMART ; dans le cas général, il semble que ce que nous avons indiqué ici est plutôt une bonne synthèse / marc31Pour info, mon smartctl indique “751 234” parcages de tête pour 9300 heures de fonctionnement, avec laptop-mode désactivé. Le chiffre augmente régulièrement quelle que soit la config. Le disque a 1 an et demi et il ne présente aucun signe de faiblesse jusque là. Donc ces chiffres ne veulent souvent pas dire grand chose. (BohwaZ)
sur la liste de discussion, nous ne sommes pas tous d'accords concernant cette page …ok pour la page, on laisse comme ça tant qu'on a pas plus de nouvelles /fde
Je suis plutôt d'accord avec la proposition de Matthias Hawran (jahwork) de faire de cette page un tutoriel “tutoriel/gestion_energie_et_parcage_des_tetes_de_lecture”, et de garder la page sur laptop-mode pour les explications de bases sur le laptop-mode (même si ça risque fortement de recouper cette page-ci). /fdeIl ne faut pas dupliquer l'info. On garde tout ce qui concerne laptop-mode sur la dite page, avec une section “gerer le parcage intempestif…” et la section “laptop-mode” de la page tutoriel pointe seulement sur cette section. /jahwork
Note d'un visiteur: Il semble que mon disque dur externe (de portable) soit touché sur mon portable et sur mon fixe.
Contributeurs : marc31, fde, teke, Sorbus, xXKirastarotHXx , Malizor. Merci à DiCiCat, fournisseur quasi-exclusif des solutions proposées ici.