Gibt es eine schnellere Möglichkeit zu überprüfen, ob ein Laufwerk vollständig auf Null gesetzt wurde?

Gibt es eine schnellere Möglichkeit zu überprüfen, ob ein Laufwerk vollständig auf Null gesetzt wurde?

In den kommenden Monaten muss ich viele Festplatten auf Null setzen. Nachdem ich jedes Laufwerk gelöscht habe, muss ich schnell sicherstellen, dass das Laufwerk vollständig mit Nullen gefüllt ist.

Ich könnte jedes einzelne in einem Hex-Editor öffnen, aber dadurch kann ich nur sehen, dass bestimmte Teile davon auf Null gesetzt wurden, was umso sinnloser wird, je größer ein Laufwerk wird, da dadurch nicht sicher überprüft wird, dass darauf keine Zeichen ungleich Null vorhanden sind.

Ich beschloss, einige Benchmarks auszuführen, um einige Tools zu testen, die ich gefunden hatte. Ich habe jedes Tool in einer Reihe von 3 separaten Durchläufen zeitlich festgelegt und dabei das Löschen derselben 1-TB-Festplatte überprüft, wobei jeder Lauf über Nacht bei derselben Systemlast ausgeführt wurde. Um das Caching zu berücksichtigen, wurden die Tools bei jedem Lauf an zufälligen Positionen ausgeführt, mit einer Pause von mindestens 500 Sekunden zwischen den einzelnen Läufen.

Unten sehen Sie den Durchschnittswert der einzelnen Tools in den drei Tests, sortiert vom langsamsten bis zum schnellsten.

Von mir selbst:

time hexdump /dev/sda

0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
e8e0db6000

real    284m35.474s
user    223m4.261s
sys     2m49.729s

AusGordon Davisson:

time od /dev/sda

0000000 000000 000000 000000 000000 000000 000000 000000 000000
*
16434066660000

real    148m34.707s
user    77m10.749s
sys     2m54.611s

AusNeal:

time cmp /dev/zero /dev/sda 

cmp: EOF on /dev/sda

real    137m55.505s
user    8m9.031s
sys     3m53.127s

AusBärtig:

time badblocks -sv -t 0x00 /dev/sda

Checking blocks 0 to 976762583
Checking for bad blocks in read-only mode
Testing with pattern 0x00: done
Pass completed, 0 bad blocks found. (0/0/0 errors)

real    137m50.213s
user    5m19.287s
sys     4m49.803s

AusHennes:

time dd if=/dev/sda status=progress bs=4M | tr --squeeze-repeats "\000" "D"

1000156954624 bytes (1.0 TB, 931 GiB) copied, 8269.01 s, 121 MB/s
238467+1 records in
238467+1 records out
1000204886016 bytes (1.0 TB, 932 GiB) copied, 8269.65 s, 121 MB/s
D
real    137m49.868s
user    27m5.841s
sys     28m3.609s

AusBob1 :

time iszero < /dev/sda

1000204886016 bytes processed
0 nonzero characters encountered.

real    137m49.400s
user    15m9.189s
sys     3m28.042s

Sogar das schnellste der getesteten Tools scheint nach 137 Minuten, also 2 Stunden und 16 Minuten, seine Kapazitätsgrenze zu erreichen, während das vollständige Löschen der Festplatte im Durchschnitt nur 2 Stunden und 30 Minuten dauert.

Dies hat mich dazu veranlasst, diese Frage zu stellen - es scheint, als ob es möglich sein sollte, ein solches Werkzeugmindestens die Hälftedie zum Löschen eines Laufwerks erforderliche Geschwindigkeit, vorausgesetzt, dass von der Festplatte nur gelesen und nicht darauf geschrieben werden muss.

Gibt es eine alternative, schnellere Lösung für das oben genannte?

In einer idealen Welt würde die Lösung, nach der ich suche, die gesamte Festplatte lesen und alle gefundenen Zeichen ungleich Null drucken, genau wie Bobs C++-Programm. Dadurch könnte ich zurückgehen und selektiv alle Bytes ungleich Null löschen, anstatt die gesamte Festplatte. Dies wäre jedoch keine zwingende Anforderung, wenn das Tool die Festplatte sehr schnell lesen könnte.


1. Dies ist ein von Bob geschriebenes C++-Programm, bei dem die Puffergröße auf 4194304 (4 MiB) erhöht und das mit folgendem kompiliert wurde:

g++ -Wl,--stack,16777216 -O3 -march=native -o iszero iszero.cpp

Antwort1

Die Lese- und Schreibgeschwindigkeiten magnetischer Festplatten sind ungefähr gleich. Dasselbe gilt für Bandlaufwerke, RAM, CD-/DVD-/BD-R und sogar Disketten. Bei rotierenden Medien hängt die Geschwindigkeit hauptsächlich davon ab, wie schnell sich die Daten unter den Köpfen (oder Laserbaugruppen bei optischen Laufwerken) bewegen. Wenn Lesen und Schreiben nicht mit der gleichen Geschwindigkeit erfolgen würden, müssten Sie das Medium schneller (oder langsamer) drehen, um von Lesen auf Schreiben und umgekehrt umzuschalten.

Deutlich schnelleres Lesen als Schreiben ist eine Sache des Flash-Speichers.

verwandte Informationen