Как включить ОБРЕЗКУ?

Ubuntu 14.10 и далее

В Ubuntu 14.10 и 15.04 обрезка происходит автоматически каждую неделю на всех твердотельных накопителях, поддерживаемых fstrim.

$ tail -n1 /etc/cron.weekly/fstrim /sbin/fstrim --all || true

Начиная с 15.04 Ubuntu использует systemd и его таймер (man systemd.timer, Арка вики)

systemctl list-timerssystemctl status fstrim.timer

Ubuntu 14.04

Начиная с Ubuntu 14.04, запланированная ОБРЕЗКА включено по умолчанию для твердотельных накопителей Intel, SAMSUNG, OCZ, Patriot и Sandisk. Если у вас есть другой бренд, вы можете отключить проверку поставщика, выполнив следующую команду:

sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim

(или просто отредактируйте файл /etc/cron.weekly/fstrim и добавить --no-model-check)

Ubuntu 13.10 и более ранние версии

Существует три способа выполнения ОБРЕЗКИ: ручной, запланированный и автоматический:

Ручная ОБРЕЗКА

В Ubuntu это может быть выполнено с помощью fstrim:

sudo fstrim /

однако это не требуется, если включена запланированная или автоматическая ОБРЕЗКА, как подробно описано в разделах ниже.

Примечание: Для Ubuntu 11.04 и более ранних системах fstrim недоступен, поэтому вам придется использовать wiper.sh поставляется с hdparm в /usr/share/doc/hdparm/contrib/wiper.sh.gz

Запланированная ОБРЕЗКА (рекомендуется)

Это рекомендуемый в настоящее время метод, и он планируется активировать по умолчанию для Ubuntu 14.04. Вот как активировать его вручную в более старых версиях ubuntu (с 11.10 по 13.10):

Создайте файл сценария еженедельного задания CRON:

gksudo gedit /etc/cron.weekly/fstrim

Вставьте следующий код в файл, затем сохраните и закройте файл:

#! /bin/sh  # By default we assume only / is on an SSD. # You can add more SSD mount points, separated by spaces.# Make sure all mount points are within the quotes. For example:# SSD_MOUNT_POINTS='/ /boot /home /media/my_other_ssd'  SSD_MOUNT_POINTS='/'  for mount_point in $SSD_MOUNT_POINTSdo      fstrim $mount_point  done

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

Сделайте скрипт исполняемым:

sudo chmod +x /etc/cron.weekly/fstrim

И, наконец, протестируйте его:

sudo /etc/cron.weekly/fstrim

Если вы не видите ошибок, ваше задание cron должно работать нормально.

Автоматическая ОБРЕЗКА (Устаревшая, медленная)

Автоматическая ОБРЕЗКА поддерживается начиная с Ubuntu 10.10 (ядро 2.6.33) с файловой системой EXT4. Однако было обнаружено, что отправка команд ОБРЕЗКИ на твердотельный накопитель в режиме реального времени - после каждого удаления - делает удаление на некоторых дисках намного медленнее, чем обычно. Поэтому рекомендуется еженедельная запланированная ОБРЕЗКА с помощью задания cron (описано выше).

Чтобы включить автоматическую ОБРЕЗКУ диска или раздела, их необходимо смонтировать с помощью discard вариант в fstab. Сначала создайте резервную копию вашей fstab, а затем откройте ее для редактирования:

sudo cp /etc/fstab ~/fstab-backupgksudo gedit /etc/fstab

Добавь discard к записи параметров fstab (через запятую) для SSD-накопителя или каждого раздела.

UUID=00000000-0000-0000-0000-000000000000  /  ext4  discard,errors=remount-ro  0  1

Закройте и сохраните fstab, затем перезагрузитесь, и теперь должна работать автоматическая ОБРЕЗКА.

Тестирование автоматической ОБРЕЗКИ

Чтобы проверить, работает ли TRIM, выполните следующие команды (источник):

cd  / # Replace with SSD file systemsudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=directsudo hdparm --fibmap tempfile

Из выходных данных скопируйте номер под begin_LBA и проверьте имя устройства вашего твердотельного накопителя: System->Administration->Disk Utility напр. пдд, sdb, sdc ...

Выполните следующее, но замените [ADDRESS] (begin_LBA) и sdX (Имя устройства SSD) с деталями, полученными выше.

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

выходные данные должны представлять собой длинную строку символов для этих секторов

sudo rm tempfilesync

Повторите hdparm приказ сверху:

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

Если вы получаете только нули, то работает автоматическая ОБРЕЗКА. Однако, если после удаления файла сектора все еще не пусты, подождите некоторое время и снова запустите команду.