xref: /freebsd/sbin/mdmfs/mdmfs.8 (revision aa0a1e58)
1.\"
2.\" Copyright (c) 2001 Dima Dorfman.
3.\" All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\"    notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\"
14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24.\" SUCH DAMAGE.
25.\"
26.\" $FreeBSD$
27.\"
28.Dd February 15, 2007
29.Dt MDMFS 8
30.Os
31.Sh NAME
32.Nm mdmfs ,
33.Nm mount_mfs
34.Nd configure and mount an in-memory file system using the
35.Xr md 4
36driver
37.Sh SYNOPSIS
38.Nm
39.Op Fl DLlMNPSUX
40.Op Fl a Ar maxcontig
41.Op Fl b Ar block-size
42.Op Fl c Ar blocks-per-cylinder-group
43.Op Fl d Ar max-extent-size
44.Op Fl E Ar path-mdconfig
45.Op Fl e Ar maxbpg
46.Op Fl F Ar file
47.Op Fl f Ar frag-size
48.Op Fl i Ar bytes
49.Op Fl m Ar percent-free
50.Op Fl n Ar rotational-positions
51.Op Fl O Ar optimization
52.Op Fl o Ar mount-options
53.Op Fl p Ar permissions
54.Op Fl s Ar size
55.Op Fl v Ar version
56.Op Fl w Ar user : Ns Ar group
57.Ar md-device
58.Ar mount-point
59.Sh DESCRIPTION
60The
61.Nm
62utility is designed to be a work-alike and look-alike of the deprecated
63.Xr mount_mfs 8 .
64The end result is essentially the same,
65but is accomplished in a completely different way.
66The
67.Nm
68utility configures an
69.Xr md 4
70disk using
71.Xr mdconfig 8 ,
72puts a UFS file system on it (unless
73.Fl P
74was specified) using
75.Xr newfs 8 ,
76and mounts it using
77.Xr mount 8 .
78It can handle
79.Xr geom_uzip 4
80compressed disk images, as long as the kernel supports this GEOM class.
81All the command line options are passed to the appropriate program
82at the appropriate stage in order to achieve the desired effect.
83.Pp
84By default,
85.Nm
86creates a swap-based
87.Pq Dv MD_SWAP
88disk with soft-updates enabled
89and mounts it on
90.Ar mount-point .
91It uses the
92.Xr md 4
93device specified by
94.Ar md-device .
95If
96.Ar md-device
97is
98.Ql md
99(no unit number),
100it will use
101.Xr md 4 Ns 's
102auto-unit feature to automatically select an unused device.
103Unless otherwise specified with one of the options below,
104it uses the default arguments to all the helper programs.
105.Pp
106The following options are available.
107Where possible,
108the option letter matches the one used by
109.Xr mount_mfs 8
110for the same thing.
111.Bl -tag -width indent
112.It Fl a Ar maxcontig
113Specify the maximum number of contiguous blocks that will be laid
114out before forcing a rotational delay
115(see the
116.Fl d
117option).
118.It Fl b Ar block-size
119The block size of the file system, in bytes.
120.It Fl c Ar blocks-per-cylinder-group
121The number of blocks per cylinder group in the file system.
122.It Fl D
123If not using auto-unit,
124do not run
125.Xr mdconfig 8
126to try to detach the unit before attaching it.
127.It Fl d Ar max-extent-size
128The file system may choose to store large files using extents.
129This parameter specifies the largest extent size that may be
130used.  It is presently limited to its default value which is 16
131times the file system blocksize.
132.It Fl E Ar path-mdconfig
133Use
134.Ar path-mdconfig
135as a location of the
136.Xr mdconfig 8
137utility.
138.It Fl e Ar maxbpg
139Indicate the maximum number of blocks any single file can allocate
140out of a cylinder group before it is forced to begin allocating
141blocks from another cylinder group.
142.It Fl F Ar file
143Create a vnode-backed
144.Pq Dv MD_VNODE
145memory disk backed by
146.Ar file .
147.It Fl f Ar frag-size
148The fragment size of the file system in bytes.
149.It Fl i Ar bytes
150Number of bytes per inode.
151.It Fl l
152Enable multilabel MAC on the new file system.
153.It Fl L
154Show the output of the helper programs.
155By default,
156it is sent to
157.Pa /dev/null .
158.It Fl M
159Create a
160.Xr malloc 9
161backed disk
162.Pq Dv MD_MALLOC
163instead of a swap-backed disk.
164.It Fl m Ar percent-free
165The percentage of space reserved for the superuser.
166.It Fl N
167Do not actually run the helper programs.
168This is most useful in conjunction with
169.Fl X .
170.It Fl n Ar rotational-positions
171The default number of rotational positions to distinguish.
172.It Fl O Ar optimization
173Select the optimization preference;
174valid choices are
175.Cm space
176and
177.Cm time ,
178which will optimize for minimum space fragmentation and
179minimum time spent allocating blocks,
180respectively.
181.It Fl o Ar mount-options
182Specify the mount options with which to mount the file system.
183See
184.Xr mount 8
185for more information.
186.It Fl P
187Preserve the existing file system;
188do not run
189.Xr newfs 8 .
190This only makes sense if
191.Fl F
192is specified to create a vnode-backed disk.
193.It Fl p Ar permissions
194Set the file (directory) permissions of the mount point
195.Ar mount-point
196to
197.Ar permissions .
198The
199.Ar permissions
200argument can be in any of the mode formats recognized by
201.Xr chmod 1 .
202If symbolic permissions are specified,
203the operation characters
204.Dq +
205and
206.Dq -
207are interpreted relative to the initial permissions of
208.Dq a=rwx .
209.It Fl S
210Do not enable soft-updates on the file system.
211.It Fl s Ar size
212Specify the size of the disk to create.
213This only makes sense if
214.Fl F
215is
216.Em not
217specified.
218That is,
219this will work for the default swap-backed
220.Pq Dv MD_SWAP
221disks,
222and the optional
223.Pq Fl M
224.Xr malloc 9
225backed disks
226.Pq Dv MD_MALLOC .
227.It Fl U
228Enable soft-updates on the file system.
229This is the default, and is accepted only
230for compatibility.
231It is only really useful to negate the
232.Fl S
233flag, should such a need occur.
234.It Fl v Ar version
235Specify the UFS version number for use on the file system; it may be
236either
237.Dv 1
238or
239.Dv 2 .
240The default is derived from the default of the
241.Xr newfs 8
242command.
243.It Fl w Ar user : Ns Ar group
244Set the owner and group to
245.Ar user
246and
247.Ar group ,
248respectively.
249The arguments have the same semantics as with
250.Xr chown 8 ,
251but specifying just a
252.Ar user
253or just a
254.Ar group
255is not supported.
256.It Fl X
257Print what command will be run before running it, and
258other assorted debugging information.
259.El
260.Pp
261The
262.Fl F
263and
264.Fl s
265options are passed to
266.Xr mdconfig 8
267as
268.Fl f
269and
270.Fl s ,
271respectively.
272The
273.Fl a , b , c , d , e , f , i , m
274and
275.Fl n
276options are passed to
277.Xr newfs 8
278with the same letter;
279the
280.Fl O
281option is passed to
282.Xr newfs 8
283as
284.Fl o .
285The
286.Fl o
287option is passed to
288.Xr mount 8
289with the same letter.
290See the programs that the options are passed to for more information
291on their semantics.
292.Sh EXAMPLES
293Create and mount a 32 megabyte swap-backed file system on
294.Pa /tmp :
295.Pp
296.Dl "mdmfs -s 32m md /tmp"
297.Pp
298The same file system created as an entry in
299.Pa /etc/fstab :
300.Pp
301.Dl "md /tmp mfs rw,-s32m 2 0"
302.Pp
303Create and mount a 16 megabyte malloc-backed file system on
304.Pa /tmp
305using the
306.Pa /dev/md1
307device;
308furthermore,
309do not use soft-updates on it and mount it
310.Cm async :
311.Pp
312.Dl "mdmfs -M -S -o async -s 16m md1 /tmp"
313.Pp
314Create and mount a
315.Xr geom_uzip 4
316based compressed disk image:
317.Pp
318.Dl "mdmfs -P -F foo.uzip -oro md.uzip /tmp/"
319.Pp
320Mount the same image, specifying the
321.Pa /dev/md1
322device:
323.Pp
324.Dl "mdmfs -P -F foo.uzip -oro md1.uzip /tmp/"
325.Pp
326Configure a vnode-backed file system and mount its first partition,
327using automatic device numbering:
328.Pp
329.Dl "mdmfs -P -F foo.img mds1a /tmp/"
330.Sh COMPATIBILITY
331The
332.Nm
333utility, while designed to be compatible with
334.Xr mount_mfs 8 ,
335can be useful by itself.
336Since
337.Xr mount_mfs 8
338had some silly defaults, a
339.Dq compatibility
340mode is provided for the case where bug-to-bug compatibility is desired.
341.Pp
342Compatibility is enabled by starting
343.Nm
344with the name
345.Li mount_mfs
346or
347.Li mfs
348(as returned by
349.Xr getprogname 3 ) .
350In this mode, the following behavior, as done by
351.Xr mount_mfs 8 ,
352is duplicated:
353.Bl -bullet -offset indent
354.It
355The file mode of
356.Ar mount-point
357is set by default to
358.Li 01777
359as if
360.Fl p Ar 1777
361was given on the command line.
362.El
363.Sh SEE ALSO
364.Xr md 4 ,
365.Xr fstab 5 ,
366.Xr mdconfig 8 ,
367.Xr mount 8 ,
368.Xr newfs 8
369.Sh AUTHORS
370.An Dima Dorfman
371