Wie füllt man den freien Speicherplatz einer virtuellen Festplatte unter Windows auf Null, um eine bessere Komprimierung zu erreichen?
Ich hätte gerne ein einfaches Open-Source-Tool (oder zumindest ein kostenloses) dafür. Es sollte wahrscheinlich eine möglichst große Datei voll schreiben 0
und diese anschließend löschen. Nur ein Durchgang (dies ist nicht aus Sicherheitsgründen, sondern zur Komprimierung, wir sichern virtuelle Maschinen).
Sollte von Windows aus und nicht von einer Festplatte ausgeführt werden.
Unter Linux mache ich das (als Benutzer) so:
cd
mkdir wipe
sudo sfill -f -l -l -z ./wipe/
Edit 1: Ich habe mich entschieden, sdelete von der akzeptierten Antwort zu verwenden. Ich habe mir die Hilfe des sdelete angesehen:
C:\WINDOWS\system32>sdelete /?
SDelete - Secure Delete v1.51
Copyright (C) 1999-2005 Mark Russinovich
Sysinternals - www.sysinternals.com
usage: sdelete [-p passes] [-s] [-q] <file or directory>
sdelete [-p passes] [-z|-c] [drive letter]
-c Zero free space (good for virtual disk optimization)
-p passes Specifies number of overwrite passes (default is 1)
-q Don't print errors (Quiet)
-s Recurse subdirectories
-z Clean free space
Dies ist eine alte Version. Ich habe die Option -c ab dem 2. Aufruf verwendet und dies war ziemlich schnell (Syntax nur gültig für ältere Versionen vor V1.6):
c:\>sdelete -c c: (OUTDATED!)
Ich habe den Eindruck das macht was ich will. Das sdelete-Tool ist einfach zu bedienen und leicht zu bekommen.
Edit 2: Wie scottbb in seiner Antwort unten ausgeführt hat, wurde das Tool im September 2011 geändert (Version 1.6). Die Optionen -c und -z haben ihre Bedeutung geändert. Die korrekte Verwendung ab 1.6 ist
c:\>sdelete -z c:
Edit 3: Es gibt eine 2.0 Version von sdelete und sdelete64. Sie scheinen beim Nullstellen fehlerhaft zu sein. Es scheint extrem lange bei 100% festzustecken. Einige Leute haben 10- bis 40-mal länger berichtet. Die ältere Version 1.61 hat dieses Problem nicht. Siehe https://social.technet.microsoft.com/Forums/en-US/2ffb2539-34ba-4378-aa8a-941d243f117e/sdelete-hangs-at-100?forum=miscutils
Bearbeiten 4: Jetzt gibt es das Problem des dynamisch zugewiesenen virtuellen Speicherplatzes . Wenn Sie einen 100-GB-Datenträger haben, der nicht voll ist und nur 30 GB auf dem Host verwendet, sollte die Größe des Datenträgers durch Nullfüllung nicht dramatisch erhöht werden, da dies dem Zweck der dynamischen Zuordnung widerspricht . Es gibt eine Antwort für Oracle VM VirtualBox
https://superuser.com/q/907196/44402 - auf anderen Stacks wie VMWare, Xen, XenServer usw. muss dies jedoch separat beantwortet werden.
sdelete
ist das richtige Tool für den Job, aber eine Änderung im September 2011 am Tool (Version 1.6) führt dazu, dass die obigen Antworten falsch sind. Die Optionen-c
und-z
haben ihre Bedeutung geändert. Die korrekte Verwendung ist jetztsdelete -z c:\
Antworten:
Verwenden Sie unter Windows das Sysinternals-Tool sdelete , um den gesamten leeren Raum auf Null zu setzen. Der gewünschte Befehl würde folgendermaßen aussehen
sdelete -z c:
.Für Linux schlage ich vor, dass Sie nullfrei verwenden .
quelle
Windows verfügt bereits über ein integriertes Befehlszeilentool, das dies ausführt: CIPHER. Siehe seine / W-Option.
Der vollständige Befehl lautet also: cipher / w: c: (Ersetzen Sie c: durch den tatsächlichen Laufwerksbuchstaben.)
(Es schreibt Nullen in den ungenutzten Speicherplatz, dann 0xff, also müssen Sie es beobachten und mit Strg-C stoppen, wenn es beginnt, 0xff zu schreiben - nicht ideal, aber es ist kostenlos und in Windows mindestens seit XP verfügbar.)
quelle
SDelete wird den Speicherplatz für die Komprimierung einer virtuellen Festplatte nicht auf Null setzen. SDelete setzt zunächst den freien Speicherplatz auf Null, füllt ihn dann jedoch mit 0xff und anschließend mit zufälligen Bytes. Informationen zum Einrichten einer VHD für die Komprimierung finden Sie unter Vorbereiten einer virtuellen Festplattendatei für Virtual Server 2005 zum Senden an Microsoft Product Support Services
Precompact.exe kann aus irgendeinem Grund schwierig zu finden sein. Ich habe hier eine separate herunterladbare Kopie gefunden . Wenn Sie jedoch über einen virtuellen Windows-PC verfügen, können Sie ihn auch aus% programfiles (x86)% \ Windows Virtual PC \ Integration Components \ Precompact.iso abrufen
quelle
trim
(ab Win7 und Hyper-V 2012) unterstützt werden und vor dem Komprimieren keine Null mehr erforderlich ist. Das PreCompact-Dienstprogramm hat nur Teile der Festplatte mit gelöschten Dateien auf Null gesetzt. Der Teil, der noch nie verwendet wurde, blieb unberührt. Wenn Sie so etwas wie verwendensdelete
, wird der dynamische Datenträger auf eine statische Größe gefüllt, die dann wieder auf die tatsächlich verwendete Größe komprimiert werden kann.fsutil
Ist nicht Open Source, wird aber mit Windows ausgeliefert und kostet daher nichts extra. Ich habe es verwendet, um den freien Speicherplatz auf einem leeren WD 250 GB 7200 RPM-Laufwerk (F:
) auf Null zu setzen . Folgendes habe ich über die Befehlszeile ausgeführt:Welches zeigte diesen Bericht:
Ich habe
Total # of avail free bytes
in den folgenden Befehlen verwendet:Das Schreiben von 250 GB Nullen dauerte ungefähr 4 Stunden.
quelle
Auch ich hatte nach einer Möglichkeit gesucht, mit Cipher nur 0x00 zu schreiben und dann zu beenden, wenn 0xFF in den freien Speicher geschrieben wird. Dadurch kann der maximale freie Speicherplatz komprimiert werden. Ich habe mir den folgenden grundlegenden PowerShell-Job ausgedacht
Ersetzen Sie d: \ durch das erforderliche Laufwerk
Grüße Simon
quelle
Wenn Sie VMware verwenden, ist es viel besser, die in VMware integrierten Tools zu verwenden, um nicht genutzten Speicherplatz auf dem virtuellen Laufwerk freizugeben.
Ich habe dies verwendet, um die Größe der virtuellen Festplatte von 28 Gigabyte auf 13 Gigabyte zu reduzieren. Ihr Kilometerstand kann variieren.
Als ich versuchte
sdelete -z c:
, es zu verwenden , erhöhte es tatsächlich die Größe der virtuellen Laufwerke auf 30 Gigabyte, was seine maximale Größe war.Finden Sie in der VMware - Website und Komprimieren eine virtuelle Festplatte , die unter ist
Using VMware Workstation > Configuring and Managing Devices > Configuring and Maintaining Virtual Hard Disks
.Aktualisieren
Manchmal sind die GUI-Tools nicht ganz so zuverlässig wie die Befehlszeilentools. Ich bin auf Probleme gestoßen, bei denen die GUI-Tools fehlschlagen, aber die Befehlszeilen-Tools funktionieren einwandfrei. Hier sind die Optionen für
VMware Desktop 10
:Hier ist ein Beispiel für das Verkleinern einer Festplatte. Diese Befehlszeile funktionierte trotz des gleichen Befehls über die GUI:
Die Fehlermeldung, die mit beginnt,
VizDiskLib
ist neu in VMware Desktop 10 und kann ignoriert werden.quelle
Google-up Eraser 5.8.8 32-Bit Funktioniert auch unter Windows XP SP3 einwandfrei !
quelle
Mit,
Ich fand, dass Simons Powershell-Skript genau das tat, was Sie brauchten, ohne die Versionsprobleme von sdelete. (Schalter, die verschiedene Dinge in verschiedenen Versionen tun)
Es gab ein Problem, die Chiffre lief weiter, aber das habe ich behoben.
Ich habe das Skript weiter modifiziert, um den temporären Ordner zu bereinigen:
Sie müssen F: \ an beiden Stellen durch Ihren Laufwerksbuchstaben ersetzen.
quelle
Warum Tools von Drittanbietern, wenn Windows bereits alles enthält, was Sie jemals brauchen, kostenlos und so schnell, wie es jemals sein kann:
1)
format X: /fs:XXXX /p:#
, woX
ist der Laufwerksbuchstabe;XXXX
ist das Dateisystem Yeither und#
ist die Anzahl der Durchgänge;2)
clean
Befehl diskpart : http://technet.microsoft.com/library/cc766465.aspx , http://support.microsoft.com/kb/300415 ;Übrigens brauchen Sie auch nicht mehr als einen einzigen Durchgang - ein Anspruch ist ansonsten entweder eine veraltete Information für veraltete Disk Red / Write-Strategien, Leute, die Produkte pushen, die von Paranoia getrieben werden, oder bs, die als "Expertenrat" weitergegeben werden.
Edit: NVM, verpasste den freien Speicherplatz Teil ...
quelle