Como TRIM a partição inteira no FreeBSD para economizar espaço no VirtualBox

1

Estou executando o FreeBSD 11 amd64 no VirtualBox 5.1.12.

Eu habilitei o TRIM no VirtualBox ( nonrotational="true" discard="true"):

    <StorageControllers>
      <StorageController name="SCSI" type="LsiLogic" PortCount="16" useHostIOCache="true" Bootable="true">
        <AttachedDevice nonrotational="true" discard="true" type="HardDisk" hotpluggable="false" port="0" device="0">
          <Image uuid="{44ac75b7-286c-4178-b8e3-db597418908f}"/>
        </AttachedDevice>
        <AttachedDevice passthrough="false" type="DVD" hotpluggable="false" port="1" device="0"/>
      </StorageController>
    </StorageControllers>

E no FreeBSD:

>tunefs -p /dev/da0p3
...
tunefs: trim: (-t)                enabled
...

Está funcionando bem, a imagem .VDI aumenta e diminui à medida que adiciono ou excluo arquivos dentro da VM.

Mas ativei o TRIM depois de instalar o FreeBSD, e suponho que existam blocos no sistema de arquivos que não são utilizados desde antes de ativar o TRIM.

Então, minha pergunta é - existe um comando para TRIM a partição inteira para que todos os blocos não utilizados sejam liberados?

rustyx
fonte

Respostas:

2

Você pode usar fsck_ffs -E:

Limpe os blocos não alocados, notificando o dispositivo subjacente de que eles não são usados ​​e que seu conteúdo pode ser descartado. Isso é útil para sistemas de arquivos montados em sistemas sem o suporte ao TRIM ou com o suporte ao TRIM desativado, bem como para sistemas de arquivos que foram copiados de um dispositivo para outro.

Veja as bandeiras -Ee -tde newfs(8)e a -tbandeira de tunefs(8).

Ele também verifica o sistema de arquivos, para que o desempenho seja muito pior do que fstrimno Linux.

Daniel B
fonte
Obrigado!! fsck_ufs -Ey /dev/da0p3trabalhou. Desempenho é bom (levou alguns milissegundos para executar)
rustyx