xref: /freebsd/sbin/mdmfs/mdmfs.8 (revision 792bbaba989533a1fc93823df1720c8c4aaf0442)
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 September 9, 2016
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 DLlMNnPStTUX
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 O Ar optimization
51.Op Fl o Ar mount-options
52.Op Fl p Ar permissions
53.Op Fl s Ar size
54.Op Fl T Ar fstype
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.
131It is presently limited to its default value which is 16
132times the file system blocksize.
133.It Fl E Ar path-mdconfig
134Use
135.Ar path-mdconfig
136as a location of the
137.Xr mdconfig 8
138utility.
139.It Fl e Ar maxbpg
140Indicate the maximum number of blocks any single file can allocate
141out of a cylinder group before it is forced to begin allocating
142blocks from another cylinder group.
143.It Fl F Ar file
144Create a vnode-backed
145.Pq Dv MD_VNODE
146memory disk backed by
147.Ar file .
148.It Fl f Ar frag-size
149The fragment size of the file system in bytes.
150.It Fl i Ar bytes
151Number of bytes per inode.
152.It Fl l
153Enable multilabel MAC on the new file system.
154.It Fl L
155Show the output of the helper programs.
156By default,
157it is sent to
158.Pa /dev/null .
159.It Fl M
160Create a
161.Xr malloc 9
162backed disk
163.Pq Dv MD_MALLOC
164instead of a swap-backed disk.
165.It Fl m Ar percent-free
166The percentage of space reserved for the superuser.
167.It Fl N
168Do not actually run the helper programs.
169This is most useful in conjunction with
170.Fl X .
171.It Fl n
172Do not create a
173.Pa .snap
174directory on the new file system.
175.It Fl O Ar optimization
176Select the optimization preference;
177valid choices are
178.Cm space
179and
180.Cm time ,
181which will optimize for minimum space fragmentation and
182minimum time spent allocating blocks,
183respectively.
184.It Fl o Ar mount-options
185Specify the mount options with which to mount the file system.
186See
187.Xr mount 8
188for more information.
189.It Fl P
190Preserve the existing file system;
191do not run
192.Xr newfs 8 .
193This only makes sense if
194.Fl F
195is specified to create a vnode-backed disk.
196.It Fl p Ar permissions
197Set the file (directory) permissions of the mount point
198.Ar mount-point
199to
200.Ar permissions .
201The
202.Ar permissions
203argument can be in any of the mode formats recognized by
204.Xr chmod 1 .
205If symbolic permissions are specified,
206the operation characters
207.Dq +
208and
209.Dq -
210are interpreted relative to the initial permissions of
211.Dq a=rwx .
212.It Fl S
213Do not enable soft-updates on the file system.
214.It Fl s Ar size
215Specify the size of the disk to create.
216This only makes sense if
217.Fl F
218is
219.Em not
220specified.
221That is,
222this will work for the default swap-backed
223.Pq Dv MD_SWAP
224disks,
225and the optional
226.Pq Fl M
227.Xr malloc 9
228backed disks
229.Pq Dv MD_MALLOC .
230.It Fl t
231Turn on the TRIM enable flag for
232.Xr newfs 8 .
233When used with a file system that issue BIO_DELETE bio requests,
234.Xr md 4
235returns deleted blocks to the system memory pool.
236.It Fl T Ar fstype
237Specify a file system type for a vnode-backed memory disk.
238Any file system supported by
239.Xr mount 8
240command can be specified.
241This option only makes sense when
242.Fl F
243and
244.Fl P
245are used.
246.It Fl U
247Enable soft-updates on the file system.
248This is the default, and is accepted only
249for compatibility.
250It is only really useful to negate the
251.Fl S
252flag, should such a need occur.
253.It Fl v Ar version
254Specify the UFS version number for use on the file system; it may be
255either
256.Dv 1
257or
258.Dv 2 .
259The default is derived from the default of the
260.Xr newfs 8
261command.
262.It Fl w Ar user : Ns Ar group
263Set the owner and group to
264.Ar user
265and
266.Ar group ,
267respectively.
268The arguments have the same semantics as with
269.Xr chown 8 ,
270but specifying just a
271.Ar user
272or just a
273.Ar group
274is not supported.
275.It Fl X
276Print what command will be run before running it, and
277other assorted debugging information.
278.El
279.Pp
280The
281.Fl F
282and
283.Fl s
284options are passed to
285.Xr mdconfig 8
286as
287.Fl f
288and
289.Fl s ,
290respectively.
291The
292.Fl a , b , c , d , e , f , i , m
293and
294.Fl n
295options are passed to
296.Xr newfs 8
297with the same letter.
298The
299.Fl O
300option is passed to
301.Xr newfs 8
302as
303.Fl o .
304The
305.Fl o
306option is passed to
307.Xr mount 8
308with the same letter.
309The
310.Fl T
311option is passed to
312.Xr mount 8
313as
314.Fl t .
315For information on semantics, refer to the documentation of the programs
316that the options are passed to.
317.Sh EXAMPLES
318Create and mount a 32 megabyte swap-backed file system on
319.Pa /tmp :
320.Pp
321.Dl "mdmfs -s 32m md /tmp"
322.Pp
323The same file system created as an entry in
324.Pa /etc/fstab :
325.Pp
326.Dl "md /tmp mfs rw,-s32m 2 0"
327.Pp
328Create and mount a 16 megabyte malloc-backed file system on
329.Pa /tmp
330using the
331.Pa /dev/md1
332device;
333furthermore,
334do not use soft-updates on it and mount it
335.Cm async :
336.Pp
337.Dl "mdmfs -M -S -o async -s 16m md1 /tmp"
338.Pp
339Create and mount a
340.Xr geom_uzip 4
341based compressed disk image:
342.Pp
343.Dl "mdmfs -P -F foo.uzip -oro md.uzip /tmp/"
344.Pp
345Mount the same image, specifying the
346.Pa /dev/md1
347device:
348.Pp
349.Dl "mdmfs -P -F foo.uzip -oro md1.uzip /tmp/"
350.Pp
351Configure a vnode-backed file system and mount its first partition,
352using automatic device numbering:
353.Pp
354.Dl "mdmfs -P -F foo.img mds1a /tmp/"
355.Pp
356Mount a vnode-backed cd9660 file system using automatic device numbering:
357.Pp
358.Dl "mdmfs -T cd9660 -P -F foo.iso md /tmp"
359.Sh COMPATIBILITY
360The
361.Nm
362utility, while designed to be compatible with
363.Xr mount_mfs 8 ,
364can be useful by itself.
365Since
366.Xr mount_mfs 8
367had some silly defaults, a
368.Dq compatibility
369mode is provided for the case where bug-to-bug compatibility is desired.
370.Pp
371Compatibility is enabled by starting
372.Nm
373with the name
374.Li mount_mfs
375or
376.Li mfs
377(as returned by
378.Xr getprogname 3 ) .
379In this mode, the following behavior, as done by
380.Xr mount_mfs 8 ,
381is duplicated:
382.Bl -bullet -offset indent
383.It
384The file mode of
385.Ar mount-point
386is set by default to
387.Li 01777
388as if
389.Fl p Ar 1777
390was given on the command line.
391.El
392.Sh SEE ALSO
393.Xr md 4 ,
394.Xr fstab 5 ,
395.Xr mdconfig 8 ,
396.Xr mount 8 ,
397.Xr newfs 8
398.Sh HISTORY
399The
400.Nm
401utility appeared in
402.Fx 5.0 .
403.Sh AUTHORS
404.An Dima Dorfman
405