Estou ciente do enorme número de posts na internet dizendo que isso não funcionaria e por que e eu realmente passei dias procurando as soluções meses atrás, mas eu encontrei ontem algumas dicas sobre como "ativar o suporte ao comando TRIM" para máquinas guest . Eu tentei e "parece" como trabalhar. O que eu gostaria de saber é onde está o problema ou está realmente funcionando como deveria.
Fontes:
https://forums.virtualbox.org/viewtopic.php?f=7&t=51768
http://jaysonrowe.blogspot.com/2013/08/compacting-virtualbox-vdi.html
Meu comando exato anexando o arquivo de disco:
VBoxManage storageattach "GuestOsMachineName" --storagectl "SATA" --port 1 --dispositivo 0 --nonrotacional em --discard em --medium "C: \ path \ to \ file.vdi" --detipo hdd
Que genereted esta entrada no arquivo * .vbox da máquina:
<AttachedDevice nonrotational="true" discard="true" type="HardDisk" port="1" device="0">
<Image uuid="{3836a042-a83e-4000-9a59-e95ad65162ce}"/>
</AttachedDevice>
Para ter certeza de que não perderia nenhum dado, essa unidade era a segunda anexada à máquina. Fiz um teste simples como copiar algum arquivo para a unidade, deixando-a, reiniciando a máquina, desligando a máquina, verificando se ela está lá depois de inicializar, observando o uso do arquivo de disco no SO host. Resultados são:
- arquivo de disco anexado sem opções --nonrotational e --discard mantém seu tamanho (dinâmico) mesmo após a exclusão de arquivos no sistema operacional convidado
- arquivo de disco anexado com as duas opções mencionadas acima libera o espaço depois que os dados foram excluídos
Agora, aqui estão as minhas perguntas:
- o que exatamente a opção --discard faz? ele não é descrito no manual do VirtualBox ( http://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach )
- ele está realmente passando o TRIM para o sistema operacional host ou ele simplesmente parece?