Dimensione: 8705
Commento:
|
← Versione 62 del 12/05/2024 13.23.31 ⇥
Dimensione: 13369
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 4: | Linea 4: |
#language it | #LANGUAGE it |
Linea 6: | Linea 6: |
<<Indice(depth=3)>> | <<Indice(depth=2)>> |
Linea 8: | Linea 8: |
## aleandrodasilva: quando aggiorni la pagina, fai un salto sul forum per informarci ;) | |
Linea 12: | Linea 11: |
Il '''[[http://it.wikipedia.org/wiki/TRIM | TRIM]]''' consente al sistema operativo di comunicare al [[https://it.wikipedia.org/wiki/Unit%C3%A0_a_stato_solido|drive a stato solido (SSD)]] che blocchi di dati non sono più considerati in uso e possono essere liberati definitivamente. Lo scopo è di evitare inutili cicli di scrittura che con il tempo tendono a logorare le celle del drive (impropriamente detto disco). Se non si utilizza il '''TRIM''', dopo un po' di tempo, la velocità del disco diminuisce e le celle del drive vengono sovrascritte in modo disomogeneo. Quindi se si possiede un drive che lo supporta è consigliato abilitarlo seguendo le istruzioni presenti in questa guida. {{{#!wiki tip Negli SSD di marca Intel e Samsung, il '''TRIM''' è abilitato a livello hardware automaticamente. Inoltre è eseguito settimanalmente in '''Ubuntu 14.04 LTS''' e versioni successive. }}} |
Il '''[[http://it.wikipedia.org/wiki/TRIM | TRIM]]''' è una funzionalità che consente al sistema operativo di segnalare al [[https://it.wikipedia.org/wiki/Unit%C3%A0_a_stato_solido|drive a stato solido (SSD)]] che blocchi di dati non sono più considerati in uso e che, quindi, possono essere liberati definitivamente.<<BR>> Lo scopo è di evitare inutili cicli di scrittura che tendono a logorare le celle del drive (chiamato anche impropriamente disco). Se non si utilizza il '''TRIM''', con il tempo, la velocità del disco diminuisce e le celle del drive vengono sovrascritte in modo disomogeneo. Nella maggior parte dei casi, __non__ è necessaria alcuna modifica al sistema per attivare il '''TRIM''', poiché è pre-abilitato in '''Ubuntu 14.04 LTS''' e versioni successive (con cadenza settimanale). Inoltre in molti SSD viene preimpostato a livello hardware (ad esempio nei modelli recenti di marca Intel e Samsung). Pertanto questa guida è rivolta principalmente: * alla verifica della presenza del servizio e al suo monitoraggio; * in presenza di vecchi SSD o di modelli specifici, all'attivazione del TRIM con particolari accorgimenti; * ad altri casi vari (esigenze particolari del sistema o di eventuali software o dell'utente, per scopi di test ecc.). <<Anchor(requisiti)>> |
Linea 22: | Linea 24: |
Prima di abilitare il '''TRIM''' assicurarsi che: * Sia in utilizzo un kernel '''Linux 2.6.33''' o successivo. Per conoscere il kernel in uso sul sistema, digitare in un [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{ uname -a }}} * Possedere un disco SSD che supporti il '''TRIM'''. Per verificare: 0. [[Hardware/DispositiviPartizioni/IndividuarePartizioni|Individuare il disco]] in uso (ad esempio `/dev/sda`, `/dev/sdb` ecc.). 0. Digitare il comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ |
Per conoscere la capacità di esecuzione del TRIM digitare in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ lsblk -D }}} L'output sarà simile al seguente:{{{ NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO sda 0 512B 2G 0 ├─sda1 0 512B 2G 0 ├─sda2 0 512B 2G 0 └─sda3 0 512B 2G 0 sdb 0 4K 128M 0 ├─sdb1 0 4K 128M 0 └─sdb2 0 4K 128M 0 }}} Se i valori nelle colonne `DISC-GRAN` e `DISC-MAX` sono diversi da zero, allora il TRIM è supportato per quel drive e/o partizione. {{{#!wiki note Attualmente la maggior parte degli SSD in commercio e dei sistemi supportati rispettano i requisiti per eseguire il '''TRIM'''. Qualora lo si ritenga necessario, è comunque possibile verificare tutti i requisiti tramite le istruzioni riportate di seguito. }}} == Filesystem == Linux supporta il '''TRIM''' su diversi tipi di filesystem, fra cui Ext4 (di default su Ubuntu) e [[Hardware/DispositiviPartizioni/Btrfs|BTRFS]] . Per sapere quale tipo di filesystem è in uso sulla partizione di sistema, digitare in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ cat /etc/mtab | grep -E 'ext4|btrfs' }}} Se non sono presenti partizioni nei suddetti filesystem, non verrà restituito alcun output. == Kernel == Il '''TRIM''' può essere abilitato su tutte le versioni del kernel Linux attualmente supportate. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{ uname -r }}} Se la versione è pari o successiva alla 2.6.33, allora il TRIM potrà essere abilitato. == Supporto hardware == Per gli SSD SATA è disponibile il programma '''hdparm'''. 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://hdparm|hdparm]]. 0. [[Hardware/DispositiviPartizioni/IndividuarePartizioni|Individuare il drive]] in uso (ad esempio `/dev/sda`, `/dev/sdb` ecc.). 0. Digitare il comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ |
Linea 31: | Linea 69: |
}}} sostituendo «`sdx`» con il nome del disco, trovato precedentemente. 0. L'output restituito sarà simile al seguente:{{{ |
}}} sostituendo «`sdx`» con il nome del disco, trovato precedentemente. 0. L'output restituito sarà simile al seguente:{{{ |
Linea 35: | Linea 74: |
Al contrario, se il '''TRIM''' non è supportato non verrà restituito alcun output. * Le partizioni di '''Ubuntu''' siano nel filesystem EXT4 o BRTFS, digitare in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ cat /etc/mtab | grep ext4 }}} l'output sarà simile al seguente:{{{ /dev/sda1 / ext4 rw,errors=remount-ro 0 0 }}} se non vi sono partizioni formattate in EXT4, non verrà restituito alcun output. {{{#!wiki note Poiché sono in pochi ad utilizzare il [[Hardware/DispositiviPartizioni/Btrfs/Introduzione#Manutenzione|filesystem BTRFS]], la guida verterà sull'abilitazione del TRIM sul [[Hardware/DispositiviPartizioni/MontarePartizioni/Ext4|filesystem EXT4]]. }}} = Abilitazione del TRIM = Una volta verificato che siano soddisfatti i requisiti visti nel precedente paragrafo, è possibile passare all'abilitazione del '''TRIM'''. == Abilitazione del TRIM attraverso fstab == 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] ed i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]] il file `/etc/fstab` ed aggiungere le opzioni «discard» (ed eventualmente anche «noatime») come nell'esempio successivo:{{{ <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sdb1 during installation UUID=1cd2fc4f-7d99-4c7a-8ea7-6f9a2d5e5960 / ext4 discard,noatime,errors=remount-ro 0 1 }}} 0. Salvare le modifiche e riavviare il sistema. In alternativa è possibile seguire le istruzioni del successivo paragrafo. == Pianificazione di un'operazione giornaliera di cron == 0. Testare il funzionamento del comando '''fstrim''', digitando in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ |
Al contrario, se il '''TRIM''' non è supportato, non verrà restituito alcun output. = TRIM settimanale (verifica e monitoraggio) = L'esecuzione automatica del '''TRIM''' con cadenza settimanale è affidata dal sistema a '''[[AmministrazioneSistema/Systemd|systemd]]'''.<<BR>> È possibile ottenere informazioni utili tramite i comandi descritti di seguito. == Presenza del servizio == Digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ systemctl list-timers --all }}} Se presente il servizio relativo al TRIM, l'output restituirà una lista di cui una riga sarà simile alla seguente:{{{ Mon 2022-07-11 00:00:00 CEST 2 days left Mon 2022-07-04 00:00:25 CEST 4 days ago fstrim.timer fstrim.service }}} == Abilitare il servizio == Digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ systemctl is-enabled fstrim.timer }}} Se il servizio è abilitato l'output sarà il seguente:{{{ enabled }}} In caso contrario è possibile abilitarlo con il comando:{{{ sudo systemctl enable fstrim.timer }}} oppure aggiungendo l'opzione `--now` per anticiparne la partenza:{{{ sudo systemctl enable --now fstrim.timer }}} == Stato del servizio == Digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ systemctl status fstrim.timer }}} L'output conterrà al suo interno diverse informazioni e sarà simile al seguente:{{{ ● fstrim.timer - Discard unused blocks once a week Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: enabled) Active: active (waiting) since Fri 2022-07-08 10:02:29 CEST; 1h 48min ago Trigger: Mon 2022-07-11 00:00:00 CEST; 2 days left Triggers: ● fstrim.service Docs: man:fstrim }}} == Visualizzare il log == Digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ sudo journalctl -u fstrim.service }}} L'output restituirà informazioni relative alle ultime esecuzioni del TRIM (tra cui data e ora di esecuzione, partizioni coinvolte, quantità di dati). = TRIM giornaliero = In alcuni casi potrebbe tornare utile eseguire il TRIM giornalmente anziché ogni settimana. A tal fine eseguire i passaggi descritti di seguito. 0. [[https://wiki.ubuntu-it.org/AmministrazioneSistema/ComandiBase#mkdir|Creare]] con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] la cartella `/etc/systemd/system/fstrim.timer.d`. 0. Creare con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/systemd/system/fstrim.timer.d/override.conf`. 0. Inserire nel file il seguente testo:{{{ [Timer] OnCalendar= OnCalendar=daily }}} 0. Riavviare il sistema. Per verificare che sia stato impostato il TRIM giornaliero digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ systemctl cat fstrim.timer }}} L'output sarà simile al seguente:{{{ # /lib/systemd/system/fstrim.timer [Unit] Description=Discard unused blocks once a week Documentation=man:fstrim ConditionVirtualization=!container [Timer] OnCalendar=weekly AccuracySec=1h Persistent=true [Install] WantedBy=timers.target # /etc/systemd/system/fstrim.timer.d/override.conf [Timer] OnCalendar= OnCalendar=daily }}} dove nelle ultime righe dovrebbero comparire le nuove impostazioni. Per ripristinare il TRIM settimanale sarà sufficiente [[AmministrazioneSistema/ComandiBase#rm_e_rmdir|eliminare]] il file creato in precedenza con il comando:{{{ sudo rm -v /etc/systemd/system/fstrim.timer.d/override.conf }}} infine riavviare il sistema. = TRIM manuale = È inoltre possibile lanciare il comando relativo al '''TRIM''' manualmente. Può tornare utile in alcuni casi (SSD esterni, qualora non si sia certi che il TRIM venga eseguito regolarmente, a scopo di test, ecc.). È possibile eseguire il comando '''ftrim''' sulla partizione di sistema digitando il seguente comando:{{{ |
Linea 65: | Linea 181: |
}}} l'output dovrebbe essere simile a questo:{{{ | }}} In alternativa è possibile eseguirlo su tutte le partizioni montate, e che lo supportano, digitando:{{{ sudo fstrim -av }}} L'output sarà simile al seguente:{{{ |
Linea 68: | Linea 188: |
0. Aprire con un [[Ufficio/EditorDiTesto| editor di testo]] e i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi amministrativi]] il file `/etc/cron.daily/trim` e incollare all'interno le seguenti righe:{{{ | {{{#!wiki important Attendere il termine dell'operazione (a volte potrebbe impiegare diverso tempo). }}} Per conoscere nel dettaglio la sintassi del comando e tutte le altre opzioni digitare:{{{ man fstrim }}} = TRIM giornaliero tramite cron (facoltativo) = {{{#!wiki important Questo metodo è alternativo a quello programmato con systemd. Se attivato uno si raccomanda di disattivare l'altro. }}} 0. Aprire con un [[Ufficio/EditorDiTesto| editor di testo]] e i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi amministrativi]] il file `/etc/cron.daily/trim`. 0. Incollare all'interno le seguenti righe:{{{ |
Linea 74: | Linea 209: |
}}} Se presenti altre partizioni occorre aggiungere ulteriori righe seguendo la sintassi:{{{ fstrim -v /punto_di_mount >> $LOG }}} Ad esempio se per `/home` è dedicata una [[Hardware/DispositiviPartizioni/SpostareHomePartizioneSeparata|partizione separata]]:{{{ |
|
Linea 75: | Linea 215: |
}}} Le ultime due righe abilitano il '''TRIM''' per la partizione root (`/`) e la partizione `/home`. Omettere quindi l'ultima riga se non per `/home` non è dedicata una [[Hardware/DispositiviPartizioni/SpostareHomePartizioneSeparata|partizione separata]].<<BR>> Se presenti altre partizioni occorre aggiungere altre righe seguendo la sintassi:{{{ fstrim -v /nome_partizione>> $LOG |
|
Linea 84: | Linea 220: |
== Partizioni criptate == Se si stanno utilizzando partizioni criptate occorrono ulteriori passaggi affinché il tutto funzioni. 0. Aprire con un [[Ufficio/EditorDiTesto| editor di testo]] ed i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi amministrativi]] il file `/etc/default/grub`. 0. Modificare la riga:{{{ GRUB_CMDLINE_LINUX="" }}} in {{{ GRUB_CMDLINE_LINUX="allow-discards root_trim=yes" }}} 0. Salvare il file e [[AmministrazioneSistema/Grub#Comandi|aggiornare]] '''Grub''' con il comando:{{{ sudo update-grub }}} 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]] il file `/etc/crypttab` e aggiungere l'opzione «`discard`» come nell'esempio successivo:{{{ |
{{{#!wiki note Nelle vecchie versioni di Ubuntu con TRIM abilitato nativamente (es: Ubuntu 14.04 su filesystem ext4), lo script che lo esegue settimanalmente tramite '''crontab''' è presente nel file `/etc/cron.weekly/fstrim`.<<BR>> Anche se tecnicamente possibile, in generale, si sconsiglia di eseguire lo script giornalmente spostando il file in questione nella cartella `/etc/cron.daily`. }}} {{{#!wiki tip Sono disponibili strumenti di terze parti come [[https://chmatse.github.io/SSDcronTRIM/|SSDcronTRIM]]. Quest'ultimo è uno script che controlla lo stato del drive ed esegue il TRIM solo quando necessario. Per maggiori informazioni consultare il sito del progetto. }}} = TRIM tramite opzione discard in fstab (non raccomandato) = Questo metodo, molto utilizzato in passato, attualmente non è più raccomandato poiché potrebbe comportare un calo delle prestazioni. Per maggiori informazioni consultare [[Hardware/DispositiviPartizioni/OttimizzareSSD#Opzione_discard_in_.2Fetc.2Ffstab|questa guida]]. Se l'opzione fosse già in uso si raccomanda di disabilitarla. Per maggiori informazioni sulla gestione del file di configurazione `/etc/fstab` consultare [[AmministrazioneSistema/Fstab|questa guida]]. = TRIM all'avvio tramite /etc/rc.local (non raccomandato) = Consultare [[Hardware/DispositiviPartizioni/OttimizzareSSD#TRIM_in_.2Fetc.2Frc.local|questa guida]]. = Partizioni criptate = Per motivi di sicurezza, con le impostazioni di default di [[https://it.wikipedia.org/wiki/Linux_Unified_Key_Setup|LUKS]], il '''TRIM''' non viene eseguito su partizioni criptate. {{{#!wiki tip È possibile verificare questa situazione nel proprio sistema con lo strumento '''lsblk''' relativamente alla partizioni interessate, come descritto in questo [[#requisiti|paragrafo]]. }}} Occorre pertanto assicurarsi che sia opportunamente configurato il file in cui è riportata la tabella dei device criptati. Seguire le istruzioni seguenti: ##0. Aprire con un [[Ufficio/EditorDiTesto| editor di testo]] e i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi amministrativi]] il file `/etc/default/grub`. ## 0. Modificare la riga:{{{ ##GRUB_CMDLINE_LINUX="" ##}}} in {{{ ##GRUB_CMDLINE_LINUX="allow-discards root_trim=yes" ##}}} ## 0. Salvare il file e [[AmministrazioneSistema/Grub#Comandi|aggiornare]] '''Grub''' con il comando:{{{ ##sudo update-grub ##}}} 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]] il file `/etc/crypttab`. 0. Il file sarà simile al seguente:{{{ |
Linea 101: | Linea 261: |
0. Salvare le modifiche e digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ | 0. Qualora sia già presente l'opzione «`discard`», non occorre eseguire alcuna operazione e si potrà chiudere l'editor. Se al contrario l'opzione fosse assente, continuare con i passaggi successivi. 0. Aggiungere l'opzione «`discard`» come nell'esempio precedente, quindi salvare le modifiche e chiudere il file. 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ |
Linea 105: | Linea 267: |
= Ottimizzazione del TRIM = Quando il TRIM è abilitato nativamente (in Ubuntu 14.04 e successivi, installati su filesystem ext4), lo script che lo esegue con cadenza settimanale, tramite '''crontab''', è presente nel file `/etc/cron.weekly/fstrim`. Nei paragrafi successivi sono presenti ulteriori consigli per ottimizzare il funzionamento del '''TRIM''' e per preservare il drive SSD. {{{#!wiki important Anche se tecnicamente possibile, in generale si sconsiglia di eseguire lo script giornalmente spostando il file in questione nella cartella `/etc/cron.daily`. }}} {{{#!wiki tip Sono disponibili strumenti di terze parti come [[http://chmatse.github.io/SSDcronTRIM/|SSDcronTRIM]]. Quest'ultimo è uno script che controlla lo stato del drive ed esegue il TRIM solo quando necessario. Per maggiori informazioni consultare il sito del progetto.}}} == Swap == Disattivare la partizione di [[Hardware/DispositiviPartizioni/SwapDomandeFrequenti|swap]] se si hanno a disposizione più di 4GB di RAM oppure di utilizzarla su un altro disco rigido interno, se presente. == Funzione di Over Provisioning == A tal fine è sufficiente riservare dello spazio non allocato in fondo al drive. La maggior parte dei produttori generalmente consiglia di riservare circa il 7-10% dello spazio totale del disco a tale scopo. In ogni caso si raccomanda di consultare il manuale relativo all'SSD in uso, se disponibile, oppure di contattare i canali di assistenza del produttore. Per maggiori informazioni sulle procedure di partizionamento consultare invece [[Hardware/DispositiviPartizioni/PartizionamentoManuale|questa guida]]. == Funzione di Preload e Prelink == {{{#!wiki important Questa procedura potrebbe comportare un maggiore tempo di avvio del sistema operativo. }}} Attivare le funzionalità di '''Preload''' e '''Prelink''' per velocizzare l'apertura dei programmi: 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]], se non presenti, i pacchetti [[apt://preload|preload]] e [[apt://prelink|prelink]]. 0. Aprire con i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/default/prelink`. 0. Sostituire la stringa:{{{ PRELINKING=unknown }}} con:{{{ PRELINKING=yes }}} 0. Salvare le modifiche e chiudere il file. |
|
Linea 144: | Linea 269: |
* [[http://www.webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html | Documento originale]] * [[https://wiki.archlinux.org/index.php/Solid_State_Drives | Guida su wiki di Archlinux]] |
* [[https://en.wikipedia.org/wiki/Trim_%28computing%29|Pagina enciclopedica]] * [[https://wiki.archlinux.org/title/Solid_state_drive#TRIM | Wiki Arch]] * [[https://en.opensuse.org/SDB:SSD_discard_(trim)_support| Wiki openSUSE]] * [[Hardware/DispositiviPartizioni/OttimizzareSSD|Ottimizzare SSD]] * [[https://askubuntu.com/questions/1034169/is-trim-enabled-on-my-ubuntu-18-04-installation|TRIM su askubuntu]] |
Linea 148: | Linea 276: |
CategoryAmministrazione | CategoryHardware CategoryAmministrazione |
Indice
- Introduzione
- Requisiti hardware e software
- TRIM settimanale (verifica e monitoraggio)
- TRIM giornaliero
- TRIM manuale
- TRIM giornaliero tramite cron (facoltativo)
- TRIM tramite opzione discard in fstab (non raccomandato)
- TRIM all'avvio tramite /etc/rc.local (non raccomandato)
- Partizioni criptate
- Ulteriori risorse
Guida verificata con Ubuntu: 20.04 22.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Il TRIM è una funzionalità che consente al sistema operativo di segnalare al drive a stato solido (SSD) che blocchi di dati non sono più considerati in uso e che, quindi, possono essere liberati definitivamente.
Lo scopo è di evitare inutili cicli di scrittura che tendono a logorare le celle del drive (chiamato anche impropriamente disco). Se non si utilizza il TRIM, con il tempo, la velocità del disco diminuisce e le celle del drive vengono sovrascritte in modo disomogeneo.
Nella maggior parte dei casi, non è necessaria alcuna modifica al sistema per attivare il TRIM, poiché è pre-abilitato in Ubuntu 14.04 LTS e versioni successive (con cadenza settimanale). Inoltre in molti SSD viene preimpostato a livello hardware (ad esempio nei modelli recenti di marca Intel e Samsung).
Pertanto questa guida è rivolta principalmente:
- alla verifica della presenza del servizio e al suo monitoraggio;
- in presenza di vecchi SSD o di modelli specifici, all'attivazione del TRIM con particolari accorgimenti;
- ad altri casi vari (esigenze particolari del sistema o di eventuali software o dell'utente, per scopi di test ecc.).
Requisiti hardware e software
Per conoscere la capacità di esecuzione del TRIM digitare in un terminale il seguente comando:
lsblk -D
L'output sarà simile al seguente:
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO sda 0 512B 2G 0 ├─sda1 0 512B 2G 0 ├─sda2 0 512B 2G 0 └─sda3 0 512B 2G 0 sdb 0 4K 128M 0 ├─sdb1 0 4K 128M 0 └─sdb2 0 4K 128M 0
Se i valori nelle colonne DISC-GRAN e DISC-MAX sono diversi da zero, allora il TRIM è supportato per quel drive e/o partizione.
Attualmente la maggior parte degli SSD in commercio e dei sistemi supportati rispettano i requisiti per eseguire il TRIM. Qualora lo si ritenga necessario, è comunque possibile verificare tutti i requisiti tramite le istruzioni riportate di seguito.
Filesystem
Linux supporta il TRIM su diversi tipi di filesystem, fra cui Ext4 (di default su Ubuntu) e BTRFS .
Per sapere quale tipo di filesystem è in uso sulla partizione di sistema, digitare in un terminale il seguente comando:
cat /etc/mtab | grep -E 'ext4|btrfs'
Se non sono presenti partizioni nei suddetti filesystem, non verrà restituito alcun output.
Kernel
Il TRIM può essere abilitato su tutte le versioni del kernel Linux attualmente supportate.
Digitare nel terminale il comando:
uname -r
Se la versione è pari o successiva alla 2.6.33, allora il TRIM potrà essere abilitato.
Supporto hardware
Per gli SSD SATA è disponibile il programma hdparm.
Installare il pacchetto hdparm.
Individuare il drive in uso (ad esempio /dev/sda, /dev/sdb ecc.).
Digitare il comando nel terminale:
sudo hdparm -I /dev/sdx | grep "TRIM supported"
sostituendo «sdx» con il nome del disco, trovato precedentemente.
L'output restituito sarà simile al seguente:
Data Set Management TRIM supported (limit 8 blocks)
Al contrario, se il TRIM non è supportato, non verrà restituito alcun output.
TRIM settimanale (verifica e monitoraggio)
L'esecuzione automatica del TRIM con cadenza settimanale è affidata dal sistema a systemd.
È possibile ottenere informazioni utili tramite i comandi descritti di seguito.
Presenza del servizio
Digitare nel terminale:
systemctl list-timers --all
Se presente il servizio relativo al TRIM, l'output restituirà una lista di cui una riga sarà simile alla seguente:
Mon 2022-07-11 00:00:00 CEST 2 days left Mon 2022-07-04 00:00:25 CEST 4 days ago fstrim.timer fstrim.service
Abilitare il servizio
Digitare nel terminale:
systemctl is-enabled fstrim.timer
Se il servizio è abilitato l'output sarà il seguente:
enabled
In caso contrario è possibile abilitarlo con il comando:
sudo systemctl enable fstrim.timer
oppure aggiungendo l'opzione --now per anticiparne la partenza:
sudo systemctl enable --now fstrim.timer
Stato del servizio
Digitare nel terminale:
systemctl status fstrim.timer
L'output conterrà al suo interno diverse informazioni e sarà simile al seguente:
● fstrim.timer - Discard unused blocks once a week Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: enabled) Active: active (waiting) since Fri 2022-07-08 10:02:29 CEST; 1h 48min ago Trigger: Mon 2022-07-11 00:00:00 CEST; 2 days left Triggers: ● fstrim.service Docs: man:fstrim
Visualizzare il log
Digitare nel terminale:
sudo journalctl -u fstrim.service
L'output restituirà informazioni relative alle ultime esecuzioni del TRIM (tra cui data e ora di esecuzione, partizioni coinvolte, quantità di dati).
TRIM giornaliero
In alcuni casi potrebbe tornare utile eseguire il TRIM giornalmente anziché ogni settimana. A tal fine eseguire i passaggi descritti di seguito.
Creare con i privilegi di amministrazione la cartella /etc/systemd/system/fstrim.timer.d.
Creare con i privilegi di amministrazione e con un editor di testo il file /etc/systemd/system/fstrim.timer.d/override.conf.
Inserire nel file il seguente testo:
[Timer] OnCalendar= OnCalendar=daily
- Riavviare il sistema.
Per verificare che sia stato impostato il TRIM giornaliero digitare nel terminale il seguente comando:
systemctl cat fstrim.timer
L'output sarà simile al seguente:
# /lib/systemd/system/fstrim.timer [Unit] Description=Discard unused blocks once a week Documentation=man:fstrim ConditionVirtualization=!container [Timer] OnCalendar=weekly AccuracySec=1h Persistent=true [Install] WantedBy=timers.target # /etc/systemd/system/fstrim.timer.d/override.conf [Timer] OnCalendar= OnCalendar=daily
dove nelle ultime righe dovrebbero comparire le nuove impostazioni.
Per ripristinare il TRIM settimanale sarà sufficiente eliminare il file creato in precedenza con il comando:
sudo rm -v /etc/systemd/system/fstrim.timer.d/override.conf
infine riavviare il sistema.
TRIM manuale
È inoltre possibile lanciare il comando relativo al TRIM manualmente. Può tornare utile in alcuni casi (SSD esterni, qualora non si sia certi che il TRIM venga eseguito regolarmente, a scopo di test, ecc.).
È possibile eseguire il comando ftrim sulla partizione di sistema digitando il seguente comando:
sudo fstrim -v /
In alternativa è possibile eseguirlo su tutte le partizioni montate, e che lo supportano, digitando:
sudo fstrim -av
L'output sarà simile al seguente:
/: 8,9 GiB (9603432448 bytes) trimmed
Attendere il termine dell'operazione (a volte potrebbe impiegare diverso tempo).
Per conoscere nel dettaglio la sintassi del comando e tutte le altre opzioni digitare:
man fstrim
TRIM giornaliero tramite cron (facoltativo)
Questo metodo è alternativo a quello programmato con systemd. Se attivato uno si raccomanda di disattivare l'altro.
Aprire con un editor di testo e i privilegi amministrativi il file /etc/cron.daily/trim.
Incollare all'interno le seguenti righe:
#!/bin/sh LOG=/var/log/trim.log echo "*** $(date -R) ***" >> $LOG fstrim -v / >> $LOG
Se presenti altre partizioni occorre aggiungere ulteriori righe seguendo la sintassi:
fstrim -v /punto_di_mount >> $LOG
Ad esempio se per /home è dedicata una partizione separata:
fstrim -v /home >> $LOG
Salvare le modifiche e rendere lo script eseguibile digitando nel terminale il seguente comando:
sudo chmod +x /etc/cron.daily/trim
Nelle vecchie versioni di Ubuntu con TRIM abilitato nativamente (es: Ubuntu 14.04 su filesystem ext4), lo script che lo esegue settimanalmente tramite crontab è presente nel file /etc/cron.weekly/fstrim.
Anche se tecnicamente possibile, in generale, si sconsiglia di eseguire lo script giornalmente spostando il file in questione nella cartella /etc/cron.daily.
Sono disponibili strumenti di terze parti come SSDcronTRIM. Quest'ultimo è uno script che controlla lo stato del drive ed esegue il TRIM solo quando necessario. Per maggiori informazioni consultare il sito del progetto.
TRIM tramite opzione discard in fstab (non raccomandato)
Questo metodo, molto utilizzato in passato, attualmente non è più raccomandato poiché potrebbe comportare un calo delle prestazioni. Per maggiori informazioni consultare questa guida.
Se l'opzione fosse già in uso si raccomanda di disabilitarla. Per maggiori informazioni sulla gestione del file di configurazione /etc/fstab consultare questa guida.
TRIM all'avvio tramite /etc/rc.local (non raccomandato)
Consultare questa guida.
Partizioni criptate
Per motivi di sicurezza, con le impostazioni di default di LUKS, il TRIM non viene eseguito su partizioni criptate.
È possibile verificare questa situazione nel proprio sistema con lo strumento lsblk relativamente alla partizioni interessate, come descritto in questo paragrafo.
Occorre pertanto assicurarsi che sia opportunamente configurato il file in cui è riportata la tabella dei device criptati. Seguire le istruzioni seguenti:
Aprire con un editor di testo e i privilegi di amministrazione il file /etc/crypttab.
Il file sarà simile al seguente:
#<target name> <source device> <key file> <options> var UUID=01234567-89ab-cdef-0123-456789abcdef none luks,discard
Qualora sia già presente l'opzione «discard», non occorre eseguire alcuna operazione e si potrà chiudere l'editor. Se al contrario l'opzione fosse assente, continuare con i passaggi successivi.
Aggiungere l'opzione «discard» come nell'esempio precedente, quindi salvare le modifiche e chiudere il file.
Digitare nel terminale il seguente comando:
sudo update-initramfs -u -k all