Wie lösche ich eine Festplatte mit nicht beschreibbaren Sektoren?

21

Ich habe also eine Festplatte, die ausfällt. Ich möchte die darauf gespeicherten Daten löschen, bevor ich sie zum Austausch sende. Ich versuche es zu benutzen dd if=/dev/zero of=/dev/sdXX, aber es hört beim ersten Schreibfehler auf. Wie kann ich das Laufwerk mit Nullen überschreiben und Schreibfehler ignorieren? conv=noerrorscheint nur die Eingabedatei zu beeinflussen.

TestUser16418
quelle
Es gibt einen Fehlerbericht in der Debian-Datenbank über dieses Verhalten, aber es scheint, dass es noch nicht implementiert ist.
Bobby
Hört das badblocksauch bei Fehlern auf? Vielleicht könnten Sie damit destruktiv schreiben?
OKTOSITÄT
Ich bin jetzt auch destruktiv gelaufen badblocks, um sicherzugehen, wie viele fehlerhafte Blöcke es gibt, bevor ich die Platte am Montag zurückgebe. Der Datenträger wurde ebenfalls erfolgreich gelöscht, es dauerte jedoch fast 50 Stunden.
TestUser16418

Antworten:

18

versuchen Sie ddrescue anstelle von dd - es ist schwieriger mit Fehlern

Jet
quelle
1
ddrescue hat die gesamte Festplatte erfolgreich gelöscht und die Schreibfehler ignoriert. Vielen Dank.
TestUser16418
15

Parameter, die ich mit ddrescue verwendet habe, um das Laufwerk /dev/sdb(gefüllt mit Nullen von /dev/zero) zu löschen und die Ausgabe in die Datei zu protokollieren log.txt:

ddrescue --force /dev/zero /dev/sdb log.txt
Doug d.
quelle
Zum Löschen mit zufälligen Daten verwenden Sie: ddrescue --force / dev / urandom / dev / sdX tmp.log
Bastion
Woher weißt du, wann es fertig ist? Ich tat es und ließ es ungefähr 20 Minuten lang laufen und es blieb bei 0,00% gerettet. Es ist eine NVMe-SSD mit fehlerhaften Blöcken, die ich zu löschen versuche. Das Dienstprogramm Samsung Secure Erase hat bei mir nicht funktioniert.
user1960364
3

Wenn Sie nur das Laufwerk löschen möchten, versuchen Sie es mit dban

Von der Website:

Dariks Boot and Nuke ("DBAN") ist eine eigenständige Bootdiskette, die die Festplatten der meisten Computer sicher löscht. DBAN löscht den Inhalt aller erkannten Festplatten automatisch und vollständig. Dies macht es zu einem geeigneten Dienstprogramm für die Massenvernichtung oder Notfallvernichtung von Daten.

pbsmind
quelle
Ich würde das vorschlagen.
qroberts
3

Für den Datensatz hat dd auch die Option conv=noerror, Fehler zu überspringen. Wenn Sie Fehler auf einer Eingabedatei hatte, und wenn nicht verwenden /dev/zero, dann würden Sie verwenden möchten , conv=noerror,notruncoder conv=noerror,syncum zu verhindern , dd die Ausgabedatei Kürzen , wo Fehler auf der Eingabedatei vorhanden sind .

Für Ihre Abfrage können Sie stattdessen den folgenden Befehl verwenden:

dd if=/dev/zero of=/dev/sdXX conv=noerror  

Um den Prozess zu beschleunigen und möglicherweise zu vermeiden, dass das Laufwerk mitten im Schritt abstirbt, können Sie auch versuchen, die Byte-Größe von der Standardgröße 512 (wodurch dd Sektor für Sektor gelesen wird, was langsam ist) auf eine größere Größe wie 4 KB ( das ist achtmal so groß):

dd if=/dev/zero of=/dev/sdXX bs=4K conv=noerror  

Hinweis: Bei einer größeren Bytegröße können übersprungene Fehler dazu führen, dass Abschnitte lesbarer Daten geringfügig kleiner sind als die von Ihnen gewählte Bytegröße. Es ist jedoch weiterhin unwahrscheinlich, dass jemand in der Lage ist, irgendetwas von diesen Abschnitten abzurufen, nachdem die gesamte Festplatte durchlaufen wurde verarbeiten.

Ich bin mir außerdem sicher, dass die Festplattenhersteller Festplatten ordnungsgemäß entsorgen, die für den Garantieaustausch zurückgesandt werden, falls die Festplatte ausfällt, bevor Sie den Überschreibvorgang vollständig abschließen konnten.

Purefusion
quelle
man ddzeigt "noerror" bedeutet "weiter nach Lesefehlern"
Kevin Smyth
1

Auf keinen Fall eine Power-User-Lösung, aber wenn die Schreibfehler selten sind, möchten Sie nach ihrem Auftreten möglicherweise nur manuell fortfahren.

Sie könnten theoretisch ein Skript schreiben, um dies automatisch zu tun, aber es ist nicht so trivial, und ich würde lieber ein Tool schreiben, um den Trick zu machen, als mich mit dem Schreiben von dd zu beschäftigen.

   seek=BLOCKS
          skip BLOCKS obs-sized blocks at start of output
qdot
quelle
1
... oder benutze dd-rescue ...
Antti Haapala
... würde dd-Rettungsgriff Schreibfehler korrekt?
qdot