Как TRIM весь раздел в FreeBSD для экономии места в VirtualBox

1438
rustyx

Я использую 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=""/> </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
Daniel B

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

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

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

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

Спасибо!! `fsck_ufs -Ey / dev / da0p3` сработало. Производительность в порядке (для запуска потребовалось несколько миллисекунд) rustyx 7 лет назад 0