In Vorbereitung auf die Erstellung komprimierter Disk-Images einer Reihe von Festplatten suche ich nach Software, die unbenutzte Teile der Festplatte mit Nullen füllt (lange Folgen von Nullen lassen sich recht gut komprimieren).
Anforderungen:
Schön zu haben:
Sie können WipeFreeSpace verwenden , das unter Linux läuft. Unterstützt verschiedene Dateisysteme einschließlich FAT32 (Win98). Sie müssen den manuellen Erstellungsprozess durchlaufen, da es keine Binärdatei gibt ...
Oder Sie können das Hacker-Tool THC-SecureDelete verwenden .
Für den ersten Versuch empfehle ich Ihnen, zuerst alle Daten zu sichern, daher ist das Tarieren der Daten auf eine andere Festplatte und das Löschen der gesamten Festplatte und Zurücktarieren eine akzeptable Option, wenn Sie dies nur einmal tun.
Aktualisiert: SysInternals SDelete für mindestens Windows XP, wie Thomas im oberen Kommentar erwähnt hat, ist nur eine kostenlose Windows-Lösung.
Ich würde vorschlagen, von einem Linux-USB-Stick zu booten, der Lese-/Schreibzugriff auf das Laufwerk gibt, das Sie auf Null setzen möchten, und ein Python-Skript zu verwenden (die meisten Linux-Installationen enthalten Python), um Folgendes zu tun:
import os
def DoIt(drive_path):
""" Fill a drive with zeros then delete them """
info = os.statvfs(drive_path) # Get a the file system info. NOT AVAILABLE ON WINDOWS!
zerodir = os.path.join(drive_path, 'ZerosDir') # Create a directory name
os.makedirs(zerodir) # And the directory
filename_pattern = os.path.join(zerodir, 'Z%07d.000') # File name pattern
bsize = max(info.f_bsize, info.f_frsize) # Decide the block size
zeros = "\x00" * bsize # Create a block of zeros that size
try: # We don't wish to abort the whole script on an error
for n in xrange(info.f_files): # For the max number of files allowed
with open(filename_pattern % n, 'wb') as zf: # Open a file
zf.write(zeros) # write the file
zf.flush() # Make sure it is written
os.fsync(zf) # REALLY Sure
except IOError, e:
pass # Carry on to the end of the script even if there is a problem
print 'Finished Creating Files'
for n in xrange(info.f_files): # For the max number of files allowed
try: # Don't wish to abort even if there is a file we can't delete
os.os.remove(filename_pattern % n) # Remove the file
except OSError, e: # In case of problems
print e # Print the problem but carry on
os.rmdir(zerodir)
print 'Done!'
if __name__ == "__main__":
import sys
if len(sys.argv) < 2:
print "Please supply the path(s) to the drive(s) to fill with zeros"
for arg in sys.argv[1:]:
DoIt(arg)
Das Obige ist zu 100 % ungetestet. Nutzung auf eigene Gefahr
Historisch gesehen wäre meine Lösung, wie Sie es beschrieben haben, das Quelldateisystem zu mounten und den Befehl dd zu verwenden, um eine Datei mit Nullfüllung zu erstellen und dann die temporäre Datei zu löschen:
$ mount /dev/source_hard_drive /mnt
$ cd /mnt
$ dd if=/dev/zero of=some_random_temp_file bs=1M ; rm some_random_temp_file
Erwägen Sie die Verwendung von Partclone , anstatt ungenutzten Speicherplatz auf Ihrer Festplatte zu löschen. Partclone ist kostenlose Software und unterstützt NTFS-, FAT32- und EXT2- und EXT3-Festplattenformate sowie viele andere Formate.
Anstatt ungenutzten Speicherplatz auf Null zu setzen, kann Partclone so konfiguriert werden, dass nur die verwendeten Blöcke kopiert werden, die auf der Festplatte vorhanden sind . Es kann eine sogenannte Domänendatei generieren , die angibt, welche Blöcke auf der Festplatte tatsächlich verwendet werden. Dies spart Ihnen Zeit und ermöglicht eine zerstörungsfreie Kopie Ihrer Quelldaten.
Setzt so viel wie möglich auf Null (leerer Speicherplatz sowohl nicht zugewiesen als auch innerhalb von Zuweisungen, nicht verwendete Verzeichniseinträge usw.)
ntfswipe
funktionierte gut unter Linux. Es kann alle ungenutzten Bits abrufen, z. B. Wiederherstellungsinformationen und gelöschte Dateien, nicht nur freien Speicherplatz.
Unterstützung für ext2- und ext3-Festplattenformate.
Dafür können Sie verwenden zerofree
.
Thomas Weller
Thomas Weller
Dee
Markieren