zerofree - Man Page

zero free blocks from ext2/3 file-systems


zerofree [-n]  [-v]  filesystem


zerofree finds the unallocated,  non-zeroed blocks in an ext2 or ext3  filesystem (e.g. /dev/hda1) and  fills them with zeroes. This is useful if the device on which  this file-system resides is a disk image. In this case,  depending on the type of disk image, a secondary utility may be  able to reduce the size of the disk image after zerofree has  been run.

The usual way to achieve the same result (zeroing the  unallocated blocks) is to run dd (1) to  create a file full of zeroes that takes up the entire free  space on the drive, and then delete this file. This has many  disadvantages, which zerofree alleviates:


it is slow;


it makes the disk image (temporarily) grow to its maximal  extent;


it (temporarily) uses all free space on the disk, so other  concurrent write actions may fail.

filesystem has to be unmounted or  mounted read-only for zerofree to work. It  will exit with an error message if the  filesystem is mounted writable. To  remount the root file-system readonly, you can first switch to  single user runlevel (telinit 1) then use  mount -o remount,ro  filesystem.

zerofree has been written to be  run from GNU/Linux systems installed as guest OSes inside a  virtual machine. It may however be useful in other  situations.



Perform a dry run  (do not modify the file-system);


Be verbose.

See Also

dd (1).


This manual page was written by Thibaut Paumard <> for  the Debian system (but may be used by others).  Permission is  granted to copy, distribute and/or modify this document under  the terms of the GNU General Public License, Version 2 or any   later version published by the Free Software Foundation.

On Debian systems, the complete text of the GNU General Public  License can be found in /usr/share/common-licenses/GPL-2.