I'm planning on selling a USB external hard drive that currently contains an old Ubuntu installation with stored passwords and banking information.
How can I securely erase the drive before selling it?
I'm planning on selling a USB external hard drive that currently contains an old Ubuntu installation with stored passwords and banking information.
How can I securely erase the drive before selling it?
Securely erasing a storage device
There's a command-line utility called
shred
, which overwrites data in a file or a whole device with random bits, making it nearly impossible to recover.First of all, you need to identify the name of the device.
This might be something like
/dev/sdb
or/dev/hdb
(but not like/dev/sdb1
, that's a partition). You can usesudo fdisk -l
to list all connected storage devices, and find your external hard drive there.N.B. Make sure it is the correct device, picking the wrong device will wipe it.
Unmount all currently mounted partitions on that device, if any. Then run the following, replacing
/dev/sdX
with the name of your device:This will overwrite all the blocks on the device with random data three times, the
-v
flag is for verbose and will print the current progress.You can add the option
-n
N
to only do this N times, to save time on large capacity devices. This might take a while, depending on the size of your external hard drive (I think it takes twenty minutes or so for my 4 GB flash drive).You can also set all bits to zero after the last iteration by adding the option
-z
, I prefer to do this.After this, you would have to repartition the device. The easiest way is to install GParted and use it:
Choose your device in the upper-right corner list. Then select
Device -> Create partition table
to create a partition table on the device.Then add a single partition that uses all of the unallocated space on the device, choosing
fat32
as the file system. Apply the changes by click the Apply button (the green checkmark) in the toolbar.Tips
shred
online or by typingman shred
in the terminal.Just 'zero' it using the
dd
tool:System > Administration > Disk Utility
/dev/sdX
)sudo dd if=/dev/zero of=/dev/sdX bs=1M
Make sure you use the right device path and not just copy this line!
This will overwrite the whole disk with zeros and is considerably faster than generating gigabytes of random data. Like all the other tools this won't take care of blocks that were mapped out for whatever reason (write errors, reserved, etc.), but it's highly unlikely your buyer will have the tools and the knowledge to recover anything from those blocks.
PS: Before you Bruce Schneier fanboys downvote me: I want proof that it's possible to recover data from a non-ancient rotational hard drive that has been overwritten with zeros. Don't even think about commenting otherwise! :P
I generally use a destructive read-write test using
badblocks -w
. The two major advantages are:Note that if the report indicates a problem, I'd no longer sell the disk as it is likely to fail soon.
Also Note: The
-w
does a 4-pass destructive write test by default.Usage example (if your disk is
sdd
):(added
sv
for progress bar + verbose)For a much faster wipe, add the
-t
option and do a single pass of zeros like so:Have a look at this definitive question on Security Stack Exchange
How can I reliably erase all information on a hard drive
This discusses various secure deletion options, along with physical destruction and wiping so you can decide which option may be your best bet.
Remember though that the current recovery status for different storage is as follows:
Now, Disks (
gnome-disks
) tool has ATA Secure Erase. You may use it to erase your hard drive. Same option explained in this answer using the command-line toolhdparm
.WARNING!
ATA Enhanced Secure Erase
( if offered for the drive you selected ). Alternatively you can selectWrite zeros (slow)
which can reasonably be considered to be secure.Best is to use the secure erase function of ATA drives. Secure erase erases the drive at firmware level. Can't get more secure.
First check if secure erase is supported:
(replace sdX with sda/sdb/sdc, whatever your disk is).
If you see no output, just use dd:
If you see output, check if the device is not frozen:
If it is frozen, see How to unfreeze drive in Linux? Otherwise if you see
not frozen
, set password to "Eins":Optional: you might want to know how how long this will take:
Then execute the erase:
Then wait. Apparently for a 1TB disk this might take 3 hours or more.
There's a nice script which automated these steps.
That'll fill the entire drive with almost completely random data.Then you can set all bits back to 0 with dd.
Actually, dd should be able to randomize all of the information.
You said that you have stored banking information on your harddisk.So i would suggest you to run any one of the following command from a live cd (where hdX is your harddrive).
dd if=/dev/zero of=/dev/hdX
dd if=/dev/random of=/dev/hdX
dd if=/dev/urandom of=/dev/hdX
For your information:
See the following links,
Note:
you can use wipe
Installation
You can use that software or use the following command:
Were the "?" is, put the number of times you wan to shred the drive, then for were "(drive)" is, put the drive that you want to shred. Once your done, do whatever you want with it. I think that this method is more effective since you can control what is done to your drive and have immediate results.
Links
You can use DBAN. Wikipedia:
One more advantage of shred over dd in this scenario: I have a faulty disk that I need to return to the vendor for an exchange.
dd halts at the first bad block, and fails to clobber the rest (unless I painfully use skip=... to jump ahead each time it stops).
shred ignores write errors and happily continues in this case.