xref: /freebsd/sbin/mdconfig/mdconfig.8 (revision d6b92ffa)
1.\" Copyright (c) 1993 University of Utah.
2.\" Copyright (c) 1980, 1989, 1991, 1993
3.\"	The Regents of the University of California.  All rights reserved.
4.\" Copyright (c) 2000
5.\"	Poul-Henning Kamp  All rights reserved.
6.\"
7.\" This code is derived from software contributed to Berkeley by
8.\" the Systems Programming Group of the University of Utah Computer
9.\" Science Department.
10.\"
11.\" Redistribution and use in source and binary forms, with or without
12.\" modification, are permitted provided that the following conditions
13.\" are met:
14.\" 1. Redistributions of source code must retain the above copyright
15.\"    notice, this list of conditions and the following disclaimer.
16.\" 2. Redistributions in binary form must reproduce the above copyright
17.\"    notice, this list of conditions and the following disclaimer in the
18.\"    documentation and/or other materials provided with the distribution.
19.\" 3. Neither the name of the University nor the names of its contributors
20.\"    may be used to endorse or promote products derived from this software
21.\"    without specific prior written permission.
22.\"
23.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33.\" SUCH DAMAGE.
34.\"
35.\"     @(#)vnconfig.8	8.1 (Berkeley) 6/5/93
36.\" from: src/usr.sbin/vnconfig/vnconfig.8,v 1.19 2000/12/27 15:30:29
37.\"
38.\" $FreeBSD$
39.\"
40.Dd October 10, 2015
41.Dt MDCONFIG 8
42.Os
43.Sh NAME
44.Nm mdconfig
45.Nd create and control memory disks
46.Sh SYNOPSIS
47.Nm
48.Fl a
49.Fl t Ar type
50.Op Fl n
51.Oo Fl o Oo Cm no Oc Ns Ar option Oc ...
52.Op Fl f Ar file
53.Op Fl s Ar size
54.Op Fl S Ar sectorsize
55.Op Fl u Ar unit
56.Op Fl x Ar sectors/track
57.Op Fl y Ar heads/cylinder
58.Nm
59.Fl d
60.Fl u Ar unit
61.Op Fl o Oo Cm no Oc Ns Ar force
62.Nm
63.Fl r
64.Fl u Ar unit
65.Fl s Ar size
66.Op Fl o Oo Cm no Oc Ns Ar force
67.Nm
68.Fl l
69.Op Fl n
70.Op Fl v
71.Op Fl f Ar file
72.Op Fl u Ar unit
73.Nm
74.Ar file
75.Sh DESCRIPTION
76The
77.Nm
78utility creates and controls
79.Xr md 4
80devices.
81.Pp
82Options indicate an action to be performed:
83.Bl -tag -width indent
84.It Fl a
85Attach a memory disk.
86This will configure and attach a memory disk with the
87parameters specified and attach it to the system.
88If the
89.Fl u Ar unit
90option is not provided, the newly created device name will be printed on stdout.
91.It Fl d
92Detach a memory disk from the system and release all resources.
93.It Fl r
94Resize a memory disk.
95.It Fl t Ar type
96Select the type of the memory disk.
97.Bl -tag -width "malloc"
98.It Cm malloc
99Storage for this type of memory disk is allocated with
100.Xr malloc 9 .
101This limits the size to the malloc bucket limit in the kernel.
102If the
103.Fl o Cm reserve
104option is not set, creating and filling a large
105malloc-backed memory disk is a very easy way to
106panic the system.
107.It Cm vnode
108A file specified with
109.Fl f Ar file
110becomes the backing store for this memory disk.
111.It Cm swap
112Storage for this type of memory disk is allocated from buffer
113memory.
114Pages get pushed out to swap when the system is under memory
115pressure, otherwise they stay in the operating memory.
116Using
117.Cm swap
118backing is generally preferred instead of using
119.Cm malloc
120backing.
121.It Cm null
122Bitsink; all writes do nothing, all reads return zeroes.
123.El
124.It Fl f Ar file
125Filename to use for the vnode type memory disk.
126The
127.Fl a
128and
129.Fl t Ar vnode
130options are implied if not specified.
131.It Fl l
132List configured devices.
133If given with
134.Fl u ,
135display details about that particular device.
136If given with
137.Fl f Ar file ,
138display
139.Xr md 4
140device names of which
141.Ar file
142is used as the backing store.
143If both of
144.Fl u
145and
146.Fl f
147options are specified,
148display devices which match the two conditions.
149If the
150.Fl v
151option is specified, show all details.
152.It Fl n
153When printing
154.Xr md 4
155device names, print only the unit number without the
156.Xr md 4
157prefix.
158.It Fl s Ar size
159Size of the memory disk.
160.Ar Size
161is the number of 512 byte sectors unless suffixed with a
162.Cm b , k , m , g , t ,
163or
164.Cm p
165which
166denotes byte, kilobyte, megabyte, gigabyte, terabyte and petabyte respectively.
167When used without the
168.Fl r
169option, the
170.Fl a
171and
172.Fl t Ar swap
173options are implied if not specified.
174.It Fl S Ar sectorsize
175Sectorsize to use for the memory disk, in bytes.
176.It Fl x Ar sectors/track
177See the description of the
178.Fl y
179option below.
180.It Fl y Ar heads/cylinder
181For
182.Cm malloc
183or
184.Cm vnode
185backed devices, the
186.Fl x
187and
188.Fl y
189options can be used to specify a synthetic geometry.
190This is useful for constructing bootable images for later download to
191other devices.
192.It Fl o Oo Cm no Oc Ns Ar option
193Set or reset options.
194.Bl -tag -width indent
195.It Oo Cm no Oc Ns Cm async
196For
197.Cm vnode
198backed devices: avoid
199.Dv IO_SYNC
200for increased performance but
201at the risk of deadlocking the entire kernel.
202.It Oo Cm no Oc Ns Cm reserve
203Allocate and reserve all needed storage from the start, rather than as needed.
204.It Oo Cm no Oc Ns Cm cluster
205Enable clustering on this disk.
206.It Oo Cm no Oc Ns Cm compress
207Enable/disable compression features to reduce memory usage.
208.It Oo Cm no Oc Ns Cm force
209Disable/enable extra sanity checks to prevent the user from doing something
210that might adversely affect the system.
211This can be used with the
212.Fl d
213flag to forcibly destroy an
214.Xr md 4
215disk that is still in use.
216.It Oo Cm no Oc Ns Cm readonly
217Enable/disable readonly mode.
218.It Oo Cm no Oc Ns Cm verify
219For
220.Cm vnode
221backed devices: enable/disable requesting verification of the
222file used for backing store.
223The type of verification depends on which security features are available.
224One example of verification is testing file integrity with
225checksums or cryptographic signatures.
226.El
227.It Fl u Ar unit
228Request a specific unit number or device name for the
229.Xr md 4
230device instead of automatic allocation.
231If a device name is specified, it must be start with
232.Dq md
233followed by the unit number.
234.El
235.Pp
236The last form,
237.Nm
238.Ar file ,
239is provided for convenience as an abbreviation of
240.Nm
241.Fl a
242.Fl t Ar vnode
243.Fl f Ar file .
244.Sh EXAMPLES
245Create a disk with
246.Pa /tmp/boot.flp
247as backing storage.
248The name of the allocated unit will be printed on stdout, such as
249.Dq Li md0 :
250.Bd -literal -offset indent
251mdconfig /tmp/boot.flp
252.Ed
253.Pp
254Create a 1 gigabyte swap backed memory disk named
255.Dq Li md3 :
256.Bd -literal -offset indent
257mdconfig -s 1g -u md3
258.Ed
259.Pp
260Detach and free all resources used by
261.Pa /dev/md3 :
262.Bd -literal -offset indent
263mdconfig -du md3
264.Ed
265.Pp
266Show detailed information on current memory disks:
267.Bd -literal -offset indent
268mdconfig -lv
269.Ed
270.Pp
271Resize the
272.Dq Li md3
273memory disk to 2 gigabytes:
274.Bd -literal -offset indent
275mdconfig -rs 2g -u md3
276.Ed
277.Pp
278Create a 1 gigabyte swap backed disk, initialize an
279.Xr ffs 7
280file system on it, and mount it on
281.Pa /tmp :
282.Bd -literal -offset indent
283mdconfig -s 1g -u md10
284newfs -U /dev/md10
285mount /dev/md10 /tmp
286chmod 1777 /tmp
287.Ed
288.Pp
289Create a memory disk out of an ISO 9660 CD image file,
290using the first available
291.Xr md 4
292device, and then mount it:
293.Bd -literal -offset indent
294mount -t cd9660 /dev/`mdconfig -f cdimage.iso` /mnt
295.Ed
296.Pp
297Create a file-backed device from a hard disk image that begins
298with 512K of raw header information.
299.Xr gnop 8
300is used to skip over the header information, positioning
301.Pa md1.nop
302to the start of the filesystem in the image.
303.Bd -literal -offset indent
304mdconfig -u md1 -f diskimage.img
305gnop create -o 512K md1
306mount /dev/md1.nop /mnt
307.Ed
308.Sh SEE ALSO
309.Xr open 2 ,
310.Xr md 4 ,
311.Xr ffs 7 ,
312.Xr gpart 8 ,
313.Xr mdmfs 8 ,
314.Xr malloc 9
315.Sh HISTORY
316The
317.Nm
318utility first appeared in
319.Fx 5.0
320as a cleaner replacement for the
321.Xr vn 4
322and
323.Xr vnconfig 8
324combo.
325.Sh AUTHORS
326The
327.Nm
328utility was written by
329.An Poul-Henning Kamp Aq Mt phk@FreeBSD.org .
330