feigned

Linux : vérifier l’état de santé de son disque dur

Avatar de Le Crabe Le Crabe

Publicité

Ce tutoriel vous explique comment vérifier l’état de santé de votre disque dur ou SSD sur Linux à l’aide de deux outils différents : smartctl et badblocks.

Publicité

Ces deux outils fonctionnent différemment :

  • smartctl s’appuie sur les données collectées par S.M.A.R.T. (Self Monitoring Analysis and Reporting Technology) – technologie de surveillance aujourd’hui intégrée dans la quasi totalité des disques – pour déterminer l’état de santé du disque. Pour rappel, S.M.A.R.T. collecte en permanence des informations sur la santé d’un disque : taux d’erreur en lecture, taux d’erreur d’accès aux têtes, température, nombre de secteurs ré-allouées, secteurs défectueux, etc.
  • badblocks permet de tester chaque bloc du disque, à la recherche de blocs défectueux. Le test peut prendre énormément de temps (plusieurs heures) selon la taille et les performances du disque.
Utilisateur de Windows ? Suivez ce tutoriel : vérifier l’état de santé de son disque dur sur Windows.

Publicité

Méthode n°1 : avec smartctl

smartctl utilise les données collectées par S.M.A.R.T. – technologie de surveillance intégrée dans tous les disques durs et SSD – pour déterminer si un disque est en bonne santé ou non.

Voici comment utiliser smartctl :

  1. Ouvrez le Terminal.
  2. Identifiez le nom du disque à analyser (ex. : sda) grâce à cette commande avancée basée sur lsblk :
    lsblk -o name,model,size -d | grep -v loop
    
    NAME    MODEL                                      SIZE
    sda     HDS721616PLAT80                          149,1G
    nvme0n1 PM981 NVMe Samsung 512GB                   477G
  3. Installez le paquet smartmontools, nécessaire pour utiliser smartctl :
    sudo apt install --no-install-recommends smartmontools
  4. Vérifiez l’état de santé du disque avec la commande suivante (remplacez sda par le nom de votre disque) :
    sudo smartctl -H /dev/sda
    
    === START OF SMART DATA SECTION ===
    SMART overall-health self-assessment test result: PASSED

    Si vous utilisez un disque IDE, ajoutez l’option -d scsi.

  5. Repérez la valeur du champ « SMART Health Status » ou « SMART overall-health self-assessment test results » : si c’est OK ou PASSED, c’est que votre disque est en bonne santé !
  6. Pour avoir plus d’informations sur les données S.M.A.R.T., utilisez l’option -a :
    sudo smartctl -a /dev/sda
    
    === START OF SMART DATA SECTION ===
    SMART overall-health self-assessment test result: PASSED
    
    SMART/Health Information (NVMe Log 0x02, NSID 0xffffffff)
    Critical Warning:                   0x00
    Temperature:                        29 Celsius
    Available Spare:                    100%
    Available Spare Threshold:          50%
    Percentage Used:                    0%
    Data Units Read:                    14 646 275 [7,49 TB]
    Data Units Written:                 10 656 869 [5,45 TB]
    Host Read Commands:                 150 009 630
    Host Write Commands:                107 152 958
    Controller Busy Time:               614
    Power Cycles:                       905
    Power On Hours:                     782
    Unsafe Shutdowns:                   53
    Media and Data Integrity Errors:    0
    Error Information Log Entries:      18
    Warning  Comp. Temperature Time:    0
    Critical Comp. Temperature Time:    0
    Temperature Sensor 1:               29 Celsius
    Temperature Sensor 2:               30 Celsius
  7. Si votre disque supporte l’auto-test, vous pouvez également effectuer une analyse du disque (les options short, long et conveyance sont disponibles) :
    sudo smartctl -t short /dev/sda

Publicité

Méthode n°2 : avec badblocks

badblocks est un utilitaire qui permet de tester chaque bloc d’un disque à la recherche de blocs défectueux. A la fin du test, badblocks indique la quantité et l’emplacement des blocs défectueux sur le disque. Si aucun bloc défectueux n’est détecté, c’est que votre disque est en bonne santé !

Voici comment utiliser badblocks :

  1. Ouvrez le Terminal.
  2. Identifiez le nom du disque à analyser (ex. : sda) grâce à cette commande avancée basée sur lsblk :
    lsblk -o name,model,size -d | grep -v loop
    
    NAME    MODEL                                      SIZE
    sda     HDS721616PLAT80                          149,1G
    nvme0n1 PM981 NVMe Samsung 512GB                   477G
  3. Lancez un test de lecture-écriture (non destructif) du disque (remplacez sda par le nom de votre disque) :
    sudo badblocks -svn /dev/sda
    
    Vérification des blocs défectueux dans un mode non destructif de lecture-écriture
    Du bloc 0 au bloc 80043263
    Vérification des blocs défectueux (test non destructif de lecture-écriture)
    Test en cours avec un motif aléatoire : complété
    Passe complétée, 0 blocs défectueux repérés. (0/0/0 erreurs)

    Ce test est destiné aux disques contenant déjà des données. Un test de lecture-écriture non destructif sauvegarde le contenu d’origine d’un secteur, teste ce dernier avec un motif aléatoire puis restaure le contenu du secteur à partir de la sauvegarde.

    Les options :

    • -s : affiche la barre de progression.
    • -v : mode verbeux, affiche les secteurs défectueux détectés.
    • -n : effectue un test de lecture-écriture non destructif.
  4. Analysez le résultat : si aucun bloc défectueux n’est détecté (0 bad blocks found. (0/0/0 errors)), c’est que votre disque est en bonne santé !
465 utilisateurs actifs
Chargement en cours