Change prisivioning model to unmap to enable TRIM for USB disk:
echo unmap > /sys/block/sda/device/scsi_disk/*/provisioning_mode
verify settings:
# cat /sys/block/sda/device/scsi_disk/*/provisioning_mode
unmap
unmap
during LUKS volumen mounting add --allow-discards:
cryptsetup luksOpen --allow-discards /dev/sda encrypted_disk
verify, both device and encrypted volume should shows non-zero values:
# lsblk --discard /dev/sda
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda 0 512B 4G 0
└─encrypted_disk 0 512B 4G 0
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda 0 512B 4G 0
└─encrypted_disk 0 512B 4G 0
mount filesystem:
mount /dev/mapper/encrypted_disk /data
run fstrim on mounted filesystem:
fstrim -v /data