En quoi un balayage de surface complet en lecture / écriture par «badblocks» diffère-t-il de l' autotest SMART Extended intégré ?
Il semble que ce soient tous les deux des analyses de surface, alors pourquoi faut-il badblocks -vws
3 jours pour tester un lecteur de 1 To, alors que SMART le fait en 2 heures et demie (du moins c'est le temps estimé que smartmon m'a donné)?
hard-drive
bad-blocks
Robert S. Barnes
la source
la source
badblocks
paramètres "dernier bloc" "premier bloc" et d'effectuer les tests un peu par jour?Réponses:
Le test de surface SMART est presque certainement une passe de lecture unique et certainement non destructive. Comme cela a été souligné, il est également interne au lecteur; à l'exception possible de données de contrôle mineures, aucune donnée n'est transmise à ou depuis l'hôte pendant le test.
En revanche,
badblocks -w
effectue quatre passes sur le lecteur, chacune avec une écriture et une lecture. Cela représente à lui seul une différence de 8 fois le temps pris pour le test, plus une latence de rotation. Puisqu'il s'agit d'un logiciel exécuté sur l'hôte, toutes ces données doivent être mélangées via l'interface disque vers la RAM et gérées par le logiciel (badblocks, dans notre cas).Si nous prenons la pire latence de rotation de 1 × (le disque doit faire une révolution complète après avoir écrit les données afin de les relire, ce qui est à peu près ce que vous verrez si vous aimez les badblocks remplit d'abord l'ensemble disque dur, puis relisez le tout, plutôt que de faire des E / S une piste physique à la fois qui avec LBA est presque impossible), nous nous retrouvons avec le pire des cas (1 + 1) × 8 × = 16 × aussi longtemps que nécessaire pour terminer l'opération. 16 × 2,5 h = 40 h, ce qui correspond certainement à vos chiffres et suppose toujours que nous ne traitons que du stockage de données sur le disque et que cela se produit aussi rapidement que le disque peut supporter des E / S séquentielles.
la source
Les tests courts et longs SMART effectuent uniquement des lectures (localisées) des secteurs; il est également non destructif pour les données. Les données lues sont uniquement transférées vers le contrôleur embarqué, pas vers le PC hôte. L'interface SATA est essentiellement inactive pendant le test et le voyant d'activité du disque dur sur le PC ne doit pas s'allumer.
badblocks -vws
demande un secteur d'écriture, puis lit et vérifie l'opération. Chaque écriture et lecture ajoute une révolution de disque par opération plus du temps pour les transferts de données sur l'interface SATA plus le traitement du PC hôte. Le voyant d'activité du disque dur doit être allumé la plupart du temps.la source
https://wiki.archlinux.org/index.php/badblocks#Comparisons_with_Other_Programs
Utilisez donc les tests approfondis destructifs de badblocks lorsque cela est possible.
Edit: Par destructeur, je voulais dire que de nombreux disques durs modernes ont une charge de travail de 180 To / an, ce qui signifie que sur un disque dur de 12 To, vous prendriez 96 To de charge de travail, si vous exécutez l'ensemble complet de tests de blocs défectueux juste pour le tester. Cela pourrait être de 48 To si, par charge de travail, cela signifie uniquement des écritures, ce qui pourrait être le cas, mais ce n'est pas bien documenté.
la source