Char said:
A simple format provides only a trivial amount of security. Lots of
utilities will offer to unformat a formatted drive. As for taking a
lot of work to deter a knowledgeable person, that's clearly not the
case. Lots of utilities will securely erase a drive, as reported
earlier in this thread. The biggest investment is the amount of time
it takes to wipe a drive, but since these are smaller drives, even
that isn't an obstacle.
But that is the beauty of this program, for the job.
http://cmrr.ucsd.edu/people/Hughes/SecureErase.shtml
It sets a bit internally on the hard drive, scheduling it
for erasure. The drive will not respond to user input,
until the scheduled erasure is complete. You can set the
bit, then turn off the drive (no time wasted on you bench).
It arrives at the Goodwill. The staff provide power to
the drive, and two hours later, it is ready for business.
By using the built-in secure erase function in the IDE
command set, you can actually defer the erasure execution
time, until the recipient of the drive gets it.
Of course, a complexity of this, is the need to label the
drive with a Post-It note, stating the drive light will be
on solid for the next two hours, when the recipient gets it.
And what is going on, should be explained. Otherwise, the
recipient could well throw the drive in the garbage, on the
assumption it is malfunctioning. When in fact, it is simply
trying to complete a previously issued command. Once the
bit is set, the drive won't stop trying to finish erasing
the drive, until it is done. You can turn off the power to
the drive many times, and the drive keeps track of progress,
and knows what track to do next, the next time it receives power.
By comparison, using DBAN, you pay that "wait time" up front,
as with DBAN it is being erased on your premises. I expect
most people would be curious, whether their erasure attempts
are working, and would want to verify the drive later. And then
the Secure Erase function still means bench time.
For the simplest form of erasure (not mandated by government
standards say), I'd probably just use "dd". This would be
single pass, with zero fill.
dd if=/dev/zero of=\\?\Device\Harddisk1\Partition0 bs=258048 count=969042
That would erase my second hard drive, which has a size of
250,059,350,016 bytes. It would do the erasure, at around
60MB/sec. The nice thing about a simple command like that,
is zeros are used (no fancy PRBS), so you can read back the
drive later if you want, and verify it is empty.
Doing something like this, as a second command, and arithmetically
summing all the bytes, should yield zero as an answer.
(This is not the best way to do it, as the standard "sum"
command throws out the overflow, and only uses a relatively
small register to hold the sum. You'd really want a program
with extended precision arithmetic, which would be guaranteed to
sum all bytes no matter what they contained.)
dd if=\\?\Device\Harddisk1\Partition0 bs=258048 count=969042 | sum
That assumes you have a port of the "sum" program for Windows,
available in the current working directory, so the piped bytes
all get summed. It's possible something like GNU Coreutils
will give you a copy, if Windows doesn't have one.
Using the second command, would be for those people who don't
own a "disk editor" program, which can seek to any location
you might want, and verify a sector there is completely zeroed.
Of all the lunacy above, DBAN is still your best bet, in terms
of easy to understand instructions. And the ability to erase
drives in parallel is a plus as well.
Now, a better question to ask, would be, what happens if the
disk has a few bad spots (reports a CRC error on write) ? That
makes erasure more of a challenge. Then I'd want to read the
appropriate T13 standards document, to see if Secure Erase
handles that case. Any of the methods already discussed, might
not work very well, if the drive is sick.
Paul