Contents:
WipeFreeSpace is a program which will securely wipe (clean, shred, fill, overwrite) the free space on the following filesystem types:
located in a file, on a partition or drive, just like the
shred
program securely wipes files.
This allows protecting the user's privacy when e.g. selling the drive or the whole computer.
Normally, when you delete a file, only the information about where the file was is
deleted, the file contents stays on the drive. If there's no writing to that
area, the file can physically stay on the drive for a long time. The file contents
can be found by e.g. dumping the whole drive with the dd
program to a file
and looking at the generated image. This may seem not so dangerous, but if you
delete confidential information (files with passwords, credit card numbers,
encryption keys), any person with physical access to the drive can read that
information and use it against you.
Sometimes you may delete confidential data the normal way by accident (or have
no other choice, because programs like Internet browsers, mail clients, chat clients
delete data the normal way). In such case normally you would have to shred the
whole partition, which may be a big problem. This is where WipeFreeSpace comes in.
This program works in a similar way to the shred
program, but instead
of shredding regular files, it overwrites (just like shred
) the free
space on a partition, without doing any harm to existing files.
WipeFreeSpace wipes the following things (when supported by the backing library):
WipeFreeSpace does NOT decrease the amount of available free space when working.
The most up-to-date documentation can be found in the package itself, a generated copy is available here, in the docs directory.
Documentation is also available on the WipeFreeSpace wiki.
Currently, WipeFreeSpace does the following actions on supported filesystems (note that "free space in partially used blocks" is sometimes called "slack space"):
NOTE: the original tffs library does its own data flushing (in the HAI_writesector() function), so even when WipeFreeSpace is told to perform just one wiping iteration (which uses the system/drive cache on other filesystems and doesn't flush the data immediately), the data is flushed after each sector, which makes FAT12/16/32 wiping really slow.
NOTE: filesystems with object names of length 64 or more may cause problems with traversal and thus may not be fully wiped (if a file can't be opened, its last block can't be wiped, if a directory can't be opened, objects inside it can't be wiped).
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 has been added to Softpedia Linux.
WipeFreeSpace has been added to
GearDownload.com
and has been certified 100% FREE
Visit GearDownload.com
WipeFreeSpace has been added to GraphicsFamily.com and has received the "Best Software Award"
THE PROGRAM HAS BEEN TESTED, BUT IT MAY NOW OR LATER CONTAIN ERRORS, WHICH MAY LEAD TO DATA LOSS. ALWAYS BACKUP YOUR DATA BEFORE USING THIS PROGRAM. READ THE LICENSE FOR A WARRANTY (THERE IS NONE).
WipeFreeSpace also has a new GUI written in Java, available for download together with the program itself, at SourceForge WipeFreeSpaceGUI2 downloads.
Screenshots are available on the SourceForge project page.
Current version is 2.6.
Current GUI version is 1.0.
Download these at SourceForge.
(free badge provided by Shields.io)
WipeFreeSpace release file feed
RPM dependencies:
The most up-to-date instructions can be found in the package itself, a generated copy is available here, in the docs directory.
Requirements for compiling the full version:
make
program-i
, -c
and the
following interactive mode commands: quit
, freesp -d
,
blockget -n
, ncheck
, sb 0
, print
.
Version 2.7.11 is enough, earlier versions will probably also work.*.a
libraries from the package). ReiserFS requires the fork() function (unistd.h) and one of
the waitpid(), wait() functions (sys/wait.h), the mntent.h header file (with at
least one of its functions - getmntent() or getmntent_r()).
patch -F10 -p1 < /path/to/wipefreespace-XX/patches/reiser-3.6.XX-compile-fix.diffSee below for other patches that may be necessary.
cp libmisc/.libs/libmisc.a /usr/lib/libreiser4misc.aLibmisc.a is in reiser4progs, of course. Nobody thought it would be needed, but libreiser4.a is useless without it. Substitute the correct destination path for your system in the above command.
*.h
(including the private ones, from the src directory).patch -F10 -p0 < /path/to/wipefreespace-XX/patches/tffs-speed.diffIf you experience crashes (especially on x64), you may try to apply more patches:
patch -F10 -p0 < /path/to/wipefreespace-XX/patches/tffs-free-fix.diff
patch -F10 -p0 < /path/to/wipefreespace-XX/patches/tffs-overflow-fix.diff
patch -F10 -p0 < /path/to/wipefreespace-XX/patches/tffs-fat-eof-fix.diff
patch -F10 -p0 < /path/to/wipefreespace-XX/patches/tffs-dir-fix.diff
sed -i 's/opt_squash/0/g' `ls *.c | egrep -v main`then compile the program (
./configure && make
), then perform
ar surf libminixfs.a `ls *.o | egrep -v main`Then copy the files
libminixfs.a
, minix_fs.h
and protos.h
to a directory
where the C compiler can find them (or put the correct -I
and -L
options
in the compiler flags). You can use the provided patches to do this
instead of the sed
command:
patch -F10 -p1 < /path/to/wipefreespace-XX/patches/mfstool-0.5.diff
jfs_*.h
header files from the
"include" subdirectory and the libfs.a
file to a directory where the
C compiler can find them (or put the correct -I
and -L
options in the
compiler flags).patch -F10 -p1 < /path/to/wipefreespace-XX/patches/jfsutils-1.1.11-compile-fix.diff
patch -F10 -p1 < /path/to/wipefreespace-XX/patches/hfsplus-1.0.4.diffAfter compiling, install all the libraries and ALL the
*.h
header files
from the libhfsp/src/ directory where the C compiler can find them (or
put the correct -I
and -L
options in the compiler flags).patch -F10 -p1 < /path/to/wipefreespace-XX/patches/ocfs2-tools-1.6.4-compile-fix.diff
WARNING: If both ReiserFSv3 and ReiserFSv4 are enabled, the program may refuse to link if the compiler doesn't support the command line option "-Wl,-z -Wl,muldefs" that makes the linker accept multiple symbol definitions. If you have this problem, disable the support for either of these filesystems (you can compile two versions of the program). Don't complain to me, complain to the guys that made reiserfsprogs and reiser4progs. You can fix either of these libraries yourself, by running
find . -type f -exec sed -i 's/misc_mntent/new_misc_mntent/g' '{}' \;
in the root directory of either reiserfsprogs or reiser4progs (but NOT both, because this would bring back the same problem, but with a different name). Type the command as above. The command must be run BEFORE compiling the reiserfs programs. You can use the provided patches to do this:
patch -F10 -p1 < /path/to/wipefreespace-XX/patches/reiser-3.6.XX.diff
patch -F10 -p1 < /path/to/wipefreespace-XX/patches/reiser4-1.0.7.diff
WARNING: If both ReiserFSv3 and MinixFS are enabled, the program may refuse to link if the compiler doesn't support the command line option "-Wl,-z -Wl,muldefs" that makes the linker accept multiple symbol definitions. If you have this problem, disable the support for either of these filesystems (you can compile two versions of the program). You can fix either of these libraries yourself, by running
find . -type f -exec sed -i 's/die/new_die/g' '{}' \;
in the root directory of either reiserfsprogs or mfstool (but NOT both, because this would bring back the same problem, but with a different name). Type the command as above. The command must be run BEFORE compiling reiserfs/mfstool. You can use the provided patches to do this:
patch -F10 -p1 < /path/to/wipefreespace-XX/patches/mfstool-0.5.diff
patch -F10 -p1 < /path/to/wipefreespace-XX/patches/reiser-3.6.XX.diff
WARNING: If both ReiserFSv3 and JFS are enabled, you MUST either disable the support for either of these filesystems (you can compile two versions of the program) or fix either of these libraries yourself, by running
find . -type f -exec sed -i 's/bread/reiser3_new_bread/g' '{}' \;
in the root directory of either reiserfsprogs or jfsutils (but NOT both, because this would bring back the same problem, but with a different name). Type the command as above. The command must be run BEFORE compiling reiserfs/jfsutils. You can use the provided patches to do this:
patch -F10 -p1 < /path/to/wipefreespace-XX/patches/reiser-3.6.XX.diff
Even if your linker/compiler accepts the "-Wl,-z -Wl,muldefs" option, it won't help in this case.
The patches for ntfsprogs are optional. Whether or not they will be included in the official release of ntfsprogs, WipeFreeSpace still will compile.
Type ./configure
to configure the program for your system. If you do not
wish support for a filesystem, give the --enable-FS=no
option to ./configure
(FS=EXT234, NTFS, XFS, REISERFS, REISER4, FAT, MINIX, JFS, HFSP, OCFS).
Run ./configure --help
for details.
Type make
to compile the program.
Documentation will be compiled, if you have the makeinfo
program
(texinfo
package).
Translations will be compiled, if you have the gettext
package.
Type make install
to install the program.
NOTE: make install
is NOT recommended. Create and
install an rpm package instead, if possible.
Type info wipefreespace
(after installation) or info doc/wipefreespace.info
(before installation) to get help.
WipeFreeSpace, in various versions and configurations, has been successfully compiled on the following systems:
Additionally, WipeFreeSpace, in various versions, has been packaged in the following
repositories or operating systems (information provided for free by
Repology):
WipeFreeSpaceGUI2 should compile and run on any system with Java installed.
Any defects or issues can be reported by e-mail or in the SourceForge project defect manager (in English).
Any improvement suggestions can be reported by e-mail or in the SourceForge project ticket manager (in English).
To report build or installation problems, include:
gcc
version 10),glibc
version 2.x),configure
script. You can capture it by running
./configure > configure-output.txt 2>&1
,config.log
file,config.h
file, if it exists,make
command. You can capture it by running
make > make-output.txt 2>&1
,To report usage problems, include:
Help in victory, play a game, send regards, or at least stop using some products
shred
,shred
(the filesystem itself is destroyed too)h2fasm
, h2gas
, h2nasm
),make4fasm
),symvers-nasm
, symvers-fasm
),ax_prog_nasm.m4
, ax_prog_nasm_opt.m4
,
ax_prog_fasm.m4
, ax_prog_fasm_opt.m4
,
ax_prog_yasm.m4
, ax_prog_yasm_opt.m4
,
ax_prog_tasm.m4
, ax_prog_tasm_opt.m4
,
ax_prog_masm.m4
, ax_prog_masm_opt.m4
,
ax_prog_hla.m4
, ax_prog_hla_opt.m4
),The always-up-to-date list of my SourceForge projects is on my profile page on SourceForge.
Last-Modified
HTTP header Contact me: bogdro AT users . sourceforge . net (English accepted, just say '[SOFT]' in the title).
bogdro
aliases
The public certificate for the e-mail:
crt format,
cer format,
pem format,
p7b format,
p7c format
Certificate's RIPEMD160 fingerprint: 99:4E:9C:0F:D9:1B:F8:D2:F2:AE:E5:18:9F:3B:5C:61:E6:6C:B4:A8
Certificate's SHA256 fingerprint: 26:22:FE:0F:D7:3A:DE:0A:60:4A:99:29:CB:66:3D:DF:10:45:8B:B6:EC:3E:04:31:DA:67:A5:6E:C4:70:30:B9
The public certificate for bogdro-soft
:
crt format,
cer format,
pem format,
p7b format,
p7c format
Certificate's RIPEMD160 fingerprint: 01:A7:57:30:52:EB:F6:58:70:AC:EF:DF:C9:74:50:B1:B3:40:BD:47
Certificate's SHA256 fingerprint: D2:B3:73:22:C0:10:DB:62:3F:DB:1D:FC:EC:44:5C:48:21:0C:C5:9B:E1:7D:E3:63:26:CB:3A:B5:94:45:8C:A5
The public certificate for bogdro-perl
:
crt format,
cer format,
pem format,
p7b format,
p7c format
Certificate's RIPEMD160 fingerprint: BF:66:A2:24:6C:87:55:53:90:2C:2B:A5:62:26:D8:11:93:AC:41:98
Certificate's SHA256 fingerprint: 45:C6:17:13:CD:19:FF:39:6C:8D:EC:02:86:5E:E5:90:B5:0B:B6:3F:86:68:E2:7F:60:B7:19:FF:7D:B4:0D:24
Issuer's certificate: der format
Issuer's certificate's RIPEMD160 fingerprint: D8:F4:50:F0:8F:79:25:CC:65:20:C9:8D:70:1F:63:14:22:B0:12:24
Issuer's certificate's SHA256 fingerprint: 5E:B4:48:78:F7:58:C6:94:D9:C8:04:B2:42:63:24:9F:5F:03:D0:22:E1:C6:55:18:3E:21:D8:4B:F0:7E:7F:11
The public GnuPG /
PGP keys:
Bogdro-sf e-mail, asc format,
key number 476249B50EE1F2E59C4005AF67FFC0790E2D6D3C
.
A verified version is available at PGP® Global Directory entry for bogdro-sf
Bogdro-soft, asc format,
key number 7E05C1468119E8C32B69F72E11B90C14CAE8F72A
.
A verified version is available at PGP® Global Directory entry for bogdro-soft
Bogdro-perl, asc format,
key number A17EBF519B8D55F43472997BFCDBA236678656EA
.
A verified version is available at PGP® Global Directory entry for bogdro-perl
PGP® and Pretty Good Privacy® are registered trademarks of Symantec Corporation in the United States and other countries.
The certificate of the timestamping server which confirms the signature time, can be found on freeTSA.org.
This page is hosted at SourceForge.net.
This page is written using valid
HTML 4.01
,
, for all browsers:
This page has a content security policy.
This page doesn't use GIF images and doesn't use JPG images.
This page is pure HTML and CSS.
The project icon was created using Inkscape™.
Oracle®, Java, and MySQL are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
LINUX® is a registered trademark of Linus Torvalds.
"Fedora" and the Fedora logo are trademarks of Red Hat, Inc.
Debian is a registered trademark of Software in the Public Interest, Inc.
The Arch Linux name and logo are recognized trademarks.
CentOS is a trademark of Red Hat, Inc.
FreeBSD is a registered trademark of The FreeBSD Foundation.
Ubuntu is a registered trademark of Canonical Limited.
macOS® is a registered trademark of Apple Inc.
All other trademarks, logos and names on this page and all subpages are properties of their respective owners and are given here only as an example.