1

Я использую FreeBSD 11 amd64 в VirtualBox 5.1.12.

Я включил TRIM в 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>

И во FreeBSD:

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

Работает нормально,.Образ VDI увеличивается и уменьшается по мере добавления или удаления файлов внутри виртуальной машины.

Но я включил TRIM после установки FreeBSD, и я предполагаю, что в файловой системе есть блоки, которые не используются с тех пор, как я включил TRIM.

Итак, мой вопрос - есть ли команда TRIM для всего раздела, чтобы освободить все неиспользуемые блоки?

1 ответ1

2

Вы можете использовать fsck_ffs -E:

Очистите нераспределенные блоки, уведомив основное устройство о том, что они не используются и что их содержимое может быть отброшено. Это полезно для файловых систем, которые были смонтированы в системах без поддержки TRIM или с отключенной поддержкой TRIM, а также для файловых систем, которые были скопированы с одного устройства на другое.

Смотрите флаги -E и -t для newfs(8) и флаг -t для tunefs(8) .

Он также проверит файловую систему, поэтому производительность будет намного ниже, чем у fstrim в Linux.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .