Hdparm (Français)

État de la traduction:
Cet article est la version francophone de
Hdparm
. Date de la dernière traduction: 2022-10-03. Vous pouvez aider à synchroniser la traduction s'il y a eu des
changements
dans la version anglaise.
hdparm
et
sdparm
sont des utilitaires en ligne de commande pour définir et visualiser les paramètres matériels des
Disque Dur
.
hdparm
peut également être utilisé comme un simple outil de
benchmarking
.
A l'origine,
hdparm
a été créé pour les disques
IDE
et
sdparm
pour les disques
SCSI
. Comme les interfaces des périphériques de stockage depuis 2010 environ sont un mélange amélioré d'IDE et de SCSI,
hdparm
et
sdparm
se complètent.
Attention
Changer les paramètres par défaut du disque peut geler le système ou même endommager le disque de manière irréversible.
Installation
Installez
le paquet
hdparm
. Pour une utilisation avec des périphériques SCSI, installez le paquet
sdparm
.
Utilisation
Informations sur le disque
Pour obtenir des informations sur les disques durs, exécutez ce qui suit :
# hdparm -I /dev/sda
Benchmarking
hdparm peut être utilisé pour du
Benchmarking#hdparm
.
Configuration de la gestion de l'alimentation
Les disques durs modernes prennent en charge de nombreuses fonctions de gestion de l'alimentation, les plus courantes sont résumées dans le tableau suivant. Consultez
hdparm(8)
pour la liste complète.
Attention
Une gestion de l'alimentation trop agressive peut réduire la durée de vie des disques durs en raison de leurs stationnements et arrêts fréquents.
Paramètre
Description
-B
Définit la fonction
Advanced Power Management
. Les valeurs possibles sont comprises entre 1 et 255, les valeurs faibles signifiant une gestion de l'énergie plus agressive et les valeurs élevées une meilleure performance. Les valeurs de 1 à 127 autorisent le spin-down, tandis que les valeurs de 128 à 254 ne le permettent pas. Une valeur de 255 désactive complètement la fonction.
-S
Définissez le délai d'attente en mode veille (spin down) pour le disque. Ce délai spécifie le temps d'attente en mode veille (sans activité du disque) avant de couper le moteur pour économiser de l'énergie. La valeur 0 désactive le spindown, les valeurs de 1 à 240 spécifient des multiples de 5 secondes et les valeurs de 241 à 251 des multiples de 30 minutes.
-M
Définit la fonction
Automatic Acoustic Management
. La plupart des disques durs modernes ont la capacité d'accélérer les mouvements de la tête afin de réduire leur niveau de bruit. La valeur possible dépend du disque, certains disques peuvent ne pas prendre en charge cette fonctionnalité.
Note
Lorsque vous passez à la fois les paramètres
-B
et
-S
, les valeurs APM inférieures à 128 peuvent provoquer l'arrêt du disque avant la valeur de timeout
-S
. Consultez
[1]
.
Pour demander la valeur actuelle, passez le paramètre sans valeur. Par exemple :
# hdparm -B /dev/sda
Pour appliquer une valeur différente, par exemple définir APM à 127 :
# hdparm -B 127 /dev/sda
Cache en écriture
La mise en cache en écriture est le processus de mise en cache temporaire des fichiers dans la
mémoire intégrée du disque
avant de les écrire sur le disque, ce qui constitue essentiellement une amélioration des performances. La mise en cache en écriture est une fonctionnalité fournie par la plupart des disques durs, et elle est activée par défaut dans la plupart des cas. Pour vérifier si c'est le cas, exécutez :
$ hdparm -W /dev/
sdX
Attention
Bien que le cache en écriture améliore gratuitement les performances, il présente également un inconvénient. L'activation du cache en écriture augmente le risque de perte de données en cas de coupure soudaine de l'alimentation.
S'il est désactivé, on peut l'activer avec :
$ hdparm -W 1 /dev/
sdX
.
À l'inverse, pour le désactiver, on peut utiliser :
$ hdparm -W 0 /dev/
sdX
Mettre hors tension un disque dur
Un cas d'utilisation typique, où une telle fonctionnalité est recherchée, est celui des disques connectés à un boîtier externe USB/SATA/FireWire bon marché, ou à un concentrateur. S'il n'émet pas correctement une commande d'arrêt au disque lors de la mise hors tension, le disque est forcé d'effectuer un retrait d'urgence de la tête. Si vous faites cela régulièrement, tôt ou tard, le disque sera cassé. Une solution consiste, une fois que l'on est sûr que les données ont été écrites sur le support, à exécuter une commande pour éteindre le lecteur :
# hdparm -Y /dev/sd
X
Attention
Soyez absolument certain que :
Les données ont bien été écrites sur le support. Il est également conseillé d'attendre un certain temps pour que le lecteur devienne inactif.
Le périphérique,
/dev/sd
X
dans l'exemple, est celui que vous voulez éteindre.
Trucs et astuces
Interroger l'état du disque sans le réveiller
L'invocation de hdparm avec l'option query est connue pour réveiller certains disques.  Dans ce cas, considérez
smartctl
fourni par
smartmontools
pour interroger le périphérique qui ne réveillera pas un disque endormi. Par exemple :
# smartctl -i -n standby /dev/sda
smartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.10.13-1-ARCH] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

Device is in STANDBY mode, exit(2)
Configuration persistante à l'aide de la règle udev
Pour que la configuration soit persistante après un redémarrage, on peut utiliser une règle
udev
:
/etc/udev/rules.d/69-hdparm.rules
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sda", RUN+="/usr/bin/hdparm -B 254 -S 0 /dev/sda"
Étant donné qu'un disque peut être attribué de manière aléatoire à un
/dev/sd
X
en tant que périphérique, le disque peut également être identifié par son numéro de série comme expliqué dans
Udev (Français)#Identifier un disque par son numéro de série
.
Les systèmes dotés de plusieurs disques durs peuvent appliquer la règle de manière flexible en fonction de certains critères. Par exemple, pour appliquer les paramètres d'économie d'énergie à tous les disques rotatifs (disque dur avec tête rotative, excluant en particulier les
solid state drives
), utilisez la règle suivante :
/etc/udev/rules.d/69-hdparm.rules
ACTION=="add|change", KERNEL=="sd[a-z]", ATTRS{queue/rotational}=="1", RUN+="/usr/bin/hdparm -B 127 /dev/%k"
Ré-application de la configuration après le réveil
Si la configuration est perdue après une suspension/hibernation du système, elle peut être réappliquée en utilisant
systemd-sleep
.
Placez un script dans
/usr/lib/systemd/system-sleep
et rendez-le exécutable :
/usr/lib/systemd/system-sleep/hdparm
#!/bin/sh

case $1 in post)
        /usr/bin/hdparm -B 254 -S 0 /dev/sda
        ; ;
esac
Mise en veille d'un lecteur directement après le démarrage
Un périphérique qui est rarement utilisé peut être mis en veille directement à la fin du processus de démarrage. Cela ne fonctionne pas avec la règle udev ci-dessus car cela se produit trop tôt. Pour lancer la commande lorsque le démarrage est terminé, il suffit de créer un service
systemd
puis
activez
-le :
/etc/systemd/system/hdparm.service
[Unit]
Description=hdparm sleep

[Service]
Type=oneshot
ExecStart=/usr/bin/hdparm -q -S 120 -y /dev/sdb

[Install]
WantedBy=multi-user.target
Utilisation de matériel non pris en charge
Certains disques ne prennent pas en charge l'extinction via hdparm. Un message d'erreur de diagnostic similaire au suivant est une bonne indication que c'est le cas :
# hdparm -S 240 /dev/sda
/dev/sda:
setting standby to 240 (20 minutes)
HDIO_DRIVE_CMD(setidle) failed: Invalid argument
Pour certains autres disques, la commande hdparm est reconnue mais le disque ne respecte pas les paramètres (soit APM ou spin down timer). Ceci a été observé avec un disque dur Toshiba P300 (modèle HDWD120).
De tels disques peuvent être mis hors tension en utilisant
hd-idle
AUR
qui est fourni avec un service
systemd (Français)
. Éditez
/etc/conf.d/hd-idle
et la valeur
HD_IDLE_OPTS
, puis
démarrez
et
activez
hd-idle.service
.
Exemple utilisant un temps d'inactivité de 10 min pour
/dev/sda
et un temps d'inactivité de 1 min pour
/dev/disk/by-uuid/01CF0AC9AA5EAF70
:
HD_IDLE_OPTS="-i 0 -a /dev/sda -i 600 -a /dev/disk/by-uuid/01CF0AC9AA5EAF70 -i 60"
le paramètre de départ
-i 0
indique que la fonction hd-idle est désactivée sur les autres disques.
Gestion de l'alimentation pour les disques Western Digital Green
Les disques durs
Western Digital Green
ont une minuterie spéciale
idle3
qui contrôle le temps d'attente du disque avant de positionner ses têtes dans leur position de parking et d'entrer dans un état de faible consommation d'énergie.  Le réglage d'usine par défaut est agressivement fixé à 8 secondes, ce qui peut entraîner des milliers de cycles de chargement/déchargement des têtes en un court laps de temps et éventuellement une défaillance prématurée, sans parler de l'impact sur les performances du disque qui doit souvent se réveiller avant d'effectuer des E/S de routine. Western Digital a publié une
information
, affirmant que Linux n'est pas optimisé pour les périphériques de stockage à faible consommation et conseillant de réduire la fréquence d'enregistrement. Il existe différentes façons de modifier l'état
idle3
:
Western Digital fournit un utilitaire DOS
wdidle3.exe
à
télécharger
permettant de modifier ce paramètre. Cet utilitaire est conçu pour mettre à jour uniquement le firmware des disques durs suivants : WD1000FYPS, WD7500AYPS, WD7501AYPS mais il est connu pour être capable de modifier la minuterie
idle3
d'autres modèles Green également.
hdparm propose une implémentation de rétro-ingénierie derrière le paramètre
-J
, qui n'est pas aussi complète que le programme officiel original, même si elle semble fonctionner sur au moins quelques disques. Un réglage de 30 secondes est recommandé pour une utilisation sous Linux. Spécifiez une valeur de zéro (0) pour désactiver complètement la minuterie idle3 de WD ('
non recommandé
):
# hdparm -J 30 --please-destroy-my-drive /dev/sda
Consultez
#Configuration persistante à l'aide de la règle udev
pour utiliser automatiquement ce paramètre sur les disques durs pris en charge.
Un autre utilitaire non officiel est fourni par le paquet
idle3-tools
. Une valeur brute
idle3
est passée en paramètre de la commande
idle3ctl
. La correspondance entre cette valeur et le délai d'attente en secondes est fournie dans le tableau inférieur de
idle3ctl(8)
. La commande suivante définit le temporisateur à 30 secondes:
# idle3ctl -s 129 /dev/sdc
La commande suivante désactive complètement le timer (
non recommandé
):
# idle3ctl -d /dev/sdc
Note
Un cycle d'alimentation complet est nécessaire pour que tout changement prenne effet, quel que soit le programme ci-dessus utilisé. Cela signifie que le disque doit être mis hors tension puis sous tension, un simple redémarrage ne suffit pas.
Certains disques Western Digital Green sont également connus pour avoir une interprétation différente du paramètre de délai de mise en veille de hparm,
-S 1
, ce qui entraîne un délai de 10 minutes au lieu de 5 secondes.
La consommation d'énergie d'un disque Green est généralement d'environ 5,3 W en lecture/écriture, 4,7 W en mode veille et 0,7 W en mode veille.
Dépannage
Réinitialisation du niveau APM après la suspension
Le niveau APM peut être réinitialisé après une suspension, ce qui nécessite de le réexécuter après chaque reprise. Ceci peut être automatisé avec l'unité
systemd
suivante (adaptée d'un
fil du forum
) :
/etc/systemd/system/apm.service
[Unit]
Description=Local system resume actions
After=suspend.target hybrid-sleep.target hibernate.target

[Service]
Type=simple
ExecStart=/usr/bin/hdparm -B 254 /dev/sda

[Install]
WantedBy=sleep.target
Note
La
sleep.target
est requise par toutes les cibles
suspend
,
hybrid-sleep
et
hibernate
, mais elle termine le démarrage
avant
que le système soit suspendu, donc les trois cibles doivent être spécifiées explicitement. Consultez
[2]
.
Vous pouvez également créer un
hook dans /usr/lib/systemd/system-sleep
.
Consulter aussi
https://sourceforge.net/projects/hdparm/
- hdparm sur SourceForge