I am aware of the huge number of posts on the internet saying that this would not work and why and I really spent days looking for the solutions months ago but I've found yesterday some tips how to "enable TRIM command support" for guest machines. I've tried it and "it looks" like working. What I would like to know is where's the catch or is this really working as it should.
Sources:
https://forums.virtualbox.org/viewtopic.php?f=7&t=51768
http://jaysonrowe.blogspot.com/2013/08/compacting-virtualbox-vdi.html
My exact command attaching the disk file:
VBoxManage storageattach "GuestOsMachineName" --storagectl "SATA" --port 1 --device 0 --nonrotational on --discard on --medium "C:\path\to\file.vdi" --type hdd
Which genereted this entry in the machine's *.vbox file:
<AttachedDevice nonrotational="true" discard="true" type="HardDisk" port="1" device="0">
<Image uuid="{3836a042-a83e-4000-9a59-e95ad65162ce}"/>
</AttachedDevice>
To be sure I would not lose any data this drive was the second one attached to the machine. I've made simple test like copying some file to the drive, leaving it, restarting the machine, shutting down the machine, checking if it's there after booting back, looking at the disk file usage in the host OS. Results are:
- disk file attached without options --nonrotational and --discard keeps its (dynamic) size even after deleting files in the guest OS
- disk file attached with both options mentioned above releases the space after the data was deleted
Now here are my questions:
- what does exactly --discard option do? it's not described in the VirtualBox manual
(http://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach)
- is it really passing TRIM down to the host OS or does it just look like?