I would suggest booting from a Linux USB key that gives read/write access to the drive that you wish to zero and using a python script, (most Linux installations include python), to do something like:
import os
def DoIt(drive_path):
""" Fill a drive with zeros then delete them """
info = os.statvfs(drive_path) # Get a the file system info. NOT AVAILABLE ON WINDOWS!
zerodir = os.path.join(drive_path, 'ZerosDir') # Create a directory name
os.makedirs(zerodir) # And the directory
filename_pattern = os.path.join(zerodir, 'Z%07d.000') # File name pattern
bsize = max(info.f_bsize, info.f_frsize) # Decide the block size
zeros = "\x00" * bsize # Create a block of zeros that size
try: # We don't wish to abort the whole script on an error
for n in xrange(info.f_files): # For the max number of files allowed
with open(filename_pattern % n, 'wb') as zf: # Open a file
zf.write(zeros) # write the file
zf.flush() # Make sure it is written
os.fsync(zf) # REALLY Sure
except IOError, e:
pass # Carry on to the end of the script even if there is a problem
print 'Finished Creating Files'
for n in xrange(info.f_files): # For the max number of files allowed
try: # Don't wish to abort even if there is a file we can't delete
os.os.remove(filename_pattern % n) # Remove the file
except OSError, e: # In case of problems
print e # Print the problem but carry on
os.rmdir(zerodir)
print 'Done!'
if __name__ == "__main__":
import sys
if len(sys.argv) < 2:
print "Please supply the path(s) to the drive(s) to fill with zeros"
for arg in sys.argv[1:]:
DoIt(arg)
Important Note
The above is 100% untested Use at your own risk