Comment vérifier l'intégrité d'un support de stockage (disque dur ou lecteur flash)?

52

J'ai rencontré (personnellement ou par procuration) un groupe de supports de stockage présentant des problèmes physiques au cours de leur vie. Les disques durs, les disques SSD et autres supports de stockage flash échouent tous après un certain temps. La situation est pire avec les clés USB et les cartes flash en raison du grand nombre de fournisseurs dont la qualité des cellules flash et des contrôleurs flash est inférieure.

Comment puis-je détecter de manière fiable si un lecteur de stockage subit des dommages physiques?

Notez que cette question ne concerne pas l’intégrité du système de fichiers (qui peut être vérifiée avec fsck(8) ).

    
posée David Foerster 20.10.2014 - 04:14
la source

4 réponses

59

Tout au long de cette réponse, je suppose qu'un lecteur de stockage apparaît comme un périphérique bloc au chemin d'accès /dev/sdc . Pour trouver le chemin d'un lecteur de stockage dans notre configuration actuelle, utilisez:

  • Disques Gnome (anciennement Utilitaire de disque Gnome, alias palimpsest ), si une interface graphique est disponible, ou
  • sur le terminal regardez la sortie de lsblk et ls -l /dev/disk/by-id et essayez de trouver le bon périphérique par taille, partitionnement, fabricant et nom de modèle.

Vérification de base

  • détecte uniquement les médias qui ne répondent pas du tout
  • presque instantané (sauf si le support est désactivé ou cassé)
  • safe
  • fonctionne sur un support en lecture seule (par exemple, CD, DVD, BluRay)

Parfois, un support de stockage refuse tout simplement de fonctionner. Il apparaît toujours comme un périphérique de bloc au noyau et dans le gestionnaire de disque, mais son premier secteur contenant la table de partition n'est pas lisible. Cela peut être vérifié facilement avec:

sudo dd if=/dev/sdc of=/dev/null count=1

Si cette commande génère un message concernant une "erreur d’entrée / sortie", notre disque est cassé ou ne fonctionne pas comme prévu avec le noyau Linux. Dans le premier cas, avec un peu de chance, un spécialiste de la récupération de données doté d'un laboratoire équipé de manière appropriée peut récupérer son contenu. Dans ce dernier cas, un système d'exploitation différent vaut la peine d'essayer. (J'ai rencontré des lecteurs USB fonctionnant sous Windows sans pilotes spéciaux, mais pas sous Linux ou OS X.)

S.M.A.R.T. auto-test

  • rigueur réglable
  • instantané à ralentir ou à ralentir (dépend de la rigueur du test)
  • safe
  • met en garde contre un échec probable dans un avenir proche

Les appareils qui le prennent en charge peuvent être interrogés sur leur état de santé via SMART ou invités à effectuer des auto-tests d’intégrité de différents types. minutie. C'est généralement la meilleure option, mais généralement disponible uniquement sur les disques durs (non anciens) et les disques SSD. La plupart des supports flash amovibles ne le prennent pas en charge.

Autres ressources et instructions:

  • Répondez à propos de S.M.A.R.T. sur cette question
  • Comment puis-je vérifier l'état SMART d'un lecteur sur Ubuntu 14.04 à 16.10?

Vérification en lecture seule

  • détecte uniquement certaines erreurs de média flash
  • assez fiable pour les disques durs
  • lent
  • safe
  • fonctionne sur un support en lecture seule (par exemple, CD, DVD, BluRay)

Pour tester l’intégrité de la lecture de l’ensemble de l’appareil sans y écrire, nous pouvons utiliser badblocks(8) comme ceci:

sudo badblocks -b 4096 -c 4096 -s /dev/sdc

Cette opération peut prendre beaucoup de temps, surtout si le lecteur de stockage est réellement endommagé. Si le nombre d'erreurs dépasse zéro, nous saurons qu'il y a un mauvais bloc. Nous pouvons interrompre l'opération en toute sécurité à tout moment (même avec force comme lors d'une panne de courant), si nous ne sommes pas intéressés par la quantité exacte (et peut-être l'emplacement) des blocs défectueux. Il est possible d'abandonner automatiquement en cas d'erreur avec l'option -e 1 .

Note pour une utilisation avancée: si nous voulons réutiliser la sortie pour e2fsck , nous devons définir la taille du bloc ( -b ) à celle du système de fichiers contenu. Nous pouvons également modifier la quantité de données ( -c , en blocs) testées en une fois pour améliorer le débit. 16 Mo devraient convenir à la plupart des appareils.

Vérification en lecture-écriture non destructive

  • très complet
  • le plus lent
  • tout à fait sûr (sauf coupure de courant ou panique intermittente du noyau)

Parfois - en particulier avec les médias flash - une erreur se produit uniquement lorsque vous essayez d'écrire. (Ce ne détectera pas de manière fiable les médias (flash), qui affichent une taille supérieure à la taille réelle, utilisez Lutte contre la fraude Flash . à la place.)

  • JAMAIS utilisez cette option sur un lecteur doté de systèmes de fichiers montés ! badblocks refuse de les utiliser de toute façon, sauf si vous le forcez.

  • N'interrompez pas cette opération avec force ! Ctrl + C (SIGINT / SIGTERM) et attendre une résiliation prématurée est acceptable, mais killall -9 badblocks (SIGKILL) ne l’est pas. En cas de résiliation forcée, badblocks ne peut pas restaurer le contenu original de la plage de blocs actuellement testée et la laissera écrasée par des données indésirables et éventuellement corrompra le système de fichiers.

Pour utiliser des contrôles de lecture-écriture non destructifs, ajoutez l'option -n à la commande badblocks ci-dessus.

Vérification destructive en lecture-écriture

  • très complet
  • plus lent
  • EFFACE TOUTES LES DONNÉES SUR LE LECTEUR

Comme ci-dessus, mais sans restaurer le contenu du lecteur précédent après avoir effectué le test d'écriture, il est donc un peu plus rapide.Comme les données sont effacées de toute façon, la résiliation forcée reste sans conséquence négative (supplémentaire).

Pour utiliser des contrôles destructifs en lecture-écriture, ajoutez l'option -w à la commande badblocks ci-dessus.

    
réponse donnée David Foerster 20.10.2014 - 04:14
la source
19

IMO smartctl est un meilleur outil.

Vous devrez probablement l’installer en premier

sudo apt-get install smartmontools 

Alors

sudo smartctl -a /dev/sda | less

pour imprimer les données d'intégrité du lecteur, les attributs et les résultats de test disponibles. Pour quitter moins, tapez q . Alternativement

sudo smartctl -H /dev/sda

pour imprimer des données de santé.

Pour commencer un nouvel auto-test court (quelques minutes) ou long (jusqu'à plusieurs heures) en arrière-plan:

sudo smartctl -t [short|long]

GSsmartControl et Disques Gnome est un frontal graphique si vous préférez.

lien

Voir aussi
lien
lien
lien

    
réponse donnée Panther 20.10.2014 - 04:26
la source
7

F3 (Lutte contre la fraude Flash) est une autre option qui devrait en outre détecter les fausses clés USB (lecteurs flash dont la capacité réelle est une fraction de la capacité annoncée):

  1. Insérez votre lecteur
  2. Installer F3

    sudo apt-get install f3
    
  3. Ecrivez les données de test dans l’espace libre du lecteur

    f3write /media/$USER/D871-DD7C/
    
  4. Lire les données de test

    f3read /media/$USER/D871-DD7C/
    

Badblocks fonctionne bien, mais il n'est pas conçu pour détecter les lecteurs flash fictifs et ne signale aucune des erreurs pour eux .

    
réponse donnée bmaupin 28.08.2015 - 21:48
la source
4

Vous pouvez tester la totalité du disque tout en affichant un indicateur de progression:

time sudo pv /dev/sdc >/dev/null

Certains problèmes de disque se manifesteraient par des erreurs d’E / S. C'est un peu plus intéressant que dd en raison de l'indicateur de progression et parce que l'interface de ligne de commande est un peu plus standard et un peu moins Typo-prone . Notez que pv est une version fondamentalement améliorée de cat . Il ne peut pas être installé par défaut, mais peut être installé avec sudo apt-get install pv .

Une approche similaire consiste à lire le disque avec l’un des nombreux outils disponibles qui sont spécifiquement conscients des erreurs d’E / S sur disque - et qui ont pour caractéristique "d’essayer de récupérer des données". Recherchez ddrescue dans le gestionnaire de paquets.

    
réponse donnée nobar 01.11.2015 - 07:44
la source

Lire d'autres questions sur les étiquettes