Take the 2-minute tour ×

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?

share|improve this question
Also, have a look at this EFF page for a comprehensive explanation covering multiple OS's. –  Tom Brossman Apr 5 '12 at 11:13
@Lekensteyn 'Remove the keyslots'? Just searched AU and got nothing but this partially related Q&A. Should I ask this as a new question or is it covered here? –  Tom Brossman Apr 5 '12 at 17:33
If you've a secure passphrase, the world is not lost when you lose your drive. However, it's recommended to clear the keyslots as described in 5.3 of code.google.com/p/cryptsetup/wiki/…. Go ahead and ask about erasing encrypted disks. –  Lekensteyn Apr 5 '12 at 17:38

10 Answers 10

up vote 46 down vote accepted

Securely erasing a storage device

There's a command-line utility in Ubuntu called shred, which overwrites data in a file or on a device with random bits and bytes, 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, as that's a partition on that device). You can use sudo fdisk -l to list all connected storage devices, and try to find your external hard drive there. Make sure that this is the correct device, as picking the wrong device will erase data on that device instead. Make sure to unmount all currently mounted partitions on that device, if any.

Then type:

sudo shred -v /dev/sdb

(replacing /dev/sdb with the name of your device). shred would then overwrite all the data on the device with random data three times. You can add the option -nN 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:

sudo apt-get install gparted
gksu gparted

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.


  • Read the manpage for shred here or by typing man shred in the terminal.
share|improve this answer
Best practice here: disconnect all of your hard drives, plug in the external drive and then do the above off of a live CD to prevent even the possibility of fragging anything that matters. –  Nick Pascucci Dec 15 '10 at 23:09
Just a question: You wrote "shred would then overwrite all the data on the device with random data three times." - does it do anything for empty space? Btw, Ubuntu has it own manpage repository at manpages.ubuntu.com –  papukaija Feb 20 '11 at 22:04
@papukaija It should. –  hexafraction Oct 2 '12 at 16:52
Note that this answer has been deprecated by the SECURE ERASE method of requesting the drive to erase itself. This should take care of all possible data, and won't unnecessarily tax your system. You can perform a secure erase, where the drive erases itself, using the hdparm utility. This method tries to erase the entire drive, including bad sectors. Furthermore it is much faster than overwriting the normal way. It is also the recommended methods for SSD drives, where shred is an extremely bad idea. –  Maarten Bodewes - owlstead Mar 23 '13 at 23:24
according to manual: shred - overwrite a file to hide its contents, and optionally delete it –  Bujanca Mihai Jun 16 '13 at 15:48

Just 'zero' it using the dd tool:

  1. Start the Disk Utility via System > Administration > Disk Utility
  2. Find your disk in the left panel, select it, and on the right find the device path (eg. /dev/sdb )
  3. Run the following command from a gnome-terminal (Applications > Accessories > Terminal):


    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

share|improve this answer
+1 for Bruce Schneier (and DD which really is an excellent tool) –  n3rd Aug 1 '11 at 12:22
Not saying this is the strongest "proof" but the Gutmann method exists for a reason. As far as I know, modern hard drives are still theoretically susceptible to having their data recovered if it's been overwritten by zeros. Whether or not that still holds, hopefully you can admit it's not going to hurt by overwriting using /dev/random or a specific algorithm for that purpose. –  Cerin Feb 12 '12 at 14:21
No, it won't hurt, it just will take a lot of time (especially if you use /dev/random :P) with questionable benefit. The last paper on that topic I read (sorry, no details, I think it was from 2008) suggested - based on data from tests with real hardware - that the chance to recover a single bit is <50% → means you get a lower error rate when "recovering" each bit using a coin toss. So, unless there's proof that zero-ing isn't enough (it's no "maybe" right now, rather a "no friggin' way"), this is the method of choice for me. –  htorque Feb 13 '12 at 5:37
Wouldn't /dev/urandom be faster than /dev/random, anyway? –  Tom May 3 '12 at 18:10
@Cerin My understanding is that there has never been any proof that these paranoid data recovery fantasies are even possible. As pointed out in the "Criticism" section of the article you linked, Guttman himself is critical of how his algorithm has been used "more as a kind of voodoo incantation to banish evil spirits than the result of a technical analysis of drive encoding techniques". The only reasons to do more than zero-wipe a drive are emotional ... i.e. it makes you feel better ... not technical. –  irrational John May 3 '12 at 18:22

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:

  • Very old hard drives: there were gaps between tracks so you could potentially pick up bleed into these gaps (if you had a scanning electron microscope handy). Overwriting multiple times was potentially useful.
  • New hard drives: no technology currently exists that can read after even one overwrite.
  • Solid state hard drives: wear levelling means you cannot overwrite securely. Instead you either encrypt the entire volume and dispose of the key to wipe, or you destroy the device.
share|improve this answer
  • You need to create a loopback device which runs /dev/random over the entire contents of the drive.
  • 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/urandom of=/dev/hdX

  • How ever it will take a very long time based on your harddisk size.

For your information:

See the following links,


  • Random uses random bits and zero uses 0 bits.
  • Urandom is a semi-random version of random.
share|improve this answer

you can use wipe


sudo apt-get install wipe

You can use that software or use the following command:

shred -vfz -n ? (drive)

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.


  1. http://wipe.sourceforge.net/
  2. http://www.howtogeek.com/howto/15037/use-an-ubuntu-live-cd-to-securely-wipe-your-pcs-hard-drive/
  3. http://ubuntuforums.org/showthread.php?t=817882
share|improve this answer
Why use one over the other, wipe vs shred? –  Mads Skjern Oct 24 at 16:33

You can use DBAN. Wikipedia:

Darik's Boot and Nuke (commonly known as DBAN) [...] is designed to securely erase a hard disk until data is permanently removed and no longer recoverable, which is achieved by overwriting the data with random numbers generated by Mersenne twister or ISAAC (a PRNG). The Gutmann method, Quick Erase, DoD Short (3 passes), and DOD 5220.22-M (7 passes) are also included as options to handle Data remanence.

DBAN can be booted from a floppy disk, CD, DVD, or USB flash drive and it is based on Linux. It supports PATA (IDE), SCSI and SATA hard drives. DBAN can be configured to automatically wipe every hard disk that it sees on a system, making it very useful for unattended data destruction scenarios. DBAN exists for Intel x86 and PowerPC systems.

DBAN, like other methods of data erasure, is suitable for use prior to computer recycling for personal or commercial situations, such as donating or selling a computer[2]. In the case of malware infection, DBAN can be used before returning a disk to production.

share|improve this answer

I generally use a destructive read-write test using badblocks -w. The two major advantages are

  • it's part of the base system and almost every rescue system, so it is available e.g. from the rescue shell of the Ubuntu installer
  • you get a report at the end whether there are bad blocks on the disk

Note that if the report indicates a problem, I'd no longer sell the disk as it is likely to fail soon.

share|improve this answer

Those recommending to use shred are giving bad advice. Shred's own man page says it's effectively useless on journaled filesystems, which Ubuntu is almost guaranteed to be using if you don't change its filesystem defaults (ext3 and ext4 are journaled. As is resierfs and Reiser4 as well as many MANY other common Linux filesystems.).

Not to mention shred is completely useless for completely blanking or randomizing a disk, as it only works on individual files or sets of files (On the filesystem level, not a raw data level.). If you want to securely wipe a disk, you gotta use dd on the drive's main device node (For example: /dev/sdc instead of /dev/sdc1) while nothing is mounted on it.

It WILL take a while, but unlike shred it will completely and IRREVERSIBLY wipe a hard disk from MBR to final sector. Also, BIG WARNING on dd, make sure you are using it on the correct device or you'll at least PARTIALLY wipe the wrong disk. This could be disastrous if you accidentally use dd on a system drive, which will not only make it unbootable, but may irreversibly corrupt any given partition on the drive. This has given it the nickname "disk destroyer."

Shred is NOT a reliable tool for securely wiping a drive. If you're selling or giving your computer away the CORRECT way to empty the drive is to zero or randomize it with dd and never, ever use shred, as filesystem journals will effectively restore shredded files with no effort at all.

share|improve this answer
You don't point shred at a file. You point it at the entire device. The filesystem is irrelevant. –  David Given Jan 29 at 14:42

Go root and

dd if=/dev/random of=/dev/(your usb drive device here); dd if=/dev/zero of=/dev/(your usb drive device here)

Be certain you've got the right drive!

share|improve this answer
Never use /dev/random for such operations. /dev/random generates random data using an entropy pool and blocks the operation if this entropy pool is empty. So if you don't do anything with your computer to generate new randomness, the operation will take forever. Use /dev/urandom instead. Also see man random –  htorque Dec 15 '10 at 22:06
You probably would need to prefix the command with sudo. Also, dd tends to complete sooner when a block size larger than the default is used. So I would suggest very carefully using: sudo dd if=/dev/random bs=1m of=/dev/sdX –  irrational John May 3 '12 at 18:07
ah, meant that to be sudo dd if=/dev/urandom bs=1m of=/dev/sdX Oh, well. –  irrational John May 3 '12 at 18:29

DBAN is an open source Boot CD to wipe the hard disk.

Down load from


burn it and boot the machine from CD, that's all.

share|improve this answer

Your Answer


