xref: /freebsd/usr.sbin/makefs/makefs.8 (revision 4f1f4356f3012928b463f9ef1710fb908e48b1e2)
1.\"	$NetBSD: makefs.8,v 1.13 2004/02/13 17:56:18 wiz Exp $
2.\"
3.\" Copyright (c) 2001-2003 Wasabi Systems, Inc.
4.\" All rights reserved.
5.\"
6.\" Written by Luke Mewburn for Wasabi Systems, Inc.
7.\"
8.\" Redistribution and use in source and binary forms, with or without
9.\" modification, are permitted provided that the following conditions
10.\" are met:
11.\" 1. Redistributions of source code must retain the above copyright
12.\"    notice, this list of conditions and the following disclaimer.
13.\" 2. Redistributions in binary form must reproduce the above copyright
14.\"    notice, this list of conditions and the following disclaimer in the
15.\"    documentation and/or other materials provided with the distribution.
16.\" 3. All advertising materials mentioning features or use of this software
17.\"    must display the following acknowledgement:
18.\"      This product includes software developed for the NetBSD Project by
19.\"      Wasabi Systems, Inc.
20.\" 4. The name of Wasabi Systems, Inc. may not be used to endorse
21.\"    or promote products derived from this software without specific prior
22.\"    written permission.
23.\"
24.\" THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
25.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
26.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
27.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL WASABI SYSTEMS, INC
28.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34.\" POSSIBILITY OF SUCH DAMAGE.
35.\"
36.\" $FreeBSD$
37.\"
38.Dd March 30, 2003
39.Dt MAKEFS 8
40.Os
41.Sh NAME
42.Nm makefs
43.Nd create a file system image from a directory tree
44.Sh SYNOPSIS
45.Nm
46.Bk -words
47.Op Fl t Ar fs-type
48.Ek
49.Bk -words
50.Op Fl o Ar fs-options
51.Ek
52.Bk -words
53.Op Fl d Ar debug-mask
54.Ek
55.Bk -words
56.Op Fl B Ar byte-order
57.Ek
58.Bk -words
59.Op Fl S Ar sector-size
60.Ek
61.Bk -words
62.Op Fl M Ar minimum-size
63.Ek
64.Bk -words
65.Op Fl m Ar maximum-size
66.Ek
67.Bk -words
68.Op Fl s Ar image-size
69.Ek
70.Bk -words
71.Op Fl b Ar free-blocks
72.Ek
73.Bk -words
74.Op Fl f Ar free-files
75.Ek
76.Bk -words
77.Op Fl F Ar specfile
78.Ek
79.Op Fl x
80.Bk -words
81.Op Fl N Ar userdb-dir
82.Ek
83.Ar image-file
84.Ar directory
85.Sh DESCRIPTION
86The utility
87.Nm
88creates a file system image into
89.Ar image-file
90from the directory tree
91.Ar directory .
92No special devices or privileges are required to perform this task.
93.Pp
94The options are as follows:
95.Bl -tag -width flag
96.It Fl t Ar fs-type
97Create an
98.Ar fs-type
99file system image.
100The following file system types are supported:
101.Bl -tag -width ffs -offset indent
102.It Sy ffs
103BSD fast file system (default).
104.El
105.It Fl o Ar fs-options
106Set file system specific options.
107.Ar fs-options
108is a comma separated list of options.
109Valid file system specific options are detailed below.
110.It Fl d Ar debug-mask
111Enable various levels of debugging, depending upon which bits are set
112in
113.Ar debug-mask .
114XXX: document these
115.It Fl B Ar byte-order
116Set the byte order of the image to
117.Ar byte-order .
118Valid byte orders are
119.Ql 4321 ,
120.Ql big
121or
122.Ql be
123for big endian, and
124.Ql 1234 ,
125.Ql little
126or
127.Ql le
128for little endian.
129Some file systems may have a fixed byte order; in those cases this
130argument will be ignored.
131.It Fl S Ar sector-size
132Set the file system sector size to
133.Ar sector-size .
134Defaults to 512.
135.It Fl M Ar minimum-size
136Set the minimum size of the file system image to
137.Ar minimum-size .
138.It Fl m Ar maximum-size
139Set the maximum size of the file system image to
140.Ar maximum-size .
141An error will be raised if the target file system needs to be larger
142than this to accommodate the provided directory tree.
143.It Fl s Ar image-size
144Set the size of the file system image to
145.Ar image-size .
146.It Fl b Ar free-blocks
147Ensure that a minimum of
148.Ar free-blocks
149free blocks exist in the image.
150An optional
151.Ql %
152suffix may be provided to indicate that
153.Ar free-blocks
154indicates a percentage of the calculated image size
155.It Fl f Ar free-files
156Ensure that a minimum of
157.Ar free-files
158free files (inodes) exist in the image.
159An optional
160.Ql %
161suffix may be provided to indicate that
162.Ar free-files
163indicates a percentage of the calculated image size
164.It Fl F Ar specfile
165Use
166.Ar specfile
167as an
168.Xr mtree 8
169.Sq specfile
170specification.
171.Pp
172If a specfile entry exists in the underlying file system, its permissions and
173modification time will be used unless specifically overridden by the specfile.
174An error will be raised if the type of entry in the specfile conflicts
175with that of an existing entry.
176.Pp
177In the opposite case
178(where a specfile entry does not have an entry in the underlying file system)
179the following occurs:
180If the specfile entry is marked
181.Sy optional ,
182the specfile entry is ignored.
183Otherwise, the entry will be created in the image,
184and it is necessary to specify at least the following parameters
185in the specfile:
186.Sy type ,
187.Sy mode ,
188.Sy gname
189or
190.Sy gid ,
191and
192.Sy uname
193or
194.Sy uid ,
195.Sy device
196(in the case of block or character devices), and
197.Sy link
198(in the case of symbolic links).
199If
200.Sy time
201isn't provided, the current time will be used.
202If
203.Sy flags
204isn't provided, the current file flags will be used.
205Missing regular file entries will be created as zero-length files.
206.It Fl x
207Exclude file system nodes not explicitly listed in the specfile.
208.It Fl N Ar dbdir
209Use the user database text file
210.Pa master.passwd
211and group database text file
212.Pa group
213from
214.Ar dbdir ,
215rather than using the results from the system's
216.Xr getpwnam 3
217and
218.Xr getgrnam 3
219(and related) library calls.
220.El
221.Pp
222Where sizes are specified, a decimal number of bytes is expected.
223Two or more numbers may be separated by an
224.Dq x
225to indicate a product.
226Each number may have one of the following optional suffixes:
227.Bl -tag -width 3n -offset indent -compact
228.It b
229Block; multiply by 512
230.It k
231Kilo; multiply by 1024 (1 KB)
232.It m
233Mega; multiply by 1048576 (1 MB)
234.It g
235Giga; multiply by 1073741824 (1 GB)
236.It t
237Tera; multiply by 1099511627776 (1 TB)
238.It w
239Word; multiply by the number of bytes in an integer
240.El
241.\"
242.\"
243.Ss FFS-specific options
244.Sy ffs
245images have ffs-specific optional parameters that may be provided.
246Each of the options consists of a keyword, an equals sign
247.Pq Ql = ,
248and a value.
249The following keywords are supported:
250.Pp
251.Bl -tag -width optimization -offset indent -compact
252.It Sy avgfilesize
253Expected average file size
254.It Sy avgfpdir
255Expected number of files per directory
256.It Sy bsize
257Block size
258.It Sy density
259Bytes per inode
260.It Sy fsize
261Fragment size
262.It Sy maxbpg
263Maximum blocks per file in a cylinder group
264.It Sy minfree
265Minimum % free
266.It Sy optimization
267Optimization preference; one of
268.Ql space
269or
270.Ql time .
271.It Sy extent
272Maximum extent size
273.It Sy maxbpcg
274Maximum total number of blocks in a cylinder group
275.It Sy version
276UFS version. 1 for FFS (default), 2 for UFS2
277.El
278.Sh SEE ALSO
279.Xr mtree 8 ,
280.Xr newfs 8
281.Sh HISTORY
282The
283.Nm
284utility appeared in
285.Nx 1.6 .
286.Sh AUTHORS
287.An Luke Mewburn
288.Aq lukem@NetBSD.org .
289