Wiping HDD
I just sold my older notebook on Mercado Livre (amazing how it devalued from R$ 2700.00 to R$ 700.00 in just 3 years).
Something I consider important before selling a notebook is to delete all personal files, confidential files, saved passwords, and any other information that could harm you if it falls into the wrong hands. A good solution would be to format the disk, right? Wrong.
Unless the disk is encrypted, formatting is not enough. After a regular format, the blocks that
contained content are simply marked as available in the address table, meaning the data remains on
the disk and can be recovered using a specific tool, like extundelete
which I wrote about in
another article.
The most efficient way to completely clean the disk and make the data irrecoverable without causing
damage to the disk is the technique known as disk wiping
using a disk scrubbing
, which basically
overwrites the entire disk with zeros and/or ones.
The most traditional and simple method to perform disk scrubbing on Unix systems is to use dd
or
cat
.
-
Boot from a live disk
-
Optionally delete all partitions with gparted or fdisk
-
Check badblocks with badblocks or fsck:
badblocks -wvs /dev/sda fsck -f /dev/sda
I believe that using
-w
with badblocks is already sufficient to prevent data recovery from the disk, as it writes multiple times to all blocks on the disk. To make the program repeat the check multiple times, use the-p
option. The process takes a few hours, one way to speed it up is to increase the number of blocks tested at a time with the-c
option. -
Use one of the following methods, repeating as many times as necessary
2 times should be sufficient, unless the disk is being analyzed by very determined experts.
-
Method 1
Write zeros to the entire disk:
dd if=/dev/zero of=/dev/sda
-
Method 2
Write random zeros and ones (recommended):
dd if=/dev/urandom of=/dev/sda
-
Method 3
Same function as the previous commands, but using
cat
. Writes random bits twice and zeros the third time.cat /dev/urandom > /dev/sda; cat /dev/urandom > /dev/sda; cat /dev/zero > /dev/sda
On a 250GB HD, I ran it with some messages to have an idea of time, but even after 10h it didn’t finish on the first run:
echo "Inicio em `date`"; cat /dev/urandom > /dev/sda; echo "Escrita #1 finalizada em `date`"; cat /dev/urandom > /dev/sda; echo "Escrita #2 finalizada em `date`"; cat /dev/zero > /dev/sda; echo "Escrita #3 finalizada em `date`"
Therefore, I think it’s better to use a program that shows progress.
-
Method 4
Shred: Already installed on several distributions. Example of usage:
shred -n 3 -z -v /dev/sda
. -
Method 5
Download another program. There are several free software programs specifically for this purpose that write zeros and ones to the entire disk and automatically repeat the process several times.
In a quick search, I found the following programs:
Dban
,Autoclave
,Wipe
,KillDisk
.Apparently, the most commonly used for this purpose is
DBAN
, an 11MB boot disk that can be downloaded at http://www.dban.org/.The process is a bit time-consuming and depends on the HD, on average it should take around 2 minutes per GB.
-