2 Answers

up vote 58 down vote accepted
There are two forms of TRIM, manual (fstrim / wiper.sh) and automatic:
1) Manual TRIM
In ubuntu this can be performed with  fstrim, but is not needed when automatic TRIM is enabled. fstrim first appeared in 11.10, on earlier systems you have to use  wiper.sh which can be found at /usr/share/doc/hdparm/contrib/wiper.sh.gz
2) Automatic TRIM
Automatic TRIM is supported since kernel 2.6.33 with the EXT4 file system
For automatic TRIM to work, the drive needs to be mounted with the "discard" option in fstab. To add this option run:
sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
add  discard to options on the entry for the SSD; the line should read similar to this:
UUID=ed586ab8-08c5-4bae-b118-d191b716b4a4 /               ext4    discard,errors=remount-ro 0       1
reboot, automatic TRIM should now be working.
Testing automatic TRIM:
To Test if Trim is working issue the following commands (adapted from  here):
cd  / #or whatever part of the file system is on the SSD
sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct # you will not need sudo for these to work, if your SSD is in /home for example
sudo hdparm --fibmap tempfile    
From the output copy the number under "begin_LBA" and use it in the next command. Also check the system name of your SSD: System->Administration->Disk Utility (sda, sdb, or sdc ...)
sudo hdparm --read-sector 2638848 /dev/sda #replace 2638848 with the number obtained before and /sda with your SSD drive
you should receive a a long string of characters for those sectors
sudo rm tempfile
sync
sudo hdparm --read-sector 2638848 /dev/sda
even after removing the file the sectors are still not empty. Wait a while then run the command again
sudo hdparm --read-sector 2638848 /dev/sda
if you get only zeros, then automatic TRIM is working.