Notez que certains lecteurs n'implémentent pas cette fonctionnalité, même si la commande réussit. Vous devrez peut-être également réduire la gestion avancée de l'alimentation niveau à 127 ou moins avec hdparm -B 127 /dev/sda
. À partir de la page de manuel :
-BGet/set Advanced Power Management feature...valeurs 1 à 127 (qui autorisent le ralentissement) et valeurs 128à 254 (qui ne permettent pas le ralentissement).
Si tout échoue, vous pouvez écrire un petit script qui interroge /proc/diskstats
ou /sys/block/sda/stat
pour le nombre de lectures/écritures sur le périphérique et met explicitement le lecteur en veille si elles ne changent pas pendant plusieurs minutes. Voir l'utilitaire hd-idle.
Le problème réel était smartd
, qui vérifiait régulièrement les valeurs de l'appareil, même lorsqu'il était en mode veille.
Je l'ai résolu en désactivant smartd
et exécuter des tests avec smartctl
de temps en temps.
Je suis sous Ubuntu 18.04 et j'ai eu le même problème. grâce à la réponse de @allo, j'ai découvert le smartd
en est bien la cause.
par défaut le /etc/smartd.conf
est configuré comme ceci :
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/martd-runner
qui analysera automatiquement tous les lecteurs et les interrogera (cette opération fait tourner le disque) périodiquement (par défaut 30 minutes, modifiable). bien qu'avec le -n standby
partie smartd ignorera les disques en rotation, mais le problème est le suivant :si l'intervalle d'interrogation de smartd est plus court que le temps "d'arrêt après" du disque, alors smartd interrogera toujours le disque AVANT qu'il n'ait la possibilité de ralentir, donc le disque ne passera jamais en mode veille.
si le "délai d'arrêt" du disque est plus court que l'intervalle d'interrogation de smartd, alors le disque s'arrêterait avant l'interrogation de smartd, après quoi smartd ignorera ce disque et ne le fera pas tourner.si le disque est (manuellement) ralenti par d'autres des outils comme hd-idle
, alors smartd l'ignorera également.
une façon de modifier l'intervalle d'interrogation smartd plus long est de modifier cette ligne dans /etc/default/smartmontools
:
smartd_opts="--interval=1800"
1800 meas 30 min, faire 10800 (3 heures) est assez long, par exemple.et n'oubliez pas de les redémarrer :
systemctl restart smartd smartmontools