Is an HDD overwritten with zeroes faster?

Hard drives do not store the literal zeroes and ones that I suspect that you think they do. Instead, they store the data in an encoded format that guarantees that there won't be too many zero bits or one bits next to each other. A long run of zeroes or ones could actually cause synchronization issues when trying to read the data because of minuscule variations in platter speed, vibrations, etc of the physical medium on which the data is encoded to, so it's limited to a certain tolerance.

In addition, hard drives always encode an entire sector (typically 512 bytes or 4096 bytes of data) at once, not just the bits that have changed (again, because it's encoded data). This ensures that the entire sector is correctly encoded every time. So, filling the drive with all zeroes has no practical benefit, although it doesn't harm anything either, other than the minor mechanical wear caused by doing so. You can choose to overwrite everything with zeroes if you want to, but it will have no performance benefit, and you'll simply waste your time waiting for all those zeroes to be written.

Solid state drives go through a similar process; they automatically erase the previous contents of a block before writing a new block of data, so writing all zeroes to a SSD would cause unnecessary wear on the device, as flash technology can only be erased a variable, but finite, number of times before failure. The wear introduced would only be something like 0.01% of the total duty cycles, but it's something that you would want to avoid doing on a regular basis.


No, it will not be faster. Writing takes the same amount of time regardless of the data being overwritten.


This depends on:

  • Whether it's a mechanical HDD or an SSD.

For an SSD, as other answers note, you should not overwrite with zeroes (which would impose unnecessary wear on the Flash cells), but instead use either a Secure Erase or a full-disk TRIM. Some of the more recent versions of formatting utilities will do a TRIM automatically if they detect an SSD. The reason for this is that SSDs make a strong distinction between an "empty" sector and one "filled" with any data, including zeroes.

  • Whether there are unreadable sectors on the drive.

Many drives will develop a small number of "bad spots" if used hard for several years. Any that have already been encountered will show up in SMART data as "Pending Uncorrectable".

If there are no unreadable sectors, a mechanical HDD does not benefit from being overwritten, though it also does no harm aside from consuming a lot of time up-front.

If there are some unreadable sectors, attempts to read them will take a long time, and the drive will keep trying to recover the data in spare moments, which will affect performance. Overwriting them will prompt the HDD to discard the existing data, test whether the physical location can still be used for storage, and allocate a spare sector otherwise. This will also reset the "Pending Uncorrectable" counter.

TL;DR - Generally, don't do it.


No, overwriting with zeros will make no difference in speed for a hard drive. However, for a solid state drive, overwriting with zeros is worse than doing a trim operation, which marks the blocks as unused. TRIMing the partition or the whole drive for an SSD before installing the OS may result in performance and lifetime benefits for the SSD. If you've already installed the OS, there are techniques to trim the free space in the filesystem for a similar benefit.