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