I happen to know that formatting a disk even 10 times does not destroy everything. Is there a good shredding utility I can use on Linux ?
With conventional hard drives, a single wipe with zeros may be enough
The 'multiple wipes' method assumes that you're using older drives (with larger magnetic domains). The 'definitive' paper on data destruction by Guttmann suggests 35 different patterns - which are effective on different types of drives.
Guttmann suggests filling the drive with random data these days and a single wipe would do according to most. The shred command works for that.
The situation with SSDs is more muddied. Bell and Boddington at Murdoch University claim that the garbage collection on SSDs tends to overwrite deleted data in their paper. A team at the University of California claims the exact opposite, that nothing short of physical destruction works and that both ATA secure delete and shredding methods fail in most cases. Taking all this into account toolwise, you should consider shred (which does a high level secure wipe), and running a SATA secure wipe from HDparm if you can which is at lower level. That should handle most situations I believe. You should also consider encrypting any data worth deleting from the get go.
For entire disks, there's the
shred command, which by default only overwrites three times but with the
-n <number> option can do as many passes as desired. It doesn't work so well on individual files in journaled filesystems, though. With the
shred will do an extra pass with 0s afterward, so the shredding isn't immediately obvious.