Aller au contenu

Température et santé du stockage

hddtemp est un utilitaire en ligne de commande permettant de surveiller la température des disques durs sous Linux. Il fonctionne en récupérant les informations S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) des disques pour afficher leur température. Cet outil peut être utilisé pour prévenir la surchauffe des disques, un facteur qui pourrait entraîner une défaillance matérielle.

Support de hddtemp dans les distributions Linux récentes

Section intitulée « Support de hddtemp dans les distributions Linux récentes »

hddtemp était historiquement disponible dans de nombreuses distributions Linux. Cependant, en raison de son manque de maintenance récente, il a été retiré de certaines distributions majeures, notamment Debian. Voici un tableau récapitulatif de la disponibilité de hddtemp dans les deux dernières versions des principales distributions Linux :

DistributionVersionDisponibilité de hddtemp
Debian12 (Bookworm)Non disponible
11 (Bullseye)Disponible
Ubuntu23.04Non disponible
22.04 (LTS)Disponible
Linux Mint21.2 (Victoria)Non disponible
21.1 (Vera)Non disponible
RHEL9Non disponible
8Non disponible
Fedora38Non disponible
37Non disponible

Pour les distributions où hddtemp n’est plus disponible, il existe plusieurs alternatives pour surveiller la température des disques :

  1. smartctl : Utilitaire faisant partie du paquet smartmontools, il permet de récupérer des informations S.M.A.R.T. plus détaillées sur les disques durs et les SSD, y compris la température.

    Fenêtre de terminal
    sudo smartctl -A /dev/sdX | grep Temperature_Celsius
  2. nvme-cli : Pour les disques NVMe, nvme-cli fournit des informations détaillées sur la santé du disque, y compris la température.

    Fenêtre de terminal
    sudo nvme smart-log /dev/nvmeX | grep temperature

Comme mentionné précédemment, hddtemp utilise les données S.M.A.R.T. des disques pour déterminer la température. Les informations S.M.A.R.T. sont un ensemble d’attributs surveillant la fiabilité des disques durs et des SSD. Cela inclut non seulement la température, mais aussi d’autres indicateurs clés comme le nombre de secteurs réalloués, les erreurs de lecture et d’écriture, et les temps de démarrage. Pour accéder à ces informations sans hddtemp, les outils comme smartctl sont recommandés.

En remplacement du défunt programme “Hddtemp” sous Debian.

#!/bin/bash
STR="MODEL|DEV|TESTS|REALLOCATED_SECTORS|SEEK_ERRORS|PENDING|UNCORRECTABLE_SECTORS|RUN_HOURS|TEMPERATURE\n"
while read DISK; do
	INFO=$(smartctl -a "${DISK}")
	MODEL=$(echo "${INFO}"|grep "Device Model"|sed 's/Device Model: *//')
	if [[ -z "${MODEL}" ]]; then
		MODEL="-"
	fi
	TESTS=$(echo "${INFO}"|grep "overall-health"|sed 's/overall-health: *//'|sed 's/ //g'|cut -d ":" -f2)
	if [[ -z "${TEST}" ]]; then
		TEST="-"
	fi
	REALLOC=$(echo "${INFO}"|grep "Reallocated_Sector_Ct"|sed 's/Reallocated_Sector_Ct: *//'|sed 's/.*-//g'|sed 's/ //g'|cut -d "(" -f1)
	if [[ -z "${REALLOC}" ]]; then
		REALLOC="-"
	fi
	SEEK=$(echo "${INFO}"|grep "Seek_Error_Rate"|sed 's/Seek_Error_Rate: *//'|sed 's/.*-//g'|sed 's/ //g'|cut -d "(" -f1)
	if [[ -z "${SEEK}" ]]; then
		SEEK="-"
	fi
	PENDING=$(echo "${INFO}"|grep "Current_Pending_Sector"|sed 's/Current_Pending_Sector: *//'|sed 's/.*-//g'|sed 's/ //g'|cut -d "(" -f1)
	if [[ -z "${PENDING}" ]]; then
		PENDING="-"
	fi
	UNCORRECT=$(echo "${INFO}"|grep "Offline_Uncorrectable"|sed 's/Offline_Uncorrectable: *//'|sed 's/.*-//g'|sed 's/ //g'|cut -d "(" -f1)
	if [[ -z "${UNCORRECT}" ]]; then
		UNCORRECT="-"
	fi
	HOURS=$(echo "${INFO}"|grep "Power_On_Hours"|sed 's/Power_On_Hours: *//'|sed 's/.*-//g'|sed 's/ //g'|cut -d "(" -f1)
	if [[ -z "${HOURS}" ]]; then
		HOURS="-"
	fi
	TEMP=$(echo "${INFO}"|grep "Temperature_Celsius"|sed 's/.*-//g'|sed 's/ //g'|cut -d "(" -f1)
	if [[ -z "${TEMP}" ]]; then
		TEMP="-"
	fi
	STR="${STR}\n${MODEL}|$(echo ${DISK}|sed 's/\/dev\///g')|${TESTS}|${REALLOC}|${SEEK}|${PENDING}|${UNCORRECT}|${HOURS}|${TEMP}"
done < <(ls /dev/sd?|tr " " "\n")
echo -en "${STR}"|column -s "|" -t

Visualisation des résultats

Fenêtre de terminal
MODEL DEV TESTS REALLOCATED_SECTORS SEEK_ERRORS PENDING UNCORRECTABLE_SECTORS RUN_HOURS TEMPERATURE
- sda - - - - - -
WDC WD102KRYZ-01A5AB0 sdb PASSED 0 0 0 0 1313 38
ST10000VE0008-2PQ103 sdc PASSED 0 372325321 0 0 11877 34
Warning

Quand il est installable…ce qui n’est plus le cas sous Debian 12 !!

Super utilisateur
apt-get install hddtemp
Super utilisateur
hddtemp -d /dev/sd[abcde]