feigned

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

Le Crabe
  • Le
  • Mis à jour le
  • 58.6K vues
  • 6 commentaires

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.

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.

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

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é !
69 utilisateurs actifs
Chargement en cours