--discard
especificam que vdi
image será reduzido em resposta ao comando trim
do sistema operacional convidado. Os seguintes requisitos devem ser atendidos:
- o formato do disco deve ser VDI
- a área desmarcada deve ter pelo menos 1 MB (tamanho)
- [provavelmente] área desmarcada deve ter um ou mais blocos de 1MB (alinhamento)
Obviamente, o sistema operacional convidado deve ser configurado para emitir o comando trim
, normalmente isso significa que o sistema operacional convidado é feito para pensar que o disco é um SSD. O Ext4 suporta -o discard
mount flag; O OSX provavelmente requer configurações adicionais, pois, por padrão, apenas os SSDs fornecidos pela Apple recebem este comando . O Windows deve detectar e suportar automaticamente SSDs pelo menos nas versões 7 e 8, não estou claro se a detecção ocorre na instalação ou no tempo de execução. Driver Linux exFAT (cortesia da Samsung) suporta o comando descartar . Não está claro se a implementação do exFAT pela Microsoft suporta o mesmo, mesmo que o sistema de arquivos tenha sido projetado para o flash para começar.
Como alternativa, existem métodos ad hoc para emitir trim
, por ex. Comando Linux fstrim
, parte de util-linux
package.
Soluções anteriores exigiam que o usuário zerasse as áreas não utilizadas, por exemplo, usando zerofree
e compactar o disco explicitamente (suponho que isso seja possível somente quando vm estiver offline).