IDLE3 et Western Digital Green

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
  2. Fix permanent
  3. Vérification
  4. Références et remerciements

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

4. Références et remerciements