Hallo,
ich betreibe ein paar virtuelle Maschinen mit
VirtualBox. Bislang gibt es dort immer noch kein Tool zum Verkleinern der Festplatte. Aus diesem Grunde benutze ich sdelete, um die Platte mit Nullen zu überschreiben und danach dann offline zu verkleinern.
Ich habe sdelete nun inkl.
GUI nachgeschrieben. Ich habe aber ein Problem, wenn eine Partition mit NTFS formatiert und die Kompression eingeschaltet wurde. Da sich Nullen extrem gut komprimieren lassen, habe ich
de facto eine Endlosschleife. Im Moment ist meine Nullen-Datei ca. 53 GB groß (Tendenz steigend - mal sehen, wie lange das Programm/Windows mitmachen
), verbraucht aber auf der Festplatte nur 4 KB.
Ich habe nun versucht, diese Problem dadurch zu lösen, dass ich FileCreate so aufrufe:
Delphi-Quellcode:
lHandle:=CreateFile(PChar(lFileName),
GENERIC_READ or GENERIC_WRITE, 0, nil, CREATE_ALWAYS,
FILE_FLAG_DELETE_ON_CLOSE Or
FILE_ATTRIBUTE_NORMAL Or // -> keine Kompression ?
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED, 0);
Das scheint es aber irgendwie nicht zu sein. Es gibt in Windows noch eine Konstante [DELPHI]FILE_ATTRIBUTE_COMPRESSED = $00000800;/DELPHI]. Ich ging davon aus, dass die Datei eben nicht komprimiert wird, wenn ich das Bit nicht setze.
Gibt es eine einfach Erklärung/Lösung für mein Problem oder muss ich als Workaround den Umweg über FSCTL_SET_COMPRESSION
nehmen?
Gruß, Alex