Ubuntu 14.10 i nowsze
W Ubuntu 14.10 i 15.04 TRIMming odbywa się automatycznie co tydzień na wszystkich obsługiwanych dyskach SSD fstrim
.
$ tail -n1 /etc/cron.weekly/fstrim
/sbin/fstrim --all || true
Od 15.04 Ubuntu używa Systemd i jej zegar ( man systemd.timer
, Arch wiki )
systemctl list-timers
systemctl status fstrim.timer
Ubuntu 14.04
Od wersji Ubuntu 14.04 zaplanowane TRIM jest domyślnie włączone dla dysków SSD Intel, SAMSUNG, OCZ, Patriot i Sandisk. Jeśli masz inną markę, możesz wyłączyć sprawdzanie dostawcy, uruchamiając następujące polecenie:
sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim
(lub po prostu edytuj plik /etc/cron.weekly/fstrim
i dodaj --no-model-check
)
Ubuntu 13.10 i wcześniejsze
Istnieją trzy sposoby wykonania TRIM, ręczny, zaplanowany i automatyczny:
Ręczne PRZYCINANIE
W Ubuntu można to zrobić za pomocą fstrim
:
sudo fstrim /
nie jest to jednak konieczne, gdy włączone są zaplanowane lub automatyczne TRIM, jak szczegółowo opisano w poniższych sekcjach.
Uwaga: W przypadku Ubuntu 11.04 i wcześniejszych systemach fstrim nie jest dostępny, więc trzeba użyć wiper.sh
wyposażona hdparm
w/usr/share/doc/hdparm/contrib/wiper.sh.gz
Zaplanowane TRIM (zalecane)
Jest to obecnie zalecana metoda i planowana jest jej domyślna aktywacja w systemie Ubuntu 14.04 . Oto jak aktywować go ręcznie w starszych wersjach Ubuntu (od 11.10 do 13.10):
Utwórz tygodniowy plik skryptu zadania CRON:
gksudo gedit /etc/cron.weekly/fstrim
Wklej następujący kod do pliku, a następnie zapisz i zamknij plik:
#! /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
Zauważ, że powyższe zakłada, że tylko główny system plików /
znajduje się na dysku SSD. Jeśli masz więcej punktów montowania na jednym lub kilku dyskach SSD, dodaj je SSD_MOUNT_POINTS
zgodnie z opisem w kodzie.
Ustaw skrypt jako wykonywalny:
sudo chmod +x /etc/cron.weekly/fstrim
I na koniec przetestuj:
sudo /etc/cron.weekly/fstrim
Jeśli nie widzisz błędów, Twoje zadanie cron powinno działać poprawnie.
Automatyczne TRIM (przestarzałe, wolne)
Automatyczne TRIM jest obsługiwane od wersji Ubuntu 10.10 (jądro 2.6.33) z systemem plików EXT4. Jednak rozpoznawanie wysyłania poleceń TRIM na dysk SSD w czasie rzeczywistym - po każdym usunięciu - powoduje, że usuwanie jest znacznie wolniejsze niż zwykle na niektórych dyskach. Dlatego zaleca się cotygodniowe zaplanowane TRIM przez zadanie cron (opisane powyżej).
Aby włączyć automatyczne TRIM na dysku lub partycji, należy je zamontować z discard
opcją w fstab
. Najpierw wykonaj kopię zapasową pliku fstab, a następnie otwórz go do edycji:
sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
Dodaj discard
do wpisu opcji fstab (oddzielony przecinkami) dla dysku SSD lub każdej partycji.
UUID=00000000-0000-0000-0000-000000000000 / ext4 discard,errors=remount-ro 0 1
Zamknij i zapisz fstab, a następnie uruchom ponownie i automatyczne TRIM powinno działać.
Testowanie automatycznego TRIM
Aby sprawdzić, czy TRIM działa, wydaj następujące polecenia ( źródło ):
cd / # Replace with SSD file system
sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
sudo hdparm --fibmap tempfile
Z danych wyjściowych skopiuj numer pod begin_LBA
i sprawdź nazwę urządzenia swojego dysku SSD: System->Administration->Disk Utility
np. Sda, sdb, sdc ...
Uruchom następujące polecenie, ale zamień [ADDRESS]
(begin_LBA) i sdX
(nazwa urządzenia SSD) na szczegóły uzyskane powyżej.
sudo hdparm --read-sector [ADDRESS] /dev/sdX
wyjście powinno być długim ciągiem znaków dla tych sektorów
sudo rm tempfile
sync
Powtórz hdparm
polecenie z góry:
sudo hdparm --read-sector [ADDRESS] /dev/sdX
Jeśli otrzymujesz tylko zera, to działa automatyczne TRIM. Jeśli jednak po usunięciu pliku sektory nadal nie są puste, poczekaj chwilę i ponownie uruchom komendę.