Attention aux disques dur de vos laptops !

Je ne pense pas qu’il y a matière à s’affoler. Certes, cela reste une usure mécanique du disque : les têtes de lecture/écriture se parquent sur leur support en plastique (démontez un disque, vous verrez bien). Le bruit occasionné ne me gène pas, dans le sens où je ne pense pas que cela ait une influence sur l’usure.
Mais justement, hdparm est là pour modifier la gestion de l’énergie. Après, chacun fait selon ses besoins : si l’ordi bouge pas mal, on laisse comme c’est, à savoir les têtes parquées souvent. Ce qui est alors intéressant c’est qu’on pourrait tuner le noyau ou que sais-je pour que les lectures et écritures ne soient faites que toutes les X millisecondes et regroupées autant que possible. Si l’ordi reste fixe, simplement désactiver ce parquage automatique et c’est réglé.

Maintenant il est vrai que j’ai vu chez quelqu’un que hdparm reste sans effet. Là ça devient un peu plus embêtant.

j’ai fait un petit test sur mon portable mais en regardant aussi ce que fait windows.
Et ca a monté aussi beaucoup avec windows.
mon nombre de cycle avant de booter sur windows était de 6009

windows a tourné environ 3 heures
et maintenant je suis à 6410 en ayant pris soin de bloquer ce cycle au démarrage de debian.

ca fait plus de 1 parquage par minute je sais pas si c’est normal comme délai mais ca fait pas mal non plus…

Je suis en train de faire un essai sous XP là (ça me fait bizarre d’ailleurs). Le Load_cycle_count avance de 1 toutes les 2 minutes environ… C’est rigolo d’ailleurs car pour avoir le décompte je fais

c:\>smartctl.exe -a /dev/hda:slight_smile:

Le paramétrage que j’ai indiqué plus haut avec Laptop mode activé semble être l’idéal car il évite de bloquer artificiellement le phénomème. Après tout si on a un portable autant le paramétrer comme tel.
Là je suis sur OpenSuse en Dual Boot avec Debian et n’ai pas ce problème sous OpenSuse. Quand je me suis acheté ce portable j’hésitais à installer Ubuntu et Debian avec un grand faible pour Debian; d’où ma venue récente sur ce forum. Maintenant c’est entre Debian et OpenSuse que je dois choisir. Aidez-moi!

Il n’y a pas de différence … Ce n’est PAS un bug ! c’est juste une gestion particulière de l’économie de ton disque dur sur un portable, si tu installe les pilotes de gestion des portables sous OpenSuse tu auras le même problème, cela vient du programme “hdparm” et pas de la distribution.
Si tu utilises ton portable tous les jours dans le metro/train/déplacement je te conseille de garder la configuration par défaut.
Si tu urilises ton portable comme beaucoup sur un bureau branché sur le secteur, alors désactive cette fonctionnalité, elle ne te sers à rien ! (hdparm -B 255)
L’idéal serait un script qui passe le hdparm en 255 au moment ou on branche le secteur … Je ne sais pas faire !

Oui debianhadic. Je sais tout cela car j’ai passé 2 semaines à m’inquiéter de ça. Et c’est d’ailleurs ce que je veux dire quand je parle de paramétrage du laptop_mode (qui n’est pas installé par defaut sous OpenSuse) plutôt que d’appliquer le fix hdparm machin-chose. Appelé, d’ailleurs sur les forums Ubuntu “Ugly fix”.
Quand au métro, en Guadeloupe on n’a même pas de vrais transports en commun.
Par contre, je trouve que sur les listes, forums et autres endroits de causette Debian, le sujet est très peu abordé alors qu’il pose quand même problème.

En fait , tu met dans /etc/acpi/ac.d/ un script qui met le hdparm à 254 :

hades@verveine:/etc/acpi/ac.d%cat hd.sh #!/bin/sh hdparm -B 254 /dev/sda

Et dans /etc/acpi/battery.d/ un script qui met le hdparm à 1 :

hades@verveine:/etc/acpi/battery.d%cat hd.sh #!/bin/sh hdparm -B 1 /dev/sda

Comme ça tout roule, plus besoin de se prendre la tête à le faire à la main :smt003

laptop-mode.conf permet de faire cela simplement, entre autre :

ENABLE_LAPTOP_MODE_ON_AC=1
...
LM_AC_HD_POWERMGMT=255

Remarques : Un portable branché sur secteur est en général plus soumis aux chocs qu’une tour. Aussi, désactiver complètement l’APM (valeur 255) n’est pas toujours des plus judicieux et ne dois se faire qu’en toute connaissance de cause.

Tous les problèmes (ou soit disant problèmes) soulevés dans ce sujet peuvent trouver solution dans laptop-mode.conf

bonjour

j’ai testé sur mon portable asus A6BG16E-RWDL

[quote]debian-portable:/home/franck# smartctl -a /dev/hda | grep Load_Cycle_Count
9h43 :193 Load_Cycle_Count 0x0012 098 098 000 Old_age Always - 29779
debian-portable:/home/franck# smartctl -a /dev/hda | grep Load_Cycle_Count
9h44:193 Load_Cycle_Count 0x0012 098 098 000 Old_age Always - 29781
debian-portable:/home/franck# smartctl -a /dev/hda | grep Load_Cycle_Count
9h45:193 Load_Cycle_Count 0x0012 098 098 000 Old_age Always - 29783
debian-portable:/home/franck# hdparm -B 254 /dev/hda

/dev/hda:
setting Advanced Power Management level to 0xFE (254)
debian-portable:/home/franck# smartctl -a /dev/hda | grep Load_Cycle
9h46:193 Load_Cycle_Count 0x0012 098 098 000 Old_age Always - 29785
debian-portable:/home/franck# smartctl -a /dev/hda | grep Load_Cycle
9h47:193 Load_Cycle_Count 0x0012 098 098 000 Old_age Always - 29785
debian-portable:/home/franck# smartctl -a /dev/hda | grep Load_Cycle
9h48:193 Load_Cycle_Count 0x0012 098 098 000 Old_age Always - 29785
debian-portable:/home/franck# exit
exit
franck@debian-portable:~$
[/quote]
j’ai 2 cycles à la minute(je teste depuis hier) et j’ai modifié hdparm comme indiqué et ok .
mon portable en debian etch:

[quote]franck@debian-portable:~$ cat /proc/sys/vm/laptop_mode
0

debian-portable:/home/franck# dpkg -l | grep "acpi"
ii acpi 0.09-1 displays information on ACPI devices
ii acpi-support 0.90-4 scripts for handling many ACPI events
ii acpid 1.0.4-5 Utilities for using ACPI power management

debian-portable:/home/franck# smartctl -a /dev/hda
smartctl version 5.36 [i686-pc-linux-gnu] Copyright © 2002-6 Bruce Allen
Home page is smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Model Family: Hitachi Travelstar 80GN family
Device Model: IC25N080ATMR04-0
Serial Number: MRA401K6K4JSBH
Firmware Version: MO4OAD4A
User Capacity: 80 026 361 856 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 6
ATA Standard is: ATA/ATAPI-6 T13 1410D revision 3a
Local Time is: Fri Nov 9 00:08:08 2007 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 645) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off supp ort.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 69) minutes.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_ FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 062 Pre-fail Always - 0
2 Throughput_Performance 0x0005 100 100 040 Pre-fail Offline - 0
3 Spin_Up_Time 0x0007 162 162 033 Pre-fail Always - 1
4 Start_Stop_Count 0x0012 099 099 000 Old_age Always - 1600
5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0
7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 100 100 040 Pre-fail Offline - 0
9 Power_On_Hours 0x0012 095 095 000 Old_age Always - 2510
10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 1303
191 G-Sense_Error_Rate 0x000a 100 100 000 Old_age Always - 0
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 28
193 Load_Cycle_Count 0x0012 098 098 000 Old_age Always - 29771
194 Temperature_Celsius 0x0002 137 137 000 Old_age Always - 40 (Lifetime Min/Max 16/64)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 13
197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0

SMART Error Log Version: 1
ATA Error Count: 4
CR = Command Register [HEX]
FR = Features Register [HEX]
SC = Sector Count Register [HEX]
SN = Sector Number Register [HEX]
CL = Cylinder Low Register [HEX]
CH = Cylinder High Register [HEX]
DH = Device/Head Register [HEX]
DC = Device Command Register [HEX]
ER = Error register [HEX]
ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It “wraps” after 49.710 days.

Error 4 occurred at disk power-on lifetime: 409 hours (17 days + 1 hours)
When the command that caused the error occurred, the device was active or idle .

After command completion occurred, registers were:
ER ST SC SN CL CH DH


10 51 01 8b 53 dc e0 Error: IDNF 1 sectors at LBA = 0x00dc538b = 14439307

Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name


25 00 01 8b 53 dc e0 00 00:00:20.600 READ DMA EXT
25 00 01 85 53 dc e0 00 00:00:20.600 READ DMA EXT
25 00 01 ff 03 fb e0 00 00:00:20.500 READ DMA EXT
25 00 01 00 00 00 e0 00 00:00:20.500 READ DMA EXT
25 00 01 00 00 00 e0 00 00:00:20.200 READ DMA EXT

Error 3 occurred at disk power-on lifetime: 409 hours (17 days + 1 hours)
When the command that caused the error occurred, the device was active or idle .

After command completion occurred, registers were:
ER ST SC SN CL CH DH


10 51 01 85 53 dc e0 Error: IDNF 1 sectors at LBA = 0x00dc5385 = 14439301

Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name


25 00 01 85 53 dc e0 00 00:00:20.600 READ DMA EXT
25 00 01 ff 03 fb e0 00 00:00:20.500 READ DMA EXT
25 00 01 00 00 00 e0 00 00:00:20.500 READ DMA EXT
25 00 01 00 00 00 e0 00 00:00:20.200 READ DMA EXT
42 00 01 3e c5 fa e0 00 00:00:06.700 READ VERIFY SECTOR(S) EXT

Error 2 occurred at disk power-on lifetime: 409 hours (17 days + 1 hours)
When the command that caused the error occurred, the device was active or idle .

After command completion occurred, registers were:
ER ST SC SN CL CH DH


10 51 01 8b 53 dc e0 Error: IDNF 1 sectors at LBA = 0x00dc538b = 14439307

Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name


25 00 01 8b 53 dc e0 00 00:03:46.700 READ DMA EXT
25 00 01 85 53 dc e0 00 00:03:46.600 READ DMA EXT
25 00 01 ff 03 fb e0 00 00:03:46.600 READ DMA EXT
25 00 01 00 00 00 e0 00 00:03:46.600 READ DMA EXT
25 00 01 00 00 00 e0 00 00:03:46.200 READ DMA EXT

Error 1 occurred at disk power-on lifetime: 409 hours (17 days + 1 hours)
When the command that caused the error occurred, the device was active or idle .

After command completion occurred, registers were:
ER ST SC SN CL CH DH


10 51 01 85 53 dc e0 Error: IDNF 1 sectors at LBA = 0x00dc5385 = 14439301

Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name


25 00 01 85 53 dc e0 00 00:03:46.600 READ DMA EXT
25 00 01 ff 03 fb e0 00 00:03:46.600 READ DMA EXT
25 00 01 00 00 00 e0 00 00:03:46.600 READ DMA EXT
25 00 01 00 00 00 e0 00 00:03:46.200 READ DMA EXT
42 00 01 3e c5 fa e0 00 00:03:33.200 READ VERIFY SECTOR(S) EXT

SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]

Warning! SMART Selective Self-Test Log Structure error: invalid SMART checksum.
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
[/quote]

En fait , tu met dans /etc/acpi/ac.d/ un script qui met le hdparm à 254 :

hades@verveine:/etc/acpi/ac.d%cat hd.sh #/bin/sh hdparm -B 254 /dev/sda

Et dans /etc/acpi/battery.d/ un script qui met le hdparm à 1 :

hades@verveine:/etc/acpi/battery.d%cat hd.sh #!/bin/sh hdparm -B 1 /dev/sda

Comme ça tout roule, plus besoin de se prendre la tête à le faire à la main :smt003[/quote]
salut

j’ai testé ton astuce , mais ça ne fonctionne pas chez moi , je dois faire la manip à la main

merci

si tu lance les scripts dans ac.d et battery.d à la main , ça marche ?

Je viens de découvrir ce topic et ce problème par la même occasion. Pour être tout à fait certain que ce que j’ai fait est « bon », voici quelques infos sur mon cas. Si vous pouvez commenter, j’en serais rassuré.

Portable Asus F3JP-AK055C datant de Mars 2007. En moyenne, depuis l’achat, il est utilisé moins d’une heure par jour. Mais depuis la rentrée universitaire (octobre dernier), il tourne 4 à 5h. les jours de la semaine. La grande majorité du temps, il tourne sur secteur.

# smartctl -a /dev/sda | grep Load_Cycle 193 Load_Cycle_Count 0x0032 054 054 000 Old_age Always - 92355

En quelques minutes la valeur prenait plusieurs points.

J’ai lancé la commande suivante (j’ai lu que la valeur de 220 semblait être “un bon compromis”) :

J’obtiens une température de 35° ; il me semble avoir perdu 2° par rapport au moment où j’ai réglé sur “224” (j’étais alors monté à 37°) ; au tout départ (avant tout manip’), j’étais à 33°.

Deux que je n’ai toujours pas comprises :

  • ai-je à lancer cette commande à chaque démarrage ? (en même temps, je peux faire des test)
  • que doit-on faire de différent selon qu’on utilise le secteur ou la batterie ?

Merci :wink:

Edit : j’oubliais :

[code]# smartctl -a /dev/sda
smartctl version 5.37 [i686-pc-linux-gnu] Copyright © 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model: ST9160821AS
Serial Number: 5MA0P8EP
Firmware Version: 3.ALC
User Capacity: 160 041 885 696 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 7
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Fri Nov 9 12:30:03 2007 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 426) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
No General Purpose Logging support.
Short self-test routine
recommended polling time: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 111) minutes.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 106 100 006 Pre-fail Always - 12306283
3 Spin_Up_Time 0x0003 099 099 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 276
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 069 060 030 Pre-fail Always - 9540774
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 613
10 Spin_Retry_Count 0x0013 100 100 034 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 276
187 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0
189 Unknown_Attribute 0x003a 100 100 000 Old_age Always - 0
190 Temperature_Celsius 0x0022 065 049 045 Old_age Always - 622133283
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 263
193 Load_Cycle_Count 0x0032 054 054 000 Old_age Always - 92355
194 Temperature_Celsius 0x0022 035 051 000 Old_age Always - 35 (Lifetime Min/Max 0/17)
195 Hardware_ECC_Recovered 0x001a 075 058 000 Old_age Always - 95787283
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0
202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1

SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
[/code]

salut

non ça ne fonctionne pas non plus
j’ai juste mis celui pour ac.d , je l’ai mis dans /etc/acpi/ac.d
et j’y ai mis

hda pour mon disque.
je l’ai rendu executable
(et je viens de voir que tu as oublié un ! devant /bin/sh pour ac.d dans ton post :slightly_smiling: )mais ça ne fonctionne pas non plus

alors la je comprends pas , si tu éxécute les scripts à la main il se passe quoi ?

tu dois faire quoi pour que “ça marche” ?

[quote=“themorice”]alors la je comprends pas , si tu éxécute les scripts à la main il se passe quoi ?

tu dois faire quoi pour que “ça marche” ?[/quote]

je lance la commande dans un terminal

hdparm -B 254 /dev/hda
à chaque demarrage :confused:

Essayes en mettant /sbin/hdparm dans ton script, et testes le. Je ne comprends pas que tu n’aies pas eu d’erreur quand tu l’as testé à la main.

salut

je ne sais pas ou le mettre /sbin/hdparm :blush:

pour résumer , j’ai mis le script

#!/bin/sh hdparm -B 254 /dev/hda

sous /etc/acpi/ac.d en l’enregistrant hd.sh , je l’ai rendu executable et quand je click dessus avec LANCER DANS UN TERMINAL , le terminal s’ouvre et se ferme aussitot.

[quote=“farka”]salut

je ne sais pas ou le mettre /sbin/hdparm :blush: [/quote]Dans le script, voyons. A la place de simplement hdparm.[quote=“farka”]
pour résumer , j’ai mis le script

#!/bin/sh hdparm -B 254 /dev/hda

sous /etc/acpi/ac.d en l’enregistrant hd.sh , je l’ai rendu executable et quand je click dessus avec LANCER DANS UN TERMINAL , le terminal s’ouvre et se ferme aussitot.[/quote]Tu ne peux pas faire ce qu’on te conseille, à savoir: lancer un terminal, lancer le script, et voir ce qu’il dit ?

j’avais compris qu’il fallait le mettre dans le script , c’était où le mettre , dans le script qui me posait probleme .

pour le terminal , j’ai bon , là

[code]franck@debian-portable:~$ su
Password:
debian-portable:/home/franck# #!/bin/sh
debian-portable:/home/franck# /sbin/hdparm -B 254 /dev/hda

/dev/hda:
setting Advanced Power Management level to 0xFE (254)
debian-portable:/home/franck#
[/code]
excuser mon petit niveau sous linux 8)

Tu es un peu empoté tout de même… :wink:
On sait que la commande /sbin/hdparm -B 254 /dev/hda fonctionne, mais le script ?
Quand tu le lances à la main (pas quand tu executes une à une ses instructions) il fonctionne ?
il te met bien le message /dev/hda: setting Advanced Power Management level to 0xFE (254) ?
Si oui, alors c’est ailleurs qu’au niveau du script qu’il faudra chercher.