Combien de temps les badblocks prennent-ils sur un lecteur de 1 To?

29

J'exécute des badblocks (ou plutôt "e2fsck -c") sur un lecteur de 1 To et si l'indicateur de progression est une indication (sans jeu de mots), cela va prendre presque une éternité.

En ce moment, il dit 0.01% done, 30:20 elapsedce qui signifierait que la chose prendrait environ 17 semaines, ce qui semble plutôt excessif dans mon livre.

Est-ce un laps de temps normal pour une telle vérification ou simplement que mes soupçons sont corrects en ce que le lecteur échoue, ce qui fait que la vérification ne prend que légèrement plus court que l'éternité?

J'ai trouvé cette question ici, mais elle concerne le nombre de passes effectuées.

Steven Don
la source
2
Cela dépend presque certainement de l'interface, du lecteur et de la gravité du lecteur, en cas de panne. Je peux vous dire sur un de mes ordinateurs qu'une analyse des mauvais blocs a pris environ 70 heures pour un lecteur de 1,5 To connecté via SATA. Si vous étiez connecté via USB 2.0 ou 1.0, ce serait beaucoup plus long.
Zoredache
Il est attaché en utilisant e-SATA. Je suppose que je vais juste lui donner un peu de temps et voir à quel point il est long après une bonne nuit de sommeil.
Steven Don
@Zoredache - Je pense que votre commentaire devrait plutôt être une réponse.
Nifle
En plus du commentaire de Zoredache ci-dessus, différents commutateurs pour l'obliger badblocksà effectuer différentes tâches, ce qui affectera également les temps d'exécution, par exemple le -wcommutateur.
JeffG
1
Le temps requis dépendrait (également) du mode badblocksutilisé: lecture seule, lecture-écriture non destructive ou lecture-écriture destructive. Cela dit, 30 minutes pour 0,1% semblent longues.
SabreWolfy

Réponses:

20

Pour répondre à votre question, le plus proche que je peux offrir est avec un 3 To que j'ai testé pour cela. Voici les 3 tests que j'ai faits, ne changeant que les valeurs des paramètres -cet ne les faisant que jusqu'à 10% car ils ont pris BEAUCOUP de temps. Chacun a été fait 3 fois pour obtenir une moyenne.

badblocks -svn /dev/sdb

Pour arriver à 1%: 1 heure
Pour arriver à 10%: 8 heures 40 minutes

badblocks -svn -b 512 -c 32768 /dev/sda

Pour arriver à 1%: 35 minutes
Pour arriver à 10%: 4 heures 10 minutes

badblocks -svn -b 512 -c 65536 /dev/sda

Pour arriver à 1%: 16 minutes
Pour arriver à 10%: 2 heures 35 minutes

Alors oui, le -cparamètre a une très grande influence sur le temps de vérification du variateur. Je suppose que pour un disque dur de 1 To, en supposant qu'il conserve le même laps de temps que le 3 To, ce serait 1/3 du temps mentionné ici, donc pour atteindre 10% avec -c 65536le disque dur de 1 To, il serait d'environ 50 minutes.

CYREX
la source
5

Badblocks fait 4 courses. Sur un disque dur externe de 1 To, cela prend généralement environ 70 heures.

NotFromBrooklyn
la source
4
Par souci d'exhaustivité, badblocks(uniquement) par défaut à quatre exécutions avec l' -windicateur d'écriture destructive.
SabreWolfy
@SabreWolfy où avez-vous lu que badblocks fait pour les courses avec -w? Je ne trouve pas cette information.
Alan Franzoni
1
La page de manuel de -w affiche les quatre modèles d'écriture qu'il utilise.
SabreWolfy
3

Essayez d'augmenter le nombre de blocs traités ensemble, comme dans badblocks -svn -b 512 -c 65536 /dev/sda. De cette façon, je peux faire vérifier un disque dur de 1 To en 8 heures.

user326852
la source
3

J'exécute des badblocks sur des disques WD Red de 4 To. Puisqu'ils sont des lecteurs de secteur 4k (vérifiés à l'aide lsblk -o NAME,PHY-SeC), je l'exécute avec -b 4096. Je voulais donner à chacune des instances de badblocks ~ 800 Mo de RAM, donc j'ai utilisé -c 200000ce qui vous donne 4096 bytes * 200,000 blocks = 800,000 Kb. Ils ont commencé avec environ 800 Mo chacun, mais cela s'est accru au fil du temps. Ces paramètres fournissent cependant une accélération significative par rapport aux paramètres standard.

Il a fonctionné à 1% en 3 minutes 56 secondes, mais cela représente 1% de 4 modèles. Cela semble également prendre plus de temps à l'approche de la fin d'une course. Il a vérifié le disque avec le premier motif dans environ 17 heures, il devrait donc terminer 4 To en environ 68 heures .

LA COMMANDE CI-DESSOUS EXÉCUT UN ÉCRIT DESTRUCTIF

La commande que j'utilise est: badblocks -svw -b 4096 -c 200000 /dev/sdc -o bb_sdc.txt

CamW
la source
0

J'ai exécuté cela avant-hier sur un disque 1 To défectueux dans mon RAID 6 de 6 To (MODE D'ÉCRITURE DESTRUCTIVE!):

# badblocks -svw -b 4096 -c 65536 /dev/sdb

La carte mère est un rack ASRock C2550D4I (je sais…) avec 8x Samsung SpinPoint M8 HN-M101MBB (je sais…) connectés aux ports SATA3. Les lecteurs sont des lecteurs 4K "Advanced Format", d'où la taille de bloc 4K.

badblocks a pris environ 28 heures pour terminer, sans aucune erreur.

Les disques individuels font environ 105 Mo / s (durée de hdparm -tTlecture moyenne en mémoire tampon), 200 à 230 Mo / s lors du test de l'ensemble de la baie. Rien de mieux, de nos jours, mais agréable pour une pile de vieux disques durs pour ordinateur portable.

J'espère que cela aide autant que ce fil m'a aidé à trouver un moyen rapide de faire un badblocks exécuté sur le disque. Je sais que son utilisation est douteuse ces jours-ci, mais lorsqu'un smartctl -t longéchec précédent était dû à des échecs de lecture, j'ai décidé de toucher et de réécrire tous les secteurs plusieurs fois pour voir comment les valeurs SMART changeraient. Un autre smartctltest est en attente, si cela échoue à nouveau, je vais acheter un nouveau lecteur.

memartin
la source
-1

Quelques observations de performance:

Je cours e2fsck -c -c -v /dev/sda2, qui réside sur cet appareil:

/dev/sda2  77056 976754431 976677376  3.7T Linux filesystem

Le temps d'exécution actuel pour 63,5% est de 53:28:40; 53,5 heures. Le taux de progression est de 1,186% / heure. À ce rythme, il faudra 31 heures supplémentaires pour terminer, avec une durée totale estimée de 85 heures. Il s'agit d'un périphérique USB 3.0. iotop indique que la vitesse moyenne de lecture / écriture est d'environ 25 Mo / s. Jusqu'à présent, aucun bloc défectueux n'a été trouvé.

La ligne de commande sous-jacente exécutée par e2fsckest:

sh -c badblocks -b 4096 -X -s -n /dev/sda2 976677375

Les publications dans StackOverflow indiquent qu'il est sûr d'interrompre les badblocks avec ^ C (SIGTERM). Si je le fais, je ne vois pas l'inconvénient d'arrêter ce test et de le reprendre plus tard, car il s'agit d'une opération au niveau du bloc de disque. Je dois démonter ce système de fichiers avant de reprendre l'analyse en pourcentage terminée.

numberer6
la source
3
est-ce une question ou une réponse?
Pierre.Vriens