Je sais que le noyau Linux prend en charge TRIM à partir de la version 2.6.33, il devrait donc être compatible TRIM dans Ubuntu.
Est-ce que TRIM est activé par défaut ou dois-je modifier certains paramètres ou installer un logiciel supplémentaire pour que cela fonctionne? Si c'est le cas, comment?
Dans Ubuntu 14.10 et 15.04, TRIMming se déroule automatiquement chaque semaine sur tous les SSD pris en charge par fstrim
.
$ tail -n1 /etc/cron.weekly/fstrim
/sbin/fstrim --all || true
Depuis 15.04 Ubuntu utilise systemd et son timer (man systemd.timer
, Arch wiki )
systemctl list-timers
systemctl status fstrim.timer
À partir d’Ubuntu 14.04, la TRIM planifiée est activée par défaut pour les SSD Intel, SAMSUNG, OCZ, Patriot et Sandisk. Si vous avez une autre marque, vous pouvez la désactiver. le vendeur vérifier en exécutant la commande suivante:
sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim
(ou modifiez simplement le fichier /etc/cron.weekly/fstrim
et ajoutez --no-model-check
)
Il existe trois façons d'effectuer TRIM: manuel, programmé et automatique:
Dans Ubuntu, ceci peut être effectué avec fstrim
:
Sudo fstrim /
toutefois, cela n'est pas nécessaire lorsque les TRIM programmés ou automatiques sont activés, comme indiqué dans les sections ci-dessous.
Remarque: Pour Ubuntu 11.04 et les systèmes antérieurs, fstrim n’est pas disponible, vous devez donc utiliser wiper.sh
fourni avec hdparm
dans /usr/share/doc/hdparm/contrib/wiper.sh.gz
Ceci est la méthode actuellement recommandée, et est prévu pour être activé par défaut pour Ubuntu 14.04 . Voici comment l'activer manuellement dans les anciennes versions d'ubuntu (11.10 à 13.10):
Créez un fichier de script de travail CRON hebdomadaire:
gksudo gedit /etc/cron.weekly/fstrim
Collez le code suivant dans le fichier, puis enregistrez et fermez le fichier:
#! /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
Notez que ce qui précède suppose que seul votre système de fichiers racine /
se trouve sur un disque SSD. Si vous avez plusieurs points de montage résidant sur un ou plusieurs disques SSD, ajoutez-les à SSD_MOUNT_POINTS
comme expliqué dans le code.
Rendre le script exécutable:
Sudo chmod +x /etc/cron.weekly/fstrim
Et enfin le tester:
Sudo /etc/cron.weekly/fstrim
Si vous ne voyez aucune erreur, votre travail cron devrait bien fonctionner.
Le TRIM automatique est pris en charge depuis Ubuntu 10.10 (noyau 2.6.33) avec le système de fichiers EXT4. Cependant, l'envoi de commandes TRIM au SSD en temps réel - après chaque suppression - a été reconnu comme rendant la suppression beaucoup plus lente que d'habitude sur certains lecteurs. Par conséquent, une TRIM programmée hebdomadairement via un travail cron (décrit ci-dessus) est recommandée.
Pour activer TRIM automatique sur un lecteur ou une partition, vous devez les monter avec l'option discard
dans fstab
. Commencez par sauvegarder votre fstab puis ouvrez-le pour le modifier:
Sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
Ajoutez discard
à l'entrée d'options fstab (séparée par des virgules) pour le lecteur SSD ou chaque partition.
UUID=00000000-0000-0000-0000-000000000000 / ext4 discard,errors=remount-ro 0 1
Fermez et enregistrez fstab, puis redémarrez et TRIM automatique devrait maintenant fonctionner.
Pour tester si TRIM fonctionne, exécutez les commandes suivantes ( source ):
cd / # Replace with SSD file system
Sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
Sudo hdparm --fibmap tempfile
À partir de la sortie, copiez le numéro sous begin_LBA
et vérifiez le nom de périphérique de votre SSD: System->Administration->Disk Utility
p. Ex. sda, sdb, sdc ...
Exécutez ce qui suit, mais remplacez [ADDRESS]
(begin_LBA) et sdX
(nom du périphérique SSD) par les détails obtenus ci-dessus.
Sudo hdparm --read-sector [ADDRESS] /dev/sdX
la sortie devrait être une longue chaîne de caractères pour ces secteurs
Sudo rm tempfile
sync
Répétez la commande hdparm
ci-dessus:
Sudo hdparm --read-sector [ADDRESS] /dev/sdX
Si vous n'obtenez que des zéros, alors TRIM automatique fonctionne. Cependant, si après la suppression du fichier, les secteurs ne sont toujours pas vides, attendez un moment et relancez la commande.
Notez que si vous utilisez le cryptage, les solutions publiées jusqu'à présent ne vous aideront pas, car vous devez également activer la prise en charge TRIM dans la couche de cryptage. Cela peut être fait avec les versions de noyau 3.1+ et les versions de cryptsetup 1.4+, toutes deux incluses dans Ubuntu 12.04.
Trouvez mon guide sur la configuration de TRIM pour les partitions chiffrées par LUKS ici
Comment activer TRIM sur les partitions chiffrées LUKS dans Ubuntu et Debian
Cette procédure pas à pas vous permettra de tirer parti de la technologie TRIM pour vos partitions SSD chiffrées pour cryptsetup 1.4 ou supérieur et le noyau 3.1 ou supérieur. Cela conduit à une expérience SSD sans tracas car
"TRIM permet au SSD de gérer à l’avance la surcharge de la récupération de place qui, autrement, ralentirait considérablement les opérations d’écriture futures sur les blocs concernés."
Exemple de configuration
Ordinateur portable avec SSD comme lecteur unique, Linux installé dans une seule partition racine LVM ext4 avec une partition swap LVM, les deux sur une partition logique chiffrée par LUKS.
SSD:/dev/sda
Sudo fdisk -l /dev/sda
/dev/sda1 # boot partition (83) (unencrypted, ext4)
/dev/sda2 # extended partition
/dev/sda5 # logical partition (83) with LUKS encryption
ls /dev/mapper
/dev/mapper/sda5_crypt # encrypted LUKS device in physical /dev/sda5 partition
/dev/mapper/volumegroup-root # rootpartition sda5_crypt
/dev/mapper/volumegroup-swap # swap partition sda5_crypt
HowTo
Ajoutez un paramètre de suppression aux options de système de fichiers des volumes LVM chiffrés dans votre fichier/etc/fstab. Cela indique au système de fichiers de votre partition LVM que vous souhaitez utiliser TRIM.
/dev/mapper/volumegroup-root / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
La dernière étape ne suffit pas cependant. Tant que LUKS ne sait pas que vous souhaitez utiliser TRIM, il bloquera effectivement toutes les opérations TRIM provenant du système de fichiers de la partition LVM, pour des raisons de sécurité. Ajoutez un paramètre de suppression aux options cryptdevice dans/etc/crypttab pour que LUKS accepte le comportement de suppression de la partition LVM.
sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
Reconstruisez vos initramfs. Les options crypttab sont stockées ici et utilisées au démarrage.
Sudo update-initramfs -c -k all
Redémarrez.
Vérifiez si TRIM est maintenant actif.
Sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
Si la dernière commande affiche un résultat comme celui-ci (1 allow_discards à la fin), vous êtes tous définis.
0 77656056 crypt aes-cbc-essiv:sha256 abc[...]c7a0c 0 8:5 2056 1 allow_discards
Résultat
TRIM est activé. Profitez de votre SSD sans tracas!