aboutsummaryrefslogtreecommitdiff
path: root/system/zerofree/zerofree.8
blob: fb6f277e7bd5050bdbff667e1dd013cbae86970a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
.TH "ZEROFREE" "8" 
.SH "NAME" 
zerofree \(em zero free blocks from ext2, ext3 and ext4 file-systems 
.SH "SYNOPSIS" 
.PP 
\fBzerofree\fR [\fB-n\fP]  [\fB-v\fP]  [\fB-f fillval\fP]  \fIfilesystem\fR 
.SH "DESCRIPTION" 
.PP 
\fBzerofree\fR finds the unallocated, 
blocks with non-zero value content in an ext2, ext3 or ext4 
\fIfilesystem\fR (e.g. /dev/hda1) and 
fills them with zeroes (or another octet of your choice). 
 
 
.PP 
Filling unused areas with zeroes 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.  
 
.PP 
Filling unused areas may also be useful with solid-state 
drives (SSDs). On some SSDs, filling blocks with ones (0xFF) 
is reported to trigger Flash block erasure by the firmware, 
possibly giving a write performance increase.  
 
.PP 
The usual way to achieve the same result (zeroing the 
unallocated blocks) is to run \fBdd\fR (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:      
.IP "   \(bu" 6 
it is slow; 
.IP "   \(bu" 6 
it makes the disk image (temporarily) grow to its maximal 
extent; 
.IP "   \(bu" 6 
it (temporarily) uses all free space on the disk, so other 
concurrent write actions may fail.  
 
.PP 
\fIfilesystem\fR has to be unmounted or 
mounted read-only for \fBzerofree\fR to work. It 
will exit with an error message if the 
\fIfilesystem\fR is mounted writable. To 
remount the root file-system readonly, you can first switch to 
single user runlevel (\fBtelinit 1\fR) then use 
\fBmount \-o remount,ro 
\fIfilesystem\fR\fR.  
 
.PP 
\fBzerofree\fR has been written to be run 
from GNU/Linux systems installed as guest OSes inside a virtual 
machine. In this case, it is typically run from within the guest 
system, and a utility is then run from the host system to shrink 
disk image (\fBVBoxManage modifyhd \-\-compact\fR, 
provided with virtualbox, is able to do that for some disk image 
formats).  
 
.PP 
It may however be useful in other situations: for instance 
it can be used to make it more difficult to retrieve deleted 
data. Beware that securely deleting sensitive data is not in 
general an easy task and usually requires writing several times 
on the deleted blocks.  
 
.SH "OPTIONS" 
.IP "\fB-n\fP         " 10 
Perform a dry run  (do not modify the file-system); 
.IP "\fB-v\fP         " 10 
Be verbose; 
.IP "\fB-f value\fP         " 10 
Specify the octet value to fill empty blocks with (defaults to 
0). Argument must be within the range 0 to 255. 
.SH "SEE ALSO" 
.PP 
dd (1). 
.SH "AUTHOR" 
.PP 
This manual page was written by Thibaut Paumard <paumard@users.sourceforge.net> for 
the \fBDebian\fP 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. 
 
.PP 
On Debian systems, the complete text of the GNU General Public 
License can be found in /usr/share/common-licenses/GPL-2. 
 
.\" created by instant / docbook-to-man, Mon 31 Mar 2014, 15:41