VMware Diskdatei klein bekommen zum Backup

Von Zeit zu Zeit empfiehlt es sich, seine VMs zu sichern. Das ist bei Verwendung von Diskfiles besonders einfach, weil ja nur die Dateien weggesichert werden müssen. Die Verwendung eines häufig teuren Imaging-Programmes kann somit entfallen.

Ein Nachteil bei diesem Verfahren ist jedoch, dass das Backup so groß wird, wie die virtuellen Festplatten und nicht, wie die darauf befindlichen Daten. Kurzum, man sichert viel Müll mit. Auch das Verwenden eines Komprimierungstools wie gzip hilft hier oft nicht viel weiter, weil ja Daten, die einmal auf der Disk waren nicht wirklich gelöscht sind und somit durchaus mitgesichert werden und auch von gzip nicht herausgenommen werden.

Abhilfe schafft hier nur das vollständige Überschreiben des freien Festplattenplatzes mit Nullen, da sich diese sehr gut komprimieren lassen. Nämlich zu fast nichts. Unter Linux ist dies ganz einfach. Es werden einfach mit dem folgenden Befehl soviele Dateien erzeugt, bis die Platte voll ist. Hier werden z.B. 10 Dateien á 1GB erzeugt. Das muß natürlich an den zu überschreibenden Platz angepasst werden.

for i in {0..10}; do dd if=/dev/zero bs=1M count=1024 > test$i; done;

Danach können die Dateien sofort wieder gelöscht  und die VM gesichert werden.

Unter Windows gibt es meines Wissens nach mit Bordmitteln keine Möglichkeit, solche Dateien zu erzeugen. Hierzu habe ich mir einfach einmal eine Zip-Datei erzeugt mit einer 1GB-Datei mit Nullen, die dann einfach öfter entpackt werden muß. An dieser Datei sieht man auch wunderbar, wie gut sich die Nullen komprimieren lassen. Aus der 1GB-Datei ist 1MB geworden.

1GB Nullen

Update: Ich habe jetzt doch noch etwas gefunden, mit dem es unter Windows möglich ist, beliebig große Dateien mit Nullen zu füllen. Es gibt von Chrysocome aus Australien ein Windows-Port von dd, das die Linux-Devices /dev/null und /dev/random emuliert. Hier kann man das Tool runterladen:

dd for Win32

Update: Für Windows sieht so eine Schleife so aus:

for /L %i in (1 1 10) do ( dd if=/dev/zero bs=1M count=1024 > test%i )

Update: Für Windows gibt’s ein nettes Kommandozeilenprogramm: SDelete füllt auf Wunsch den freien Speicher eines Laufwerks mit Nullen auf.  Das sieht dann zum Beispiel so aus:

sdelete -z c:\

Autor:
Datum: Sonntag, 8. Februar 2009 22:27
Trackback: Trackback-URL Themengebiet: VMware

Feed zum Beitrag: RSS 2.0 Diesen Artikel kommentieren

Kommentar abgeben

*