Menu

Features

Bogdan Drozdowski

Currently, WipeFreeSpace does the following actions on supported filesystems (note that "free space in partially used blocks" is sometimes called "slack space"):

  1. Ext2/3/4 (native, working libraries from e2fsprogs / libext2fs):
    • wiping the free space
    • wiping free space in partially used blocks (NOTE: may print errors on sparse files and other exotic objects)
    • wiping deleted files' data (part of free space or partially used blocks), wiping deleted files' names and setting deleted files' names' lengths once to zero wiping the journal
  2. NTFS (libntfs / ntfs-3g: not official - not written by the filesystem's creators, written without any specifications)
    • wiping the free space
    • wiping free space in partially used blocks (in files exceeding i-node size)
    • wiping deleted files' names, deleted files' names' lengths (wiping, not zeroing once), wiping deleted files' data (part of free space or partially used blocks)
    • wiping the journal
  3. XFS (only supported by executing xfs_db from xfsprogs, because I haven't found any usable development library):
    • wiping the free space
    • wiping deleted files' data (part of free space or partially used blocks)
    • wiping free space in partially used blocks
  4. ReiserFSv3 (using the library from reiserfsprogs, but that library is not a part of any official development package):
    • wiping the free space
    • wiping free space in partially used blocks, but only if the block has just 1 item
    • wiping deleted files' names
    • wiping deleted files' data (part of free space or partially used blocks)
    • wiping the journal
  5. ReiserFSv4 (using the library from reiser4progs-devel):
    • wiping the free space
    • wiping deleted files' data (part of free space)
    • wiping the journal
  6. FAT12/16/32 (using the library from tffs-lib):
    • wiping the free space
    • wiping free space in partially used blocks (NOTE: may crash on sparse files and other exotic objects)
    • wiping deleted files' names (at least the short ones)
    • wiping deleted files' data (part of free space or partially used blocks)
  7. MinixFS (using the mfstool program as a library):
    • wiping the free space
    • wiping free space in partially used blocks
    • wiping deleted files' names
    • wiping deleted files' data (part of free space or partially used blocks)
  8. JFS (using the library from jfsuitls):
    • wiping the free space
    • wiping the journal (log)
    • wiping deleted files' data (part of free space)
  9. HFS+ (using the library from hfsplus):
    • wiping the free space
    • wiping free space in partially used blocks
    • wiping deleted files' data (part of free space or partially used blocks)
  10. OCFS (using the library from ocfs2-tools):
    • wiping the free space
    • wiping free space in partially used blocks
    • wiping deleted files' names (if the library works)
    • wiping deleted files' data (part of free space or partially used blocks)
    • wiping the journal (log)

NOTE: WipeFreeSpace tries to wipe partially used blocks only in regular files on the filesystem. It may print errors (short reads) or crash on sparse files and other exotic objects. Printing an error is normal in such case. WipeFreeSpace may also print an error if there were no objects suitable for wiping - this also is a normal situation meant to inform the user.

WipeFreeSpace also works for file systems created inside regular files on any host file system.

The following method names (case-insensitive) are available:

  • Gutmann (method similar to Gutmann's, the default, 36 passes)
  • random (shred-like, 25 passes)
  • Schneier (Shneier's method, 7 passes, contains ITSG-06)
  • dod (DoD, 3 passes, contains NAVSO P-5239-26 and German Federal Office for Information Security)

WipeFreeSpace supports two wiping orders:

  • block - wipe block by block with all patterns and flush the overwriting data to disk after each pattern (so, each block waits to be wiped until the previous one is done),
  • pattern - wipe the whole filesystem with each pattern (all blocks with the first pattern, then all blocks with the second pattern, and so on), and flushing the overwriting data to disk after each pattern. This is the default.

Related

Wiki: Home

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.