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 November 30, 2013 41.Dt MDCONFIG 8 42.Os 43.Sh NAME 44.Nm mdconfig 45.Nd configure and enable 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 configures and enables 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 a 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 , 163or 164.Cm t 165which 166denotes byte, kilobyte, megabyte, gigabyte and terabyte respectively. 167The 168.Fl a 169and 170.Fl t Ar swap 171options are implied if not specified. 172.It Fl S Ar sectorsize 173Sectorsize to use for the memory disk, in bytes. 174.It Fl x Ar sectors/track 175See the description of the 176.Fl y 177option below. 178.It Fl y Ar heads/cylinder 179For 180.Cm malloc 181or 182.Cm vnode 183backed devices, the 184.Fl x 185and 186.Fl y 187options can be used to specify a synthetic geometry. 188This is useful for constructing bootable images for later download to 189other devices. 190.It Fl o Oo Cm no Oc Ns Ar option 191Set or reset options. 192.Bl -tag -width indent 193.It Oo Cm no Oc Ns Cm async 194For 195.Cm vnode 196backed devices: avoid 197.Dv IO_SYNC 198for increased performance but 199at the risk of deadlocking the entire kernel. 200.It Oo Cm no Oc Ns Cm reserve 201Allocate and reserve all needed storage from the start, rather than as needed. 202.It Oo Cm no Oc Ns Cm cluster 203Enable clustering on this disk. 204.It Oo Cm no Oc Ns Cm compress 205Enable/disable compression features to reduce memory usage. 206.It Oo Cm no Oc Ns Cm force 207Disable/enable extra sanity checks to prevent the user from doing something 208that might adversely affect the system. 209.It Oo Cm no Oc Ns Cm readonly 210Enable/disable readonly mode. 211.El 212.It Fl u Ar unit 213Request a specific unit number or device name for the 214.Xr md 4 215device instead of automatic allocation. 216If a device name is specified, it must be start with 217.Dq md 218followed by the unit number. 219.El 220.Pp 221The last form, 222.Nm 223.Ar file , 224is provided for convenience as an abbreviation of 225.Nm 226.Fl a 227.Fl t Ar vnode 228.Fl f Ar file . 229.Sh EXAMPLES 230Create a 4 megabyte 231.Xr malloc 9 232backed memory disk. 233The name of the allocated unit will be printed on stdout, such as 234.Dq Li md3 : 235.Pp 236.Dl mdconfig -a -t malloc -s 4m 237.Pp 238Create a disk named 239.Pa /dev/md4 240with 241.Pa /tmp/boot.flp 242as backing storage: 243.Pp 244.Dl mdconfig -a -t vnode -f /tmp/boot.flp -u md4 245.Pp 246Detach and free all resources used by 247.Pa /dev/md4 : 248.Pp 249.Dl mdconfig -d -u md4 250.Pp 251Create a 128MByte swap backed disk, initialize an 252.Xr ffs 7 253file system on it, and mount it on 254.Pa /tmp : 255.Bd -literal -offset indent 256mdconfig -a -t swap -s 128M -u md10 257newfs -U /dev/md10 258mount /dev/md10 /tmp 259chmod 1777 /tmp 260.Ed 261.Pp 262Create a 5MB file-backed disk 263.Po Fl a 264and 265.Fl t Ar vnode 266are implied 267.Pc : 268.Bd -literal -offset indent 269dd if=/dev/zero of=somebackingfile bs=1k count=5k 270mdconfig -f somebackingfile -u md0 271bsdlabel -w md0 auto 272newfs md0c 273mount /dev/md0c /mnt 274.Ed 275.Pp 276Create an 277.Xr md 4 278device out of an ISO 9660 CD image file 279.Po Fl a 280and 281.Fl t Ar vnode 282are implied 283.Pc , using the first available 284.Xr md 4 285device, and then mount the new memory disk: 286.Bd -literal -offset indent 287mount -t cd9660 /dev/`mdconfig -f cdimage.iso` /mnt 288.Pp 289.Ed 290Create a file-backed device from a hard disk image that begins 291with 512K of raw header information. 292.Xr gnop 8 293is used to skip over the header information, positioning 294.Pa md1.nop 295to the start of the filesystem in the image. 296.Bd -literal -offset indent 297mdconfig -f diskimage.img -u md1 298gnop create -o 512K md1 299mount /dev/md1.nop /mnt 300.Ed 301.Sh SEE ALSO 302.Xr md 4 , 303.Xr ffs 7 , 304.Xr bsdlabel 8 , 305.Xr fdisk 8 , 306.Xr mdmfs 8 , 307.Xr malloc 9 308.Sh HISTORY 309The 310.Nm 311utility first appeared in 312.Fx 5.0 313as a cleaner replacement for the 314.Xr vn 4 315and 316.Xr vnconfig 8 317combo. 318.Sh AUTHORS 319The 320.Nm 321utility was written by 322.An Poul-Henning Kamp Aq Mt phk@FreeBSD.org . 323