SystemdDoctor

Периодическая очистка неиспользуемых блоков не работает

Периодическая очистка неиспользуемых блоков продлевает срок службы твердотельных носителей и ускоряет запись. Её отказ ничего не ломает сразу, поэтому остаётся незамеченным месяцами, а последствия проявляются как постепенное падение скорости записи.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Устройство или файловая система не поддерживают операцию

    На виртуальных дисках и за некоторыми контроллерами операция недоступна. Задача сообщает об отказе.

  2. Смонтировано с параметром, запрещающим операцию

    Часть параметров монтирования отключает операцию для раздела.

  3. Таймер не включён

    Задача есть, таймер выключен. Очистка не выполняется никогда, и об этом ничего не сообщается.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Результат последних запусков очистки.

journalctl -u fstrim.service -n 30 --no-pager

Поддерживают ли устройства операцию очистки.

lsblk -D -o NAME,DISC-GRAN,DISC-MAX

Включён ли таймер и когда сработает.

systemctl list-timers fstrim.timer --all --no-pager

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Устройство или файловая система не поддерживают операцию
Почему происходит
На виртуальных дисках и за некоторыми контроллерами операция недоступна. Задача сообщает об отказе.
Как проверить
Посмотрите результат задачи и поддержку операции.
journalctl -u fstrim.service -n 20 --no-pager
lsblk -D -o NAME,DISC-GRAN,DISC-MAX | head
Как исправить
Если поддержки нет, отключите таймер: постоянно падающая задача засоряет журнал и маскирует настоящие отказы.
2. Смонтировано с параметром, запрещающим операцию
Почему происходит
Часть параметров монтирования отключает операцию для раздела.
Как проверить
Посмотрите параметры монтирования.
findmnt -o TARGET,FSTYPE,OPTIONS | head -10
Как исправить
Уберите мешающий параметр либо смиритесь с отсутствием очистки на этом разделе. Постоянная очистка при монтировании — альтернатива периодической, но медленнее при удалении файлов.
3. Таймер не включён
Почему происходит
Задача есть, таймер выключен. Очистка не выполняется никогда, и об этом ничего не сообщается.
Как проверить
Посмотрите состояние таймера.
systemctl is-enabled fstrim.timer 2>/dev/null; systemctl list-timers fstrim.timer --all --no-pager
Как исправить
Включите таймер на машинах с твердотельными носителями. Для виртуальных машин это решает и вопрос возврата места гипервизору.
sudo systemctl enable --now fstrim.timer

Пример вывода

Операция не поддерживается устройством. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

fstrim[11400]: fstrim: /: the discard operation is not supported
systemd[1]: fstrim.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start fstrim.service - Discard unused blocks on filesystems from /etc/fstab.

Связанные ошибки

Источники

  • fstrim(8)
    Очистка неиспользуемых блоков и поддержка устройств.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено на виртуальном диске без поддержки операции.
    собственная проверка, systemd 255
    сверено 15 сентября 2026