Ubuntu 14.10 in poi
In Ubuntu 14.10 e 15.04, TRIMming si verifica automaticamente ogni settimana su tutti gli SSD supportati da fstrim
.
$ tail -n1 /etc/cron.weekly/fstrim
/sbin/fstrim --all || true
Dal 15.04 Ubuntu utilizza systemd e il suo timer ( man systemd.timer
, Arch wiki )
systemctl list-timers
systemctl status fstrim.timer
Ubuntu 14.04
A partire da Ubuntu 14.04, TRIM pianificato è abilitato per impostazione predefinita per SSD Intel, SAMSUNG, OCZ, Patriot e Sandisk. Se si dispone di un altro marchio, è possibile disabilitare il controllo del fornitore eseguendo il comando seguente:
sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim
(o semplicemente modifica il file /etc/cron.weekly/fstrim
e aggiungi --no-model-check
)
Ubuntu 13.10 e precedenti
Esistono tre modi per eseguire TRIM, manuale, programmato e automatico:
TRIM manuale
In Ubuntu questo può essere eseguito con fstrim
:
sudo fstrim /
tuttavia non è necessario quando sono abilitati i TRIM programmati o automatici, come dettagliato nelle sezioni seguenti.
Nota: per Ubuntu 11.04 e sistemi precedenti, fstrim non è disponibile, quindi è necessario utilizzare wiper.sh
fornito con hdparm
in/usr/share/doc/hdparm/contrib/wiper.sh.gz
TRIM programmato (consigliato)
Questo è il metodo attualmente raccomandato ed è pianificato per essere attivato di default per Ubuntu 14.04 . Ecco come attivarlo manualmente nelle versioni precedenti di Ubuntu (dall'11.10 al 13.10):
Creare un file di script di lavoro CRON settimanale:
gksudo gedit /etc/cron.weekly/fstrim
Incolla il seguente codice nel file, quindi salva e chiudi il file:
#! /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
Si noti che quanto sopra presuppone che solo il proprio filesystem di root /
si trovi su un SSD. Se hai più punti di montaggio che risiedono su uno o più SSD, aggiungili SSD_MOUNT_POINTS
come spiegato nel codice.
Rendi eseguibile lo script:
sudo chmod +x /etc/cron.weekly/fstrim
E infine testalo:
sudo /etc/cron.weekly/fstrim
Se non vedi errori, il tuo cron job dovrebbe funzionare bene.
TRIM automatico (obsoleto, lento)
Il TRIM automatico è supportato da Ubuntu 10.10 (kernel 2.6.33) con il file system EXT4. Tuttavia, l'invio di comandi TRIM all'SSD in tempo reale - dopo ogni eliminazione - è stato riconosciuto per rendere la cancellazione molto più lenta del solito su alcune unità. Pertanto si consiglia un TRIM programmato settimanalmente tramite un processo cron (descritto sopra).
Per abilitare il TRIM automatico su un'unità o partizione, devono essere montati con l' discard
opzione in fstab
. Per prima cosa esegui il backup di fstab, quindi aprilo per la modifica:
sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
Aggiungi discard
alla voce delle opzioni fstab (separata da virgola) per l'unità SSD o ogni partizione.
UUID=00000000-0000-0000-0000-000000000000 / ext4 discard,errors=remount-ro 0 1
Chiudi e salva fstab, quindi riavvia e TRIM automatico dovrebbe ora funzionare.
Test del TRIM automatico
Per verificare se TRIM funziona emettere i seguenti comandi ( sorgente ):
cd / # Replace with SSD file system
sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
sudo hdparm --fibmap tempfile
Dall'output copia il numero sotto begin_LBA
e verifica il nome del dispositivo del tuo SSD: System->Administration->Disk Utility
es. Sda, sdb, sdc ...
Eseguire quanto segue ma sostituire [ADDRESS]
(begin_LBA) e sdX
(nome dispositivo SSD) con i dettagli ottenuti sopra.
sudo hdparm --read-sector [ADDRESS] /dev/sdX
l'output dovrebbe essere una lunga serie di caratteri per quei settori
sudo rm tempfile
sync
Ripeti il hdparm
comando dall'alto:
sudo hdparm --read-sector [ADDRESS] /dev/sdX
Se ottieni solo zeri, allora TRIM automatico funziona. Tuttavia, se dopo aver rimosso il file i settori non sono ancora vuoti, attendere qualche istante ed eseguire nuovamente il comando.