What is the recommended way to empty a SSD?
ATA Secure Erase
You should use the drive's security erase feature.
Make sure the drive Security is not frozen. If it is, it may help to suspend and resume the computer.
$ sudo hdparm -I /dev/sdX | grep frozen not frozen
The (filtered) command output means that this drive is ”not frozen” and you can continue.
Set a User Password (this password is cleared too, the exact choice does not matter).
sudo hdparm --user-master u --security-set-pass Eins /dev/sdX
Issue the ATA Secure Erase command
sudo hdparm --user-master u --security-erase Eins /dev/sdX
Note:
/dev/sdX
is the SSD as a block device that you want to erase.Eins
is the password chosen in this example.
See the ATA Secure Erase article in the Linux kernel wiki for complete instructions including troubleshooting.
util-linux 2.23 offers blkdiscard
which discards data without secure-wiping them. I tested: works over SATA and mmcblk but not USB.
An excerpt from the manual page of blkdiscard(8)
:
NAME
blkdiscard - discard sectors on a device
SYNOPSIS
blkdiscard [-o offset] [-l length] [-s] [-v] device
DESCRIPTION
blkdiscard is used to discard device sectors. This is useful for solid-state drivers (SSDs) and thinly-provisioned storage. Unlike fstrim(8) this command is used directly on the block device.
By default, blkdiscard will discard all blocks on the device. Options may be used to modify this behavior based on range or size, as explained below.
The device argument is the pathname of the block device.
WARNING: All data in the discarded region on the device will be lost!
The command is there since Ubuntu 15.04 and OpenSUSE 13.1 (yes OpenSUSE has it 2 years ahead of Ubuntu).
If you don't need a secure wipe, why don't you just install kubuntu using the options to 'use entire disk' and the equivalent of 'quick format' (can't remember the exact terminology right now)
That way you ditch the file allocation table and the drive is effectively emptied for overwriting. You don't actually need to empty it.