Como zerar o espaço livre de um disco virtual no Windows para melhorar a compactação?
Eu gostaria de uma ferramenta simples de código aberto (ou pelo menos gratuita) para isso. Provavelmente, ele deve gravar um arquivo o maior possível 0
e apagá-lo posteriormente. Apenas uma passagem (não por motivos de segurança, mas por compactação, estamos fazendo backup de máquinas virtuais).
Deve ser executado de dentro das janelas e não de um disco.
No Linux, faço assim (como usuário):
cd
mkdir wipe
sudo sfill -f -l -l -z ./wipe/
Edit 1: Decidi usar sdelete a partir da resposta aceita. Dei uma olhada na ajuda do 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 é uma versão antiga. Eu usei a opção -c da 2ª invocação e isso foi bastante rápido (sintaxe válida apenas para versões anteriores à V1.6):
c:\>sdelete -c c: (OUTDATED!)
Tenho a impressão de que isso faz o que eu quero. A ferramenta sdelete é fácil de usar e fácil de obter.
Edit 2: Como scottbb apontou em sua resposta abaixo, houve uma alteração de setembro de 2011 na ferramenta (versão 1.6) As opções -c e -z mudaram de significado. O uso correto a partir de 1.6 é
c:\>sdelete -z c:
Edit 3: Existe uma versão 2.0 do sdelete e sdelete64. Eles parecem estar com erros ao zerar. Parece estar preso a 100% por períodos extremamente longos. Algumas pessoas relataram 10 a 40 vezes mais. A versão anterior 1.61 não possui esse problema. Consulte https://social.technet.microsoft.com/Forums/en-US/2ffb2539-34ba-4378-aa8a-941d243f117e/sdelete-hangs-at-100?forum=miscutils
Edição 4: Agora há a questão do espaço em disco virtual alocado dinamicamente . Se você possui um disco de 100 GB que não está cheio e usa apenas 30 GB no host, o preenchimento zero não deve aumentar drasticamente o tamanho do disco, pois isso contradiz o objetivo da alocação dinâmica . Existe uma resposta para Oracle VM VirtualBox
https://superuser.com/q/907196/44402 - mas em outras pilhas como VMWare, Xen, XenServer, etc., isso precisa ser respondido separadamente.
sdelete
é a ferramenta certa para o trabalho, mas uma alteração de setembro de 2011 na ferramenta (versão 1.6) torna as respostas acima incorretas. As opções-c
e-z
mudaram de significado. O uso correto agora ésdelete -z c:\