Badblocks
| Fiche express | |
|---|---|
| Domaine | Vérification physique d'un disque (secteurs défectueux) |
| Commande | badblocks
|
| Contexte | Diagnostic suite à des erreurs I/O, ou test de qualification avant mise en production d'un disque neuf |
| Voir aussi | Fdisk (partitionnement) |
badblocks recherche les secteurs physiquement défectueux d'un disque ou d'une partition. C'est un outil complémentaire à fsck : là où fsck vérifie la cohérence logique du système de fichiers, badblocks teste directement le support physique, secteur par secteur, en s'appuyant si besoin sur le résultat pour marquer les blocs à ne plus utiliser.
Les trois modes
-v : lecture seule (non destructif)
Mode par défaut, sans danger pour les données. badblocks lit chaque secteur et signale ceux qui ne répondent pas correctement, sans rien écrire sur le disque. Utilisable sur un disque en production, y compris monté, puisqu'aucune donnée n'est modifiée.
badblocks -v /dev/sda1
-w : écriture destructive
⚠️ Détruit toutes les données de la partition ou du disque testé. badblocks écrit successivement plusieurs motifs de test sur chaque secteur puis les relit pour vérifier l'intégrité, sans jamais restaurer le contenu d'origine. À ne lancer que sur un disque vide ou dont on a déjà sauvegardé/déplacé les données ailleurs — jamais sur une partition en production contenant des données à conserver.
badblocks -w /dev/sdb
-n : lecture-écriture non destructive
Compromis entre les deux : badblocks lit le contenu existant de chaque secteur, écrit un motif de test, vérifie la lecture, puis réécrit le contenu original avant de passer au secteur suivant. Aucune perte de données, mais nettement plus lent que -w puisque chaque secteur est lu, écrit et réécrit au lieu d'être simplement écrit puis relu. À réserver aux cas où un test approfondi est nécessaire sur un disque déjà en service et qu'on ne peut pas se permettre de le vider au préalable.
badblocks -n /dev/sda1
Options utiles
badblocks -sv /dev/sda1 # -s : affiche la progression (utile sur un gros disque, sans ça badblocks reste silencieux jusqu'à la fin)
badblocks -o /tmp/badblocks.out -v /dev/sda1 # -o : écrit la liste des blocs défectueux trouvés dans un fichier
badblocks -b 4096 -v /dev/sda1 # -b : force la taille de bloc testée (par défaut, taille de bloc du système de fichiers)
Intégration avec fsck
Le fichier produit par -o peut être transmis à fsck/e2fsck pour que le système de fichiers marque explicitement ces blocs comme défectueux et cesse de les utiliser :
badblocks -o /tmp/badblocks.out -sv /dev/sda1
e2fsck -l /tmp/badblocks.out /dev/sda1
e2fsck -c permet aussi de lancer directement un scan badblocks (mode -v) intégré à la vérification du système de fichiers, sans passer par un fichier intermédiaire.
Avant mise en production d'un disque neuf
Sur un disque encore vide, avant d'y stocker quoi que ce soit, -w est le test le plus complet puisqu'il n'y a aucune donnée à préserver : c'est le moyen le plus fiable de détecter un disque défaillant avant qu'il ne parte en production avec des données dessus. Une vérification préalable des attributs SMART du disque est un contrôle rapide et non intrusif à faire en amont, mais elle ne remplace pas un test physique complet des secteurs.
badblocks -wsv /dev/sdb # disque entier, avant tout partitionnement
Sur un disque déjà partitionné et monté, -v (lecture seule) reste l'option sûre ; -n si un test en écriture est nécessaire sans pouvoir vider le disque au préalable.
Voir aussi
- Fdisk — partitionner le disque une fois le test terminé (ou avant, sur un disque neuf)