Мне известно огромное количество сообщений в Интернете, в которых говорится, что это не сработает, и почему, и я действительно потратил несколько дней на поиски решений несколько месяцев назад, но вчера я нашел несколько советов, как "включить поддержку команд TRIM" для гостевых машин. , Я попробовал и "похоже" работает. То, что я хотел бы знать, - то, где подвох или это действительно работает как должно.
Источники:
https://forums.virtualbox.org/viewtopic.php?f=7&t=51768
http://jaysonrowe.blogspot.com/2013/08/compacting-virtualbox-vdi.html
Моя точная команда прикрепления файла на диске:
VBoxManage Storageattach "GuestOsMachineName" --storagectl "SATA" --port 1 --device 0 --необорот на --discard на --medium "C:\path\to\file.vdi" --type hdd
Который породил эту запись в файле * .vbox машины:
<AttachedDevice nonrotational="true" discard="true" type="HardDisk" port="1" device="0">
<Image uuid="{3836a042-a83e-4000-9a59-e95ad65162ce}"/>
</AttachedDevice>
Чтобы быть уверенным, я не потерял бы никаких данных, этот диск был вторым, присоединенным к машине. Я сделал простой тест, например, скопировав какой-либо файл на диск, оставив его, перезагрузив компьютер, выключив компьютер, проверив, есть ли он после перезагрузки, и посмотрев на использование файла диска в операционной системе хоста. Результаты:
- файл диска, прикрепленный без параметров --nonrotational и --discard сохраняют свой (динамический) размер даже после удаления файлов в гостевой ОС
- файл диска, прикрепленный к обеим опциям, упомянутым выше, освобождает место после удаления данных
Теперь вот мои вопросы:
- что делает опция --discard? это не описано в руководстве VirtualBox (http://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach)
- действительно ли он передает TRIM на хост-систему или просто выглядит?