Der schnellste Weg, um eine SSD für die Neupartitionierung unter Linux von allen Partitionen zu säubern?

21

Ich möchte eine SSD von allen Partitionen und Daten säubern, damit ich sie neu partitionieren kann (dies dient nicht der Sicherheit).

Ich habe mir das angeschaut, sudo dd if=/dev/zero of=/dev/sdb bs=1Maber wenn dies nur jede Partition mit Nullen füllt, bin ich mir nicht sicher, was ich tun möchte.

Ich habe vor, diesen Befehl ziemlich oft auszuführen, und ich möchte die Schreibvorgänge meiner SSD nicht erschöpfen. Kann mir jemand einen Rat geben, wie ich dieses Problem angehen kann?

IgDV
quelle
1
Studieren Sie dies: ATA Secure Erase . Ich habe keine Erfahrung mit dem Prozess, daher ist dies keine Antwort, sondern nur ein Hinweis. Wenn Sie wissen, dass dies der richtige Weg ist, können Sie jederzeit eine eigene Antwort schreiben.
Kamil Maciorowski
18
Aus Sicherheitsgründen oder nur, weil Sie neu partitionieren müssen?
Grawity
Meist nur zur Neuaufteilung
IgDV
14
12 Gauge Pump-Action. Und Sie wussten, dass es früher oder später jemand sagen würde!
ssimm
1
@ssimm - Ich bevorzuge einen Holzkohlegrill.
Daniel R Hicks

Antworten:

41

Auf einer SSD: Sie können ganze Festplatten oder Partitionen mit TRIM blkdiscard. Es ist nicht sehr sicher, aber praktisch sofort (die Festplatte markiert lediglich alle Zellen als unbenutzt).

Aus Sicherheitsgründen: Verwenden Sie die Festplattenverschlüsselung. Löschen Sie nicht die gesamte Festplatte, wenn diese verschlüsselt ist - Sie müssen nur den Bereich löschen, der Ihre Schlüssel enthält (z. B. die ersten 1–2 MB jeder verschlüsselten Partition).

Für die Neupartitionierung: Auch hier müssen Sie nicht alle Daten löschen. Sie müssen lediglich die Dateisysteme mit zerstören wipefsund anschließend die ersten 1 MB Ihrer Festplatte löschen, um die verbleibenden Bootloader zu entfernen. Nachdem Sie eine Partition mit formatiert haben mkfs, geht das Betriebssystem einfach davon aus, dass sie vollständig leer ist.

(Unter Linux schneidet mkfs.ext4 die gesamte Partition vor dem Formatieren automatisch zu.)

Grawity
quelle
6
Warum nicht einfach alte Partitionen löschen und neue erstellen?
el.pescado
5
Denn wenn Sie neue Partitionen am selben Ort (Startposition) erstellen, finden Sie nur die gleichen alten Daten darin! (Natürlich , das ist in der Regel kein Problem dar , weil mit der Neuformatierung mkfswird es sowieso Müll Aber verschiedene seltsame Situationen. Sie passieren - wipefsexistiert , weil es nötig war.)
grawity
4
@IgDV - was man wipefssagt das? (Hinweis: Schauen Sie sich das erste Beispiel im Abschnitt mit den Beispielen auf der Manpage an.)
Timo,
2
"Sie müssen nur den Bereich mit Ihren Schlüsseln löschen" - auf SSD sind die Schlüssel wahrscheinlich auch wiederherstellbar. TPM-Schlüssel oder Schlüssel mit starkem Kennwortschutz sind möglicherweise die bessere Option. blkdiscardwäre auch nett, da dies ein Rätsel aus dem Rest der Festplatte erstellen würde, selbst wenn der Angreifer den Schlüssel kennt (vorausgesetzt, die alte Zuordnung kann ebenfalls nicht wiederhergestellt werden). "Scrubben Sie dann die ersten 1 MB Ihrer Festplatte, um verbleibende Bootloader zu löschen" - der zusätzliche Abschnitt wird nur als Überlauf der ersten 512 MB verwendet. Wenn Sie zuerst 512B löschen, werden Sie vom Rest von 1M nicht verletzt.
Maciej Piechotka
1
@MaciejPiechotka: Leider verwenden einige Bootloader (insbesondere Grub) auch den Speicherplatz nach dem MBR.
Grawity
14

Wie Kamil Maciorowski erwähnt , besteht die beste Möglichkeit zum Löschen einer gesamten Festplatte mit dem geringsten Schreibaufwand darin, den ATA-Befehl zum sicheren Löschen zu verwenden. Dadurch wird die Hardware angewiesen, einen einzelnen vollständigen Löschvorgang durchzuführen, anstatt die Zellen wiederholt zu überschreiben, wie dies bei Tools wie z shred. Dies ist nur für die gesamte Festplatte möglich. Wenn Sie Partitionen selektiv löschen müssen, lesen Sie die Antwort von grawity ( blkdiscard).

Die genaue Implementierung des Befehls hängt von der Hardware ab.

  • Die meisten SSDs verwenden ein elektrisches Massensignal, um ganze Chips auf Alles-oder-Nichts-Weise zu löschen. Dies führt zu (normalem) Schreibverschleiß, jedoch nur in einem möglichst geringen Umfang (~ einzelner Schreibzyklus).

  • Selbstverschlüsselnde SSDs löschen normalerweise nur den Verschlüsselungsschlüssel im Controller-Chip (wirklich augenblicklich). Selbstverschlüsselnde Laufwerke verschlüsseln immer , auch ohne Voreinstellung (mit einem werkseitigen Standardschlüssel). Das Wischen des Schlüssels hinterlässt also nur ein nicht entschlüsselbares Durcheinander auf den Flash-Chips, selbst wenn kein Benutzerschlüssel festgelegt wurde.

  • Spinning-Rust-Festplatten führen ein hardwarebasiertes Zero-Write aller Sektoren durch, was äquivalent (und ebenso zeitaufwendig) ist dd if=/dev/zero.

Der Prozess ist hier recht gut dokumentiert: https://www.thomas-krenn.com/en/wiki/SSD_Secure_Erase (Ich habe diesen Prozess bei der Neuinstallation von Betriebssystemen auf meinen eigenen SSDs wiederholt verwendet.)

Bearbeiten: Wenn Sie an den Sicherheitsaspekten interessiert sind, überprüfen Sie die Frage von Security.SE

Jules Kerssemakers
quelle
Wird Secure Erase von den meisten ATA-Festplatten unterstützt? Ich hatte den Eindruck, dass seine Unterstützung ungewöhnlich ist.
Ruslan
1
Ich habe noch keine (moderne, SATA-) Festplatte gefunden, die sie nicht unterstützt, aber ich gebe zu, dass meine Erfahrung auf Festplatten beschränkt ist, die ich persönlich besitze. Es scheint auch einen Unterschied zwischen "Secure Erase" und "Enhanced Secure Erase" zu geben, wobei letzteres weniger unterstützt wird.
Jules Kerssemakers
3
@ Ruslan Ich habe noch nie eine SATA-2-Festplatte gesehen (oder davon gehört), die diese nicht unterstützt. So ziemlich jede SATA-Festplatte, die in den letzten 10 Jahren hergestellt wurde, sollte es haben.
Tonny
Bedeutet dies auch, dass bei selbstverschlüsselnden SSDs der Befehl TRIM ein No-Op ist? (Ansonsten ist es nicht immer verschlüsselt, oder?)
Mehrdad
1
@Mehrdad: Ja, bei Verwendung von TRIM auf einer verschlüsselten SSD werden Informationen darüber abgerufen, welche Blöcke frei sind. Ob dies akzeptabel ist, hängt von Ihren Sicherheitsanforderungen ab. Siehe zB askubuntu.com/questions/399211/… für eine Diskussion.
sleske
4

Denken Sie daran, dass Sie nach einer Lösung zum schnellen Löschen von Festplatten gefragt haben. Ersetzen Sie / dev / sdx durch Ihre Festplatte, am ehesten / dev / sda

Dadurch wird die Partitionstabelle gelöscht.

dd if=/dev/zero of=/dev/sdx bs=1024 count=50

Dadurch wird die gesamte Festplatte gelöscht. Dies dauert eine Weile.

cat /dev/zero > /dev/sdx
Jarrod Chesney
quelle
4
Nicht verwenden cat. Verwenden Sie dddiese Option , um die Leistung zu verbessern.
Micheal Johnson
6
@Micheal Sie das sagen, aber standardmäßig ddverwendet 512-Byte - Puffer, der wird ruinieren Leistung ... Coreutils ( cpund vermutlich auch cat) eine empfindlicheren Puffergröße. Es gibt nichts dd, was es irgendwie von Natur aus schneller macht.
Grawity
3
@grawity Mit können Sie die Puffergröße ändern dd. Das letzte Mal, als ich versuchte cat, ein Image auf eine Festplatte zu schreiben, war es erheblich langsamer als ddmit einer geeigneten Puffergröße.
Micheal Johnson