WDC a eu la bonne idée sur la gamme Green des disques dur Western Digital de suspendre la rotation du moteur après 8 secondes.
C'est bien, merci, la facture EDF va être réduite mais il va falloir acheter des disques plus souvent et subir des performances infâmes.
Bref, cette option est vraiment ignoble et pour la désactiver ou modifier le temps, on pourra utiliser un utilitaire officiel depuis DOS wdidle3.exe ou alors utiliser idle3ctl.
1. Installation
Sous Arch Linux :
[root@local ~]# pacman -S idle3-tools
2. Fix permanent
Cette procédure n'étant pas anodine, il peut être utile de récolter quelques informations avant de commencer.
N'hésitez pas à lire le man idle3ctl
, en voici un court passage utile :
When no flags are given, -g is assumed.
-h Display help
-V Show version and exit
-v activate verbose output, mainly useful for debugging.
--force
force execution even if no Western Digital HDD are detected
-g get raw idle3 timer value
-g100 get idle3 timer value as wdidle3 v1.00 would display it
-g103 get idle3 timer value as wdidle3 v1.03 would display it
-d disable idle3 timer
-s<value>
set idle3 timer raw value. Value must be an integer between 1 and 255. The idle3 timer is set in
0.1s for the 1-128 range, and in 30s for the 129-255 range.
Récupération de la valeur de temps de mon disque :
[root@local ~]# idle3ctl -g /dev/sdX
Idle3 timer set to 80 (0x50)
[root@local ~]# idle3ctl -g103 /dev/sdX
Idle3 timer set to 8.0s (0x50)
Pour mon cas, c'est la valeur par défaut : 8 secondes
Modification de la valeur :
Pour calculer le temps souhaité, le man nous dit que chaque unité de 1 à 128 rajoute 0.1 seconde et 129 à 254 rajoute 30 secondes.
3600 secondes = (248-128)*30
1800 secondes = (188-128)*30
Pour passer la valeur à 1 heure de manière définitive :
[root@local ~]# idle3ctl -s248 /dev/sdX
Idle3 timer set to 248 (0xf8)
Please power cycle your drive off and on for the new setting to be taken into account. A reboot will not be enough!
A répéter sur tout les disques, par exemple :
[root@local ~]# idle3ctl -s248 /dev/sdb
[root@local ~]# idle3ctl -s248 /dev/sdc
[root@local ~]# idle3ctl -s248 /dev/sdd
[root@local ~]# idle3ctl -s248 /dev/sde
[root@local ~]# idle3ctl -s248 /dev/sdf
ou :
[root@local ~]# idle3ctl -s248 /dev/sd[bcdef]
Pour désactiver de manière définitive :
[root@local ~]# idle3ctl -d /dev/sdX
Idle3 timer disabled
Please power cycle your drive off and on for the new setting to be taken into account. A reboot will not be enough!
3. Vérification
Après avoir éteint complètement (poweroff) la machine puis rallumer, on va tester si les valeurs ont bien été prises en compte :
[root@local ~]# idle3ctl -g /dev/sdX
Idle3 timer set to 248 (0xf8)
[root@local ~]# idle3ctl -g103 /dev/sdX
Idle3 timer set to 3600.0s (0xf8)
Pour mon cas avec 5 disques :
[root@local ~]# idle3ctl -g /dev/sd[bcdef]
Idle3 timer is disabled
Idle3 timer is disabled
Idle3 timer is disabled
Idle3 timer is disabled
Idle3 timer is disabled