Sanitizing a SSD when there's no file system?

White Wind

Honorable
Dec 20, 2013
55
0
10,630
My question is, can a SSD be safely sanitized when there's no file system? All the space is unallocated.
I used SanDisk Dashboard's sanitize command on my Extreme Pro, and it took just a few seconds. It told me it was successful but I wonder if the job was done correctly without a file system.
 
Solution
Flash memory is not like a hard drive, where you can overwrite a 1 with a 0, or a 0 with a 1. Flash memory works like an EEPROM. Overwriting a 0 with a 1 requires it first be erased. 0 -> erased -> 1, or 1 -> erased -> 0.

This erase step takes a lot longer than the write step (it's about as slow as a HDD or even slower), so the drive does it in the background while it's idle and you won't notice its slowness. That way when you need to write data, it can do so with the lighting-fast erased->0 or erased->1 write step. That's what all the fuss about TRIM is about - the OS uses TRIM to tell the SSD which files have been deleted so the space is safe to erase.

If the SSD is completely unallocated and has been allowed to sit idle for a...
Flash memory is not like a hard drive, where you can overwrite a 1 with a 0, or a 0 with a 1. Flash memory works like an EEPROM. Overwriting a 0 with a 1 requires it first be erased. 0 -> erased -> 1, or 1 -> erased -> 0.

This erase step takes a lot longer than the write step (it's about as slow as a HDD or even slower), so the drive does it in the background while it's idle and you won't notice its slowness. That way when you need to write data, it can do so with the lighting-fast erased->0 or erased->1 write step. That's what all the fuss about TRIM is about - the OS uses TRIM to tell the SSD which files have been deleted so the space is safe to erase.

If the SSD is completely unallocated and has been allowed to sit idle for a bit, then the SSD's firmware has put all the flash memory into this erased step, and it is impossible to recover any previously-written data from it. So if that's what the sanitize command is doing, yeah I'd expect it to take just a few seconds - it's just verifying that all unallocated flash memory is in this erased state.

Even if the flash memory hasn't yet been erased, it is much more difficult to recover data from a SSD than a HDD. Unlike a HDD where the sector address points to an exact physical sector on the platters, SSDs use a table of virtual sectors which point to physical memory cells. SSDs do this to allow wear leveling. Because each flash memory cell is only good for a few thousand writes, you want all the cells to be written to roughly the same amount of times. If you copied a movie onto the SSD when it was new and never erased that movie, the flash memory cells which contained it would only experience one write, while the other cells were written to multiple times. To avoid this, when the SSD detects that certain memory cells aren't being written to as much, it will copy the contents to different cells, then update the file's location in its virtual sector table. That way the OS doesn't know the file has been moved, but it has been moved to new physical memory cells, and the cells which used to contain it and which have experience only one write can be used for other writes. The wear on the cells is leveled across cells.

Any time the SSD does this wear leveling, the standard tricks for undeleting files become impossible. Because when the undelete program requests the data form the sector where the file used to be, the SSD sends it the data from a completely different physical memory cell where the data was never stored.
 
Solution
Thanks for the detailed answer. Yeah in fact, I had 2 of those SSDs in RAID0 with Windows on it, array that was intentionally broken a few months ago.
Yesterday I then sanitized them, then set their tables to GPT and formated.
They remained unallocated for a few months after RAID was dismantled, so if I go by what you said, the firmware had enough time to erase the cells.
Everything's fine then, thank you :)
 

TRENDING THREADS