GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Den Inhalt einer Festplatte auf Null setzen, ohne das Dateisystem zu zerstören

Einfache Antwort:

mount /dev/your/disk /some/free/mountpoint
dd if=/dev/zero of=/some/free/mountpoint/zero bs=512
sync # See edit below
rm /some/free/mountpoint/zero
umount /some/free/mountpoint

Dies wird genau das tun, worum Sie gebeten haben:Überschreiben Sie den gesamten Speicherplatz, der für Dateien im Dateisystem verfügbar ist, mit Nullen.

Komplexere Antwort:

  • Ohne Nuking des MBR können Sie nicht sicher sein, dass Sie keinen MBR-Virus haben
  • ein leeres Dateisystem hat keinen Wert

Daher empfehle ich Ihnen, das Gerät einfach zu nukleieren (dh das Gerät, einschließlich MBR und Dateisystem, auf Null zu setzen) und dann einfach die Partitionstabelle und mkfs.ntfs -f -L LABEL -I neu zu erstellen

BEARBEITEN

Wie @Nyos in den Kommentaren betonte, ist es eine gute Idee, einen zusätzlichen sync einzufügen, wenn der NTFS-Treiber keine Synchronisierung bereitstellt (ich kenne die Standardeinstellungen nicht). vor dem rm . Die aktuelle Version (ab Ubuntu 18.04 vollständig gepatcht auf 2020-05-02) hat keinen Delayed Block allokiert, also die sync ist nicht unbedingt erforderlich, da alle zugewiesenen Blöcke auf umount geschrieben werden , aber weder kennen wir die Zukunft, noch habe ich den vollständigen Quellcode gelesen.

Zur gleichen Anmerkung:Wenn der NTFS-Treiber einmal Sparse-Dateiunterstützung erhält, müssen wir möglicherweise /dev/urandom verwenden statt /dev/zero um ein (fast) endloses Schreiben zu vermeiden.


Auch wenn das deine Frage überhaupt nicht beantwortet... trotzdem:

Erstens ist es eine wirklich, wirklich schlechte Idee, eine Festplatte auf Null zu setzen. Das gilt für "herkömmliche" Festplatten und noch mehr für Solid State Disks. Das Nullen einer Festplatte ist trivial (einfach eine Datei erstellen und füllen, Eugen Rieck gibt das genaue Rezept), aber es dauert lange und verschleißt die Festplatte. Schreibzyklen sind nicht unendlich, auf jeder Art von Festplatte.
Beachten Sie außerdem, dass Sie nicht einmal eine Garantie dafür haben, dass das Überschreiben tatsächlich wie beabsichtigt funktioniert. Für Ihren Zweck wird der Unterschied nicht erkennbar sein, aber für andere Zwecke (denken Sie an das sichere Löschen vertraulicher Daten) ist der Ansatz völlig unzuverlässig. Das liegt daran, dass Sie dank Wear-Leveling und Neuzuweisung absolut nicht wissen können, was passiert, wenn Sie etwas überschreiben. Laufwerke erledigen eine Menge Dinge, ohne dass jemand (einschließlich des Betriebssystems!) davon etwas weiß oder auch nur eine Möglichkeit hat, dies zu sagen, geschweige denn zu ändern. Wenn beispielsweise ein Sektor neu zugewiesen wurde, weil der Controller mit der Anzahl der Wiederholungen oder dem CRC oder was auch immer nicht zufrieden war, können Sie in Zukunft tun, was Sie wollen, Sie können einfach nicht mehr auf diesen Sektor zugreifen. Nie wieder. Trotzdem bleiben die Daten oder was davon übrig ist (und Sie können es nicht wissen) dort, und ein potenzieller Dieb könnte sie auslesen.

Zweitens ist es beim Betrieb im vollen Paranoia-Modus eine wirklich, wirklich schlechte Idee, das Dateisystem (und den MBR) in der Nähe zu halten, insbesondere wenn die Festplatte "leer" ist. Abgesehen von der UUID des Dateisystems verlieren Sie nichts, wenn Sie einfach ein neues Dateisystem erstellen (was wohl sein kann in manchen Situationen etwas lästig, aber auch das lässt sich leicht beheben). Sie gewinnen aber die Gewissheit, dass dort, wo Sie es nicht erwarten (z. B. MBR), nichts mehr übrig ist.

Drittens ist es eine schlechte Idee, ein "leeres" Dateisystem, das in Wirklichkeit überhaupt nicht leer ist, auf Null zu setzen und wiederzuverwenden. Es ist schlecht in Bezug auf die Leistung, wenn Sie stattdessen einfach einen neuen FS (ohne veraltete Änderungsjournaleinträge, unsichtbare Elemente, vergessene Streams, Attribute, fragmentierte MFTs ...) von Grund auf neu erstellen können. Es ist nicht nur viel sicherer, alles von Grund auf neu zu erstellen, Es ist auch viel schneller und wird in Zukunft wahrscheinlich zu einer besseren Gesamtleistung führen.

tl;dr

Die meisten Geräte verfügen über eine dedizierte Option zum sicheren Löschen oder „Zurücksetzen auf die Werkseinstellungen“ (was dieselbe ist), die vom begleitenden Verwaltungstool oder mit einem anderen Tool über einen Standard-ATA-Befehl unterstützt wird. Das Laufwerk verwendet die effizienteste, am wenigsten destruktive Methode (einige Laufwerke überschreiben tatsächlich die gesamte Festplatte, da sie die Funktion nicht wirklich unterstützen, aber die meisten werden nur den Verschlüsselungs- oder Bitverschlüsselungsschlüssel ausgeben, was unabhängig von der Festplattengröße fast sofort funktioniert).

hdparm das auf so ziemlich jeder Linux-Distribution verfügbar ist, hat eine Option --security-erase für genau diesen Zweck.

Dadurch erhalten Sie eine Diskette wie frisch gekauft außer dass es eine Weile benutzt wurde. Es wird dies auf die schnellste (im Rahmen des technisch Möglichen) und am wenigsten datenträgerschädigende Weise tun. Anschließend partitionieren und ein Dateisystem erstellen, fertig.


Linux
  1. Festplatten-Info hinter Hardware-Raid-Controller?

  2. Splitten von gezippten Protokolldateien, ohne die entzippten Splits auf der Festplatte zu speichern

  3. Gesamtgröße meiner Festplatte in Linux über die Befehlszeile ohne Root-Berechtigungen abrufen?

  4. System friert ein. Kann in den Logs nichts finden

  5. Unmounten des Root-Dateisystems ohne Neustart des Servers

So verwenden Sie dd unter Linux, ohne Ihre Festplatte zu zerstören

So finden Sie Festplattendetails in Linux

Upgrade auf ein Solid-State-Laufwerk unter Linux:Der einfache und der schwierige Weg

Was ist der einfachste Weg, um Speicherplatz auf einer Festplatte freizugeben?

Finden Sie heraus, welche Prozesse auf die Festplatte schreiben

Identifizieren Sie die ausgefallene Festplatte physisch