Linux – Is wiper.sh working

hdparmlinuxssdtrim

I'm setting up a server running Ubuntu Precise, and I'm trying to verify if SSD TRIM is working.

fstrim is failing:

~  sudo fstrim -v /
fstrim: /: FITRIM ioctl failed: Operation not supported

So I tried wiper.sh in hdparm:

wiper-3.5  sudo ./wiper.sh --verbose  --commit /dev/sda1

wiper.sh: Linux SATA SSD TRIM utility, version 3.5, by Mark Lord.
rootdev=/dev/sda1
fsmode2: fsmode=read-write
/: fstype=ext4
freesize = 169502088 KB, reserved = 1695020 KB
Preparing for online TRIM of free space on /dev/sda1 (ext4 mounted read-write at /).

This operation could silently destroy your data.  Are you sure (y/N)? y
Creating temporary file (167807068 KB)..
Syncing disks..
Beginning TRIM operations..
get_trimlist=/sbin/hdparm --fibmap WIPER_TMPFILE.11503

/dev/sda:
trimming 3211263 sectors from 64 ranges
succeeded
trimming 3571713 sectors from 64 ranges
succeeded
trimming 3915776 sectors from 64 ranges
succeeded
(...)
trimming 3657913 sectors from 60 ranges
succeeded
Removing temporary file..
Syncing disks..
Done.

It seems to be working, but I'm wondering if it really is. Are there any cases where wiper.sh should work when fstrim isn't? Is there any way I can check if the TRIMing actually has succeeded (other than trusting the wiper.sh-log)?

Kernel version: Linux 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:16:45 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Best Answer

What version kernel are you running? The FITRIM ioctl was added around Aug 2010, so older kernels won't have it. My guess would be that wiper.sh is using a different method of trimming, which is why it would work without the ioctl.