Ungenutze Festplattenbereiche mit Nullen überschreiben

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
jack88
Beiträge: 72
Registriert: 23.05.2008 18:50:25

Ungenutze Festplattenbereiche mit Nullen überschreiben

Beitrag von jack88 » 15.07.2014 12:07:20

Hallo,

ich suche nach einer Möglichkeit ungenutzte Festplattenbereiche mit Nullen zu überschreiben.

Der Hintergrund ist folgender, wenn ich komprimierte Images von Festplatten erstelle, so werden diese mit der Zeit immer größer obwohl die tatsächliche Datenmenge auf den Festplatten nahezu gleichgeblieben ist. Die Ursache dafür ist daß z.B. beim Kopieren und Löschen von Dateien die Bereiche auf der Platte nicht wieder genullt werden. Die gelöschten Daten sind in Wirklichkeit immer noch auf der Platte und werden beim Erstellen der Images mitkopiert und komprimiert. Eine Defragmentierung mit z.B. e4defrag bring hier leider auch keine Abhilfe.

Vielleicht hat jemand eine Idee?

Vg
jack

jack88
Beiträge: 72
Registriert: 23.05.2008 18:50:25

Re: Ungenutze Festplattenbereiche mit Nullen überschreiben

Beitrag von jack88 » 15.07.2014 12:38:37

Habe gerade eine Methode gefunden, ist vielleicht nicht so ganz die "feiene Art", aber es funktionert sehr gut.

zerofill.sh

Code: Alles auswählen

#!/bin/bash
dd if=/dev/zero of=/tmp/ZEROFILE.tmp
rm /tmp/ZEROFILE.tmp
Es wird auf der Festplatte (hier muss man ggf. das Verzeichnis anpassen) eine größtmögliche mit Nullen gefüllte Datei erstellt und sofort wieder gelöscht.
Dadurch werden alle freien Bereiche auf der Festplatte wieder mit Nullen überschrieben. .

vg
jack

Benutzeravatar
hikaru
Moderator
Beiträge: 13958
Registriert: 09.04.2008 12:48:59

Re: Ungenutze Festplattenbereiche mit Nullen überschreiben

Beitrag von hikaru » 15.07.2014 12:45:35

Debianzerofree sollte das können ohne zwischendurch die ganze Platte vollzuschreiben.

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Ungenutze Festplattenbereiche mit Nullen überschreiben

Beitrag von catdog2 » 15.07.2014 12:46:22

Kommt darauf an was du vor hast. Das simpelste wäre eine große Datei aus /dev/zero zu erstellen und danach zu löschen. Gibt wohl aber auch tools dafür Debianzerofree. Ansonsten gibt es auch tools, die Dateisysteme etwas effizienter abspeichern.
Unix is user-friendly; it's just picky about who its friends are.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: Ungenutze Festplattenbereiche mit Nullen überschreiben

Beitrag von peschmae » 15.07.2014 12:57:15

Viele Imaging-Tools sichern auch einfach den ungenutzten Platz nicht mit, z.B. Debianpartimage. Das finde ich eigentlich die bessere Lösung.

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

jack88
Beiträge: 72
Registriert: 23.05.2008 18:50:25

Re: Ungenutze Festplattenbereiche mit Nullen überschreiben

Beitrag von jack88 » 15.07.2014 14:26:47

Hey, vielen Dank für den Hinweis auf zerofree.

Leider kann ich es (noch) nicht überall einsetzten, weil es auf Debian-Squeeze nur ext2/ext3 unterstützt und ich bereits überall auf ext4 umgestiegen bin.
Ich merk es mir aber für die Zukunft, sobald ich auf Wheezy upgegradet habe, werde ich es gegen mein zerofill.sh auswechseln ;-)

Obwohl..., ich lese hier gerade:

https://packages.debian.org/de/wheezy/zerofree

"Zerofree requires the file-system to be unmounted or mounted read-only."

Das finde ich dann wieder nicht ganz so toll.

Bei meinem Miniscript brauche ich bei einer 50GB Partition gerade mal 2 Minuten und wenn der Job 1/Woche läuft, dann sollte das - zumindest für meine Zwecke - ausreichend sein.
Ich erstelle 1-2/Woche Backups von allen virtuellen Festplatten und dafür brauche ich es. Die Platten waren nach Komprimiereung bereits 20-70GB groß und jetzt sind es nur noch 2-5GB - das ist schon nicht übel ;-)

vg
jack

Benutzeravatar
hikaru
Moderator
Beiträge: 13958
Registriert: 09.04.2008 12:48:59

Re: Ungenutze Festplattenbereiche mit Nullen überschreiben

Beitrag von hikaru » 15.07.2014 14:45:30

jack88 hat geschrieben:Leider kann ich es (noch) nicht überall einsetzten, weil es auf Debian-Squeeze nur ext2/ext3 unterstützt und ich bereits überall auf ext4 umgestiegen bin.
Das Wheezy-Paket sollte auch unter Squeeze funktionieren.
jack88 hat geschrieben:Obwohl..., ich lese hier gerade:

https://packages.debian.org/de/wheezy/zerofree

"Zerofree requires the file-system to be unmounted or mounted read-only."
Da muss wohl sichergestellt werden, das nicht in der Zeit in der zu löschende Sektoren ermittelt werden auf diese geschrieben wird.
Eine Möglichkeit zerofree einzusetzen wäre das Dateisystem per Script vorher zu umounten und hinterher wieder zu remounten. Falls du in der Zeit doch (lesend) darauf zugreifen musst könntest du es read-only remounten.
jack88 hat geschrieben:Bei meinem Miniscript brauche ich bei einer 50GB Partition gerade mal 2 Minuten
Das wäre ein Durchsatz von über 400MB/s. Soweit ich weiß geht sowas nur auf RAIDs oder SSDs. In dem Fall solltest du dein dd-Kommando noch beschleunigen können indem du dafür sorgst, dass Blöcke geschrieben werden die ein Vielfaches der RAID-Stripegröße bzw. der SSD-Clustergröße haben. 1MB ist hier meist ein guter Wert. Standardmäßig schreibt dd 512B-Blöcke.

Je nachdem wie zerofree arbeitet könnte es deutlich schneller als dd sein. Auf jeden Fall sollte es nicht signifikant langsamer sein.

jack88
Beiträge: 72
Registriert: 23.05.2008 18:50:25

Re: Ungenutze Festplattenbereiche mit Nullen überschreiben

Beitrag von jack88 » 15.07.2014 15:08:52

Das wäre ein Durchsatz von über 400MB/s. Soweit ich weiß geht sowas nur auf RAIDs oder SSDs.
Ja, die Images der virtuellen Festplatten liegen auf einer SSD.
In dem Fall solltest du dein dd-Kommando noch beschleunigen....
Danke für den Tipp, mit bs=1MB sind es nur noch 97 Sekunden - super!

VG
jack

Antworten