Ubuntu 14.10 і далі
У Ubuntu 14.10 та 15.04 TRIMming відбувається щотижня автоматично на всіх SSD, що підтримуються fstrim
.
$ tail -n1 /etc/cron.weekly/fstrim
/sbin/fstrim --all || true
З 15.04 Ubuntu використовує systemd та його таймер ( man systemd.timer
, Arch wiki )
systemctl list-timers
systemctl status fstrim.timer
Ubuntu 14.04
Станом на Ubuntu 14.04 планові TRIM увімкнено за замовчуванням для SSD-дисків 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 і раніше
Існує три способи виконання TRIM, ручний, плановий та автоматичний:
Вручну TRIM
У Ubuntu це можна виконати за допомогою fstrim
:
sudo fstrim /
однак це не потрібно, коли ввімкнено плановий або автоматичний TRIM, як детально описано в розділах нижче.
Примітка. Для систем Ubuntu 11.04 та новіших версій fstrim недоступний, тому вам доведеться використовувати wiper.sh
постачається hdparm
в комплекті/usr/share/doc/hdparm/contrib/wiper.sh.gz
Запланований TRIM (рекомендується)
Це наразі рекомендований метод, і планується його активувати за умовчанням для 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_POINTS
do
fstrim $mount_point
done
Зауважте, що вищесказане передбачає, що на вашому /
SSD розміщена лише ваша коренева файлова система . Якщо у вас є більше точок кріплення, які знаходяться на одному або декількох SSD, додайте їх, SSD_MOUNT_POINTS
як пояснено в коді.
Зробіть сценарій виконуваним:
sudo chmod +x /etc/cron.weekly/fstrim
І нарешті тестуйте:
sudo /etc/cron.weekly/fstrim
Якщо ви не бачите жодних помилок, ваша робота з Cron повинна працювати нормально.
Автоматичний TRIM (застарілий, повільний)
Автоматичний TRIM підтримується з Ubuntu 10.10 (ядро 2.6.33) з файловою системою EXT4. Однак відправлення команд TRIM на SSD в режимі реального часу - після кожного видалення - було визнано, що робить видалення набагато повільніше, ніж зазвичай, на деяких дисках. Тому рекомендується щотижневий плановий TRIM за допомогою роботи з кроном (описаний вище).
Щоб увімкнути автоматичний TRIM на диску або розділі, їх потрібно встановити з discard
опцією в fstab
. Спочатку створіть резервну копію свого fstab, а потім відкрийте його для редагування:
sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
Додайте discard
в параметр fstab параметр (розділений комами) для SSD-накопичувача або кожного розділу.
UUID=00000000-0000-0000-0000-000000000000 / ext4 discard,errors=remount-ro 0 1
Закрийте і збережіть fstab, після чого перезавантаження та автоматична TRIM тепер повинні працювати.
Тестування автоматичного TRIM
Щоб перевірити, чи працює TRIM, видайте наступні команди ( джерело ):
cd / # Replace with SSD file system
sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
sudo hdparm --fibmap tempfile
З виводу скопіюйте номер під begin_LBA
і перевірте ім'я пристрою вашого SSD: System->Administration->Disk Utility
наприклад, sda, sdb, sdc ...
Виконайте наступне, але замініть [ADDRESS]
(begin_LBA) та sdX
(ім'я SSD пристрою) деталями, отриманими вище.
sudo hdparm --read-sector [ADDRESS] /dev/sdX
висновок повинен бути довгим рядком символів для цих секторів
sudo rm tempfile
sync
Повторіть hdparm
команду зверху:
sudo hdparm --read-sector [ADDRESS] /dev/sdX
Якщо ви отримаєте лише нулі, автоматичний TRIM працює. Однак якщо після вилучення файлу сектори все ще не порожні, зачекайте деякий час і запустіть команду ще раз.