An endless supply of 1's for securely overwriting and erasing a disk

I vaguely remember hearing about disk wiping, and that you have to flood the disk with zeros, flood it with ones, flood it with random data, and repeat this quite a few times. This is just a general question, as I am not going to have to wipe spy files or other top secret information off a disk. I figured I could use

dd if=/dev/zero of=/dev/diskname

dd if=/dev/urandom of=/dev/diskname

But then, I realized that there wasn't (as far as I know) a file for infinite ones. Two questions... Is there either an alternative or a solution, and would the ones be necessary?


The file for endless ones is located in /usr/bin/yes 1 - you can often use the backtick character ` to execute that program in place, but you could also set up a named pipe if you really wanted a place to get ones.

Rather than use dd - you might have much better luck with a tool designed specifically for the task.

  • https://github.com/rentzsch/stressdrive - source code to verify 100% overwrite
  • diskutil zeroDisk disk3
  • diskutil secureErase 4 disk3

The level for secureErase can be 0-4 according to the man page and your taste for the number and types of overwrites.


You can use Disk Utility to write random data 1, 3 or 7 times to the disk. Just click on the disk you want to wipe, then Security Options. You'll be prompted with a dialogue to select the amount of rewrites you want to use: enter image description here


Disk Utility has an option to securely erase a hard drive using a standardized algorithm. Just navigate to the Erase panel and look for the button "Security Options...".