xref: /netbsd-src/sbin/tunefs/tunefs.8 (revision 87d689fb734c654d2486f87f7be32f1b53ecdbec)
1.\"	$NetBSD: tunefs.8,v 1.44 2014/08/09 10:41:05 wiz Exp $
2.\"
3.\" Copyright (c) 1983, 1991, 1993
4.\"	The Regents of the University of California.  All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. Neither the name of the University nor the names of its contributors
15.\"    may be used to endorse or promote products derived from this software
16.\"    without specific prior written permission.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28.\" SUCH DAMAGE.
29.\"
30.\"     @(#)tunefs.8	8.3 (Berkeley) 5/3/95
31.\"
32.Dd August 9, 2014
33.Dt TUNEFS 8
34.Os
35.Sh NAME
36.Nm tunefs
37.Nd tune up an existing file system
38.Sh SYNOPSIS
39.Nm
40.Op Fl AFN
41.Op Fl e Ar maxbpg
42.Op Fl g Ar avgfilesize
43.Op Fl h Ar avgfpdir
44.Op Fl l Ar logsize
45.Op Fl m Ar minfree
46.Op Fl o Ar optimize_preference
47.Op Fl q Ar quota
48.Op Fl S Ar sectorsize
49.Ar special | Ar filesys
50.Sh DESCRIPTION
51.Nm
52is designed to change the dynamic parameters of a file system
53which affect the layout policies.
54.Pp
55The following options are supported by
56.Nm :
57.Bl -tag -width Ds
58.It Fl A
59Cause the values to be updated in all the alternate
60superblocks instead of just the standard superblock.
61If this option is not used,
62then use of a backup superblock by
63.Xr fsck 8
64will lose anything changed by
65.Nm .
66.Fl A
67is ignored when
68.Fl N
69is specified.
70.It Fl F
71Indicates that
72.Ar special
73is a file system image, rather than a device name or file system mount point.
74.Ar special
75will be accessed
76.Sq as-is .
77.It Fl N
78Display all the settable options
79(after any changes from the tuning options)
80but do not cause any of them to be changed.
81.It Fl e Ar maxbpg
82This indicates the maximum number of blocks any single file can
83allocate out of a cylinder group before it is forced to begin
84allocating blocks from another cylinder group.
85Typically this value is set to about one quarter of the total blocks
86in a cylinder group.
87The intent is to prevent any single file from using up all the
88blocks in a single cylinder group,
89thus degrading access times for all files subsequently allocated
90in that cylinder group.
91The effect of this limit is to cause big files to do long seeks
92more frequently than if they were allowed to allocate all the blocks
93in a cylinder group before seeking elsewhere.
94For file systems with exclusively large files,
95this parameter should be set higher.
96.It Fl g Ar avgfilesize
97This specifies the expected average file size.
98.It Fl h Ar avgfpdir
99This specifies the expected number of files per directory.
100.It Fl l Ar logsize
101This value specifies the size of the in-filesystem journaling log file.
102The default journaling log file size is described in
103.Xr wapbl 4 .
104Specifying a size of zero will cause the in-filesystem journaling log file
105to be removed the next time the filesystem is mounted.
106The size of an existing in-filesystem journaling log file can not be changed
107directly.
108You need to first set the log file size to zero, then mount the
109filesystem without logging enabled (which will remove the log without
110creating a new one), unmount, set the size to the new value and finally
111re-mount with logging enabled.
112.It Fl m Ar minfree
113This value specifies the percentage of space held back
114from normal users; the minimum free space threshold.
115The default value is set during creation of the filesystem, see
116.Xr newfs 8 .
117This value can be set to zero, however up to a factor of three
118in throughput will be lost over the performance obtained at a 5%
119threshold.
120Note that if the value is raised above the current usage level,
121users will be unable to allocate files until enough files have
122been deleted to get under the higher threshold.
123.It Fl o Ar optimize_preference
124The file system can either try to minimize the time spent
125allocating blocks, or it can attempt to minimize the space
126fragmentation on the disk.
127If the value of minfree (see above) is less than 5%,
128then the file system should optimize for space to avoid
129running out of full sized blocks.
130For values of minfree greater than or equal to 5%,
131fragmentation is unlikely to be problematical, and
132the file system can be optimized for time.
133.Pp
134.Ar optimize_preference
135can be specified as either
136.Li space
137or
138.Li time .
139.It Fl q Ar quota
140enable or disable a quota.
141.Ar quota
142can be one of
143.Li user ,
144.Li group ,
145.Li nouser
146or
147.Li nogroup
148to enable or disable the specified quota type.
149Multiple
150.Fl q
151can be used to enable/disable all types at once.
152.Pp
153After enabling a quota,
154.Xr fsck_ffs 8
155has to be run to compute the correct quota values.
156.It Fl S Ar sectorsize
157changes the fsbtodb value in the superblock to reflect a particular
158physical sector size.
159This value is ignored by the
160.Nx
161kernel but needed by tools like
162.Xr fsck_ffs  8
163to access disk blocks correctly.
164The minimum value is
165.Dv DEV_BSIZE
166(512).
167.Pp
168Changing the fsbtodb value becomes necessary when a filesystem image
169is created for one sector size and then transferred to a device with
170a different sector size and should be applied also to the alternate
171superblocks.
172.El
173.Sh SEE ALSO
174.Xr wapbl 4 ,
175.Xr fs 5 ,
176.Xr dumpfs 8 ,
177.Xr fsck_ffs 8 ,
178.Xr newfs 8
179.Rs
180.%A M. McKusick
181.%A W. Joy
182.%A S. Leffler
183.%A R. Fabry
184.%T "A Fast File System for UNIX"
185.%J "ACM Transactions on Computer Systems 2"
186.%N 3
187.%P pp 181-197
188.%D August 1984
189.%O "(reprinted in the BSD System Manager's Manual, SMM:5)"
190.Re
191.Sh HISTORY
192The
193.Nm
194command appeared in
195.Bx 4.2 .
196.Sh BUGS
197This program should work on mounted and active file systems.
198Because the super-block is not kept in the buffer cache,
199the changes will only take effect if the program
200is run on unmounted file systems.
201To change the root file system, the system must be rebooted
202after the file system is tuned.
203.Pp
204.\" Take this out and a Unix Demon will dog your steps from now until
205.\" the time_t's wrap around.
206You can tune a file system, but you can't tune a fish.
207