Как включить TRIM для SSD в Ubuntu

Если вы используете твердотельный накопитель (SSD), вы должны знать, что на него не следует запускать программное обеспечение для дефрагментации или консолидации свободного пространства. Итак, как очистить ваш SSD и освободить пустое пространство? TRIM — это команда, которую мы используем для информирования операционной системы о необходимости очистки. Windows 11 позволяет вам вручную запустить TRIM через команду fsutil. Но как насчет Ubuntu? Как включить TRIM для SSD в Ubuntu?
Примечание: Следующие шаги не сработают, если вы зашифровали свой раздел.
Содержание
- Создание задания TRIM с помощью cron для вашего SSD
- Использование опции Discard в fstab
- Часто задаваемые вопросы
Создание задания TRIM с помощью cron для вашего SSD
- Чтобы убедиться, что SSD в вашем компьютере поддерживает TRIM, откройте терминал и введите:
sudo hdparm -I /dev/sda
Если Ubuntu не установлен в первом разделе SSD, измените sda, чтобы отразить раздел, где находится Ubuntu. Вы можете сделать это, запустив lsblk.

- Прокрутите вниз по списку, пока не увидите раздел “Enabled Supported”. Прокрутите еще раз вниз, и если вы увидите что-то вроде “ Поддержка управления набором данных TRIM (лимит 8 блоков),” тогда TRIM поддерживается для вашего SSD.

- Проверьте, работает ли функция TRIM в Ubuntu. В терминале введите:
sudo fstrim -v /Это очистит корневой раздел SSD. Если все прошло успешно, вы должны увидеть что-то похожее на следующее изображение.

- Установите задание cron для операционной системы, чтобы отправлять команду TRIM раз в день.
sudo nano /etc/cron.daily/trim- Вставьте следующий код в пустую область:
#!/bin/sh
fstrim -v /- Если ваш домашний каталог находится на другом разделе, вы можете добавить дополнительную строку в конце приведенного выше кода:
fstrim -v /home >>$LOG- Если вы хотите сохранить вывод в файл журнала, используйте следующий код вместо этого:
#!/bin/sh
LOG=/var/log/trim.log
echo "* $(date -R) *" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG
Сохраните (Ctrl + O) и закройте (Ctrl + X).
Сделайте задание cron исполняемым:
sudo chmod a+x /etc/cron.daily/trim
Полезно знать: cron — отличная утилита, которая может помочь вам автоматизировать задачи в Linux. Узнайте, как это работает и как вы можете использовать ее для своих собственных программ.
Использование опции Discard в fstab
Помимо ручного вызова fstrim, вы также можете настроить свою систему на постоянное “отбрасывание” любого неиспользуемого пустого пространства на вашем диске. Это может быть полезно, если вы используете ноутбук и не хотите оставлять компьютер включенным все время.
- Проверьте значение UUID вашего корневого раздела:
ls -l /dev/disk/by-uuid
- Откройте файл “/etc/fstab” с помощью вашего любимого текстового редактора. В моем случае я использую GNU Nano:
sudo nano /etc/fstab- Найдите запись вашего корневого раздела в “/etc/fstab”, нажав Ctrl + W, а затем введя его значение UUID.

- Перейдите к записи вашего корневого раздела и введите
discard,noatime,перед опцией “errors=remount-ro”. Например, мой файл “/etc/fstab” имеет следующую запись корневого раздела:
#
UUID=xxx / ext4 discard,noatime,errors=remount-ro 0 1
[...]
- Сохраните новый файл “/etc/fstab”, нажав Ctrl + O, а затем Ctrl + X.

- Наконец, перезагрузите машину, чтобы применить новые настройки.

К вашему сведению: хотя TRIM удалит любое свободное пространство на вашем SSD, этого недостаточно, чтобы защитить вас от программ восстановления данных. Узнайте, как вы можете надежно удалить свои данные, используя лишь простые инструменты командной строки.
Часто задаваемые вопросы
Могу ли я использовать одновременно fstrim и discard на своем SSD?
Да. Тем не менее, это не приведет ни к какому заметному улучшению и не продлит срок службы вашего SSD, поскольку и fstrim, и discard используют аналогичные процедуры TRIM, когда они удаляют неиспользуемые, свободные блоки.
С учетом этого, fstrim и discard различаются в одном ключевом моменте: частота. Первый накапливает все неиспользуемые блоки перед тем, как “освободить” их, в то время как последний “освобождает” блок, как только он становится неиспользуемым. Это означает, что discard всегда будет занимать больше системных ресурсов и операций ввода-вывода по сравнению с fstrim.
В моем файле /etc/fstab нет UUID для корневого раздела.
Скорее всего, это связано с тем, что ваша система использует либо аппаратную RAID-карту, либо утилиту управления логическими томами (LVM). По умолчанию TRIM будет работать только на системах, которые используют традиционные дисковые разделы и файловые системы, такие как ext4.
Тем не менее, некоторые программы LVM предоставляют удобный вариант для выполнения TRIM. В Ubuntu вы можете добавить issue_discards = 1 в файл “/etc/lvm/lvm.conf”, чтобы автоматически выполнять TRIM для любых неиспользуемых, свободных блоков.
Возможно ли изменить частоту команды fstrim?
Да. По умолчанию в Linux предоставляется несколько файлов таймера, которые позволяют вам тонко настроить, когда вы хотите использовать fstrim. Например, вы можете выполнить команду sudo mv /etc/cron.daily/trim /etc/cron.weekly/trim, чтобы изменить частоту TRIM с ежедневной на еженедельную.