# Guide de validation des disques durs avant mise en production

## Première étape : Tests S.M.A.R.T.

S.M.A.R.T. (**Self-Monitoring, Analysis and Reporting Technology** / **Technologie d'auto-surveillance, d'analyse et de rapport**) est un système de surveillance intégré aux disques durs qui détecte et signale divers indicateurs de fiabilité dans le but de prévoir les défaillances matérielles.

Nous utiliserons `smartmontools` pour cette étape afin d'obtenir l'état du disque dur avant de le soumettre au test de stress. Le paquet dont vous aurez besoin d'installer s'appelle smartmontools :

Vous pouvez suivre la progression de n'importe lequel des tests suivants avec cette commande : `smartctl -a /dev/sdX`

La progression (en pourcentage) du test se trouve sur la ligne `Self-test execution status:`

[![Capture d’écran du 2025-11-03 21-39-35 (Modifier).png](https://wiki.favrep.ch/uploads/images/gallery/2025-11/scaled-1680-/capture-decran-du-2025-11-03-21-39-35-modifier.png)](https://wiki.favrep.ch/uploads/images/gallery/2025-11/capture-decran-du-2025-11-03-21-39-35-modifier.png)

La valeur zéro (`0`) signifie que notre test est terminé ou qu'aucun test n'est en cours d'exécution. Vous pouvez toujours interrompre un test avec `smartctl -X /dev/sdX`

> Remplacez X par la lettre de votre lecteur

### Test court

Le test **court** effectue un diagnostic rapide des composants essentiels du disque (électronique, têtes de lecture, secteurs critiques).

`smartctl -t short /dev/sdX`

Environ 2 minutes pour un disque dur de 4 To.

### Test de transport

Le test de **transport** détecte les dommages survenus pendant l'expédition (chocs, vibrations). Recommandé pour les disques neufs.

`smartctl -t conveyance /dev/sdX`

Environ 5 minutes pour un disque dur de 4 To.

### Test long

Le test **long** analyse l'intégralité de la surface du disque, secteur par secteur. C'est le test le plus complet.

`smartctl -t long /dev/sdX`

Environ 500 minutes pour un disque dur de 4 To. Ce test peut prendre beaucoup de temps, selon la taille de votre disque dur.

## Deuxième étape : Mise sous contrainte du disque dur

### Préparation

Cette étape doit être effectuée via SSH, en utilisant `tmux`. Cela permettra de maintenir le test en cours même si la connexion est perdue. Activez le service `SSH` sur `TrueNAS` (Paramètres système -&gt; Services -&gt; SSH)

### Test de stress

Cette commande vérifie l'intégrité physique d'un disque en écrivant et lisant des motifs de test sur tous ses secteurs pour détecter les blocs défectueux avant de l'utiliser ou après un doute sur sa fiabilité.

```bash
sudo badblocks -b 4096 -wvs /dev/sdX
```

`-b` définit la taille de bloc `-w` effectue un test destructif, ce qui signifie qu'il **SUPPRIMERA** toutes les données présentes sur ce disque `-v` affiche les informations détaillées `-s` affiche la progression

`badblocks` effectue `4` passes :

```shell
- Première passe : test avec le motif 0xaa (10101010)
- Puis lecture et comparaison
- Deuxième passe : test avec le motif 0x55 (01010101)
- Puis lecture et comparaison
- Troisième passe : test avec le motif 0xff (11111111)
- Puis lecture et comparaison
- Quatrième passe : test avec le motif 0x00 (00000000)
- Puis lecture et comparaison

```

Si vous voulez tester en une seule passe :

```bash
sudo badblocks -wsv -t random -p 1 /dev/sdX
```

Pour lancer le test sur d'autres disques durs, appuyez sur Ctrl + B puis sur ", cela divisera l'écran, vous pourrez alors exécuter `badblocks` sur le disque suivant. Vous pouvez diviser l'écran autant de fois que vous le souhaitez.

[![image.png](https://wiki.favrep.ch/uploads/images/gallery/2025-10/scaled-1680-/c9simage.png)](https://wiki.favrep.ch/uploads/images/gallery/2025-10/c9simage.png)

Après avoir lancé badblocks pour tous vos disques durs, vous pouvez laisser la connexion SSH ouverte ou la fermer. Pour vous reconnecter plus tard, reconnectez-vous en SSH à TrueNAS et exécutez `tmux attach`

Exemple de résultat de `badblocks` pour des disques durs en bon état :

```shell
truenas# badblocks -b 4096 -wvs /dev/sda
Checking for bad blocks in read-write mode
From block 0 to 976754645
Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: done
Testing with pattern 0xff: done
Reading and comparing: done
Testing with pattern 0x00: done
Reading and comparing: done
Pass completed, 0 bad blocks found. (0/0/0 errors)
```

## Troisième étape : Résultats

Une fois le test de stress `badblocks` terminé, nous devons effectuer un autre test `long` sur chaque disque dur pour vérifier qu'aucun problème n'est apparu suite au stress intensif.

`smartctl -t long /dev/sdX`

Une fois le test `long` terminé, il est temps d'obtenir nos résultats. Nous les obtenons avec cette commande :

`smartctl -A /dev/sdX` (Notez le `A` majuscule)

Les champs importants sont les lignes `Reallocated_Sector_Ct`, `Current_Pending_Sector` et `Offline_Uncorrectable`. Toutes ces valeurs doivent avoir une `RAW_VALUE` de `0`, même si le champ `VALUE` affiche `200`. Tout résultat supérieur à `0` devrait être une raison de demander un RMA.

Résultat de `smartctl -A /dev/sdX` pour des disques durs en bon état :

[![Capture d’écran du 2025-11-03 23-51-49.png](https://wiki.favrep.ch/uploads/images/gallery/2025-11/scaled-1680-/capture-decran-du-2025-11-03-23-51-49.png)](https://wiki.favrep.ch/uploads/images/gallery/2025-11/capture-decran-du-2025-11-03-23-51-49.png)