¿Cómo llenar a cero el espacio libre de un disco virtual en Windows para una mejor compresión?
Me gustaría una herramienta de código abierto simple (o al menos gratis) para eso. Probablemente debería escribir un archivo lo más grande posible 0
y luego borrarlo. Solo una pasada (esto no es por razones de seguridad, sino por compresión, estamos haciendo una copia de seguridad de las máquinas virtuales).
Debe ejecutarse desde el interior de Windows y no desde un disco.
En Linux lo hago así (como usuario):
cd
mkdir wipe
sudo sfill -f -l -l -z ./wipe/
Edición 1: decidí usar sdelete de la respuesta aceptada. Eché un vistazo a la ayuda del sdelete:
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
Esta es una versión antigua. Usé el modificador -c de la segunda invocación y esto fue bastante rápido (la sintaxis solo es válida para versiones anteriores a V1.6):
c:\>sdelete -c c: (OUTDATED!)
Tengo la impresión de que esto hace lo que quiero. La herramienta sdelete es fácil de usar y fácil de obtener.
Edición 2: Como señaló scottbb en su respuesta a continuación, hubo un cambio en la herramienta en septiembre de 2011 (versión 1.6) Las opciones -c y -z han cambiado de significado. El uso correcto desde 1.6 en adelante es
c:\>sdelete -z c:
Edición 3: hay una versión 2.0 de sdelete y sdelete64. Parecen tener errores al poner a cero. Parecerá estar atascado al 100% durante tiempos extremadamente largos. Algunas personas han informado de 10 a 40 veces más. La versión anterior 1.61 no tiene este problema. Ver https://social.technet.microsoft.com/Forums/en-US/2ffb2539-34ba-4378-aa8a-941d243f117e/sdelete-hangs-at-100?forum=miscutils
Edición 4: ahora está el problema del espacio de disco virtual asignado dinámicamente . Si tiene un disco de 100GB que no está lleno y usa solo 30GB en el host, el relleno cero no debería aumentar dramáticamente el tamaño del disco porque eso contradice el propósito de la asignación dinámica . Hay una respuesta para Oracle VM VirtualBox
https://superuser.com/q/907196/44402 , pero en otras pilas como VMWare, Xen, XenServer, etc., esto debe responderse por separado.
sdelete
es la herramienta adecuada para el trabajo, pero un cambio de septiembre de 2011 a la herramienta (versión 1.6) hace que las respuestas anteriores sean incorrectas. Las opciones-c
y-z
han cambiado de significado. El uso correcto ahora essdelete -z c:\