It's been established that, thanks to our good friend Mr. Wear Leveler, wiping data from an SSD is very difficult. I understand that the one thing you don't want to do is actually attempt to shred files or zero out the drive.

However, what if I wrote some simple program code to get the amount of free space left on an SSD then write a single file full of useless bits to the drive? So, if there are 90 GB of free space, I write a 90-GB file to the SSD. There would be no room to shuffle space around because all of it would be needed.

How would this work?

  • 4
    SSDs do not make the entire internal capacity visible via the sata/usb interface. There is additional storage that is used when blocks fail by bad block mapping algorithms inside the drive. Since you cannot get to those blocks via the standard interface there is no way to over-write it simply using software. The assumption here is that a motivated attacker might have the skills to pop that drive open and directly access the hardware.
    – Zoredache
    Nov 27, 2013 at 1:45
  • 2
    @Zoredache If that extra storage is actually saved for when blocks fail, any data in there should be irrelevant - particularly, there shouldn't be any data in there - right?
    – Iszi
    Nov 27, 2013 at 5:05
  • 1
    @Iszi It's not quite that simple. SSD devices tend to use extra capacity for wear levelling, distributing writes to extend the life of the storage device. Essentially you have no control over which physical cells end up holding your block of data, or even if and when those cells may be overwritten/scrubbed or reconditioned.
    – Roy
    Jul 19, 2016 at 8:04

1 Answer 1


Hard drives have a feature called Secure Erase you should use for this. It can vary across different hard drive manufacturers, so you may want to look up the Secure Erase feature for yours. This will wipe the entire drive. SSDs don't reliably write to the same location on drive so "shredding" doesn't work.

Not the answer you're looking for? Browse other questions tagged .