Что понадобится
- Операционная система Linux с ядром версии 3.8 или новее.
- Пакет util-linux, содержащий утилиты fstrim и системные таймеры.
- Утилита hdparm (только для накопителей с интерфейсом SATA).
- Права суперпользователя (root) для изменения параметров монтирования и запуска служебных команд.
Проверка поддержки TRIM накопителем
Перед началом любых процедур необходимо убедиться, что ваш твердотельный накопитель корректно обрабатывает команды TRIM. В отличие от жестких дисков, где удаление файлов фиксируется лишь на уровне файловой системы, SSD требуют уведомления контроллера об освобождении блоков памяти для предотвращения деградации ячеек и избыточной записи (write amplification).
- Откройте терминал и выполните диагностическую команду для проверки через утилиту lsblk:
lsblk --discard
- Проанализируйте значения в колонках DISC-GRAN (гранулярность discard) и DISC-MAX (максимальный размер discard). Ненулевые показатели подтверждают наличие аппаратной поддержки TRIM.
- Для накопителей с интерфейсом SATA дополнительно проверьте устройство с помощью утилиты hdparm:
hdparm -I /dev/sda | grep TRIM
Учтите, что пакет hdparm не поддерживает современные накопители формата NVMe.
Выбор режима работы с TRIM
Существует два основных способа отправки команд TRIM контроллеру диска: периодический и непрерывный. Сообщество Linux рекомендует использовать периодический вариант, так как непрерывная отправка команд способна создавать лишнюю нагрузку. Например, дистрибутив Ubuntu активирует периодическую очистку по умолчанию, тогда как Debian и Red Hat также советуют применять именно этот метод.
Поддержка TRIM в файловых системах внедрялась постепенно. Btrfs поддерживает асинхронный discard по умолчанию начиная с версии ядра 6.2. Файловая система exFAT получила поддержку fstrim в ядре 5.13, а VFAT — начиная с версии 4.19. Для NTFS стандартный драйвер ядра поддерживает TRIM, тогда как драйвер ntfs3 работает иначе, а NTFS-3G FUSE требует специфических параметров.
Настройка периодического TRIM
Пакет util-linux предоставляет готовые модули systemd: fstrim.service и fstrim.timer. Активация таймера запускает службу автоматически с интервалом в одну неделю на всех совместимых смонтированных файловых системах.
- Таймер ориентируется на временную метку файла
/var/lib/systemd/timers/stamp-fstrim.timer, создаваемого при первой активации, поэтому частые повторные запуска исключены. - Для проверки текущей активности и статуса службы используйте системный журнал:
journalctl -u fstrim.timer
При необходимости можно отредактировать конфигурационные файлы таймера, изменив период выполнения задач.
Настройка непрерывного TRIM
Если вы предпочитаете отправлять команды очистки сразу в момент удаления файлов, применяется непрерывный режим через параметры монтирования.
- Добавьте опцию discard в файл
/etc/fstabдля нужного раздела:
/dev/disk/by-designator/root / ext4 defaults,discard 0 1
- Учтите, что для файловой системы XFS на корневом разделе этот способ не работает напрямую — параметр необходимо передавать через ядро посредством rootflags=discard.
- Для файловой системы ext4 флаг discard можно зафиксировать как стандартную опцию монтирования через утилиту tune2fs:
tune2fs -o discard /dev/sdXY
Этот метод особенно удобен для внешних носителей, так как параметры сохраняются при подключении диска к другим компьютерам без ручной правки fstab.
Полная очистка накопителя и свободного пространства
Если требуется полностью обнулить SSD перед новой установкой системы или продажей, воспользуйтесь утилитой blkdiscard:
blkdiscard /dev/sdX
Для очистки неразмеченного пространства между разделами, чтобы контроллер мог использовать свободные секторы для выравнивания износа, задействуйте fdisk:
- Запустите fdisk для выбранного накопителя.
- Введите команду T, после чего нажмите клавишу f.
- Альтернативный вариант — запуск sfdisk с соответствующим ключом:
sfdisk --discard-free /dev/sdX
При использовании менеджера логических томов LVM запросы TRIM от файловой системы автоматически транслируются на физические тома. Тем не менее, стандартные операции вроде lvremove или lvreduce не передают TRIM физическому диску по умолчанию, позволяя восстановить конфигурацию через vgcfgrestore. За это поведение отвечает параметр issue_discards в файле /etc/lvm/lvm.conf.
Если не получилось
- Команды диагностики возвращают нулевые значения: проверьте режим работы контроллера в BIOS/UEFI, убедитесь, что включен AHCI или NVMe, а не устаревший IDE.
- Ошибки при монтировании с опцией discard: проверьте версию вашего ядра Linux. Поддержка discard для ряда файловых систем появилась только в относительно свежих релизах ядра.
- Система зависает при удалении файлов в непрерывном режиме: отключите параметр
discardв/etc/fstabи переключитесь на периодическую очистку через systemd таймер fstrim.timer.




